设为首页 收藏本站
查看: 954|回复: 0

[经验分享] java oracle 增删改查操作

[复制链接]

尚未签到

发表于 2016-7-26 11:47:31 | 显示全部楼层 |阅读模式
用eclipse
public class Text {
public static final void main(String args[]){
Connection con = null;
try {
//1,加载驱动程序
Class.forName("oracle.jdbc.driver.OracleDriver");
//2,连接字符串
String s = "jdbc:oracle:thin:@localhost:1521:shitou";
//3,获得数据库连接
con = DriverManager.getConnection(s,"system","abc");
//4,获得语句对象
Statement stat = con.createStatement();
//5,执行sql
ResultSet rs = stat.executeQuery("select * from comp"); //查数据


对人员表TUser的业务逻辑:
package bean;

import java.sql.*;
import java.util.ArrayList;
import bean.UserBean;
import bean.DBUtil;
public class UserDAO{
public UserDAO() {
}

/*更新数据,通过传递许更新的对象以及SQL语句,对数据进行添加、删除或更新操作
*obj为实体类的对象,sql为SQL语句
*/
public boolean insertUser(UserBean ub){
boolean b=false;
Connection conn=null;
PreparedStatement stmt=null;
String sql=null;
try{
//插入一条记录
sql="insert into TUser values(user_sequence.nextval,?,?,?,?,?)";
//创建一个连接
conn=DBUtil.getConnection();
//创建PreparedStatement的对象
stmt=conn.prepareStatement(sql);
//给SQL语句内的"?"赋值
//stmt.setInt(1,ub.getUser_ID());
stmt.setString(1,ub.getMobile_Number());
stmt.setString(2,ub.getRoaming_Status());
stmt.setString(3,ub.getCom_Level());
stmt.setInt(4,ub.getCustomer_ID());
stmt.setInt(5,ub.getAccount_ID());


//返回执行更新操作后受影响的行数
int rst=stmt.executeUpdate();
if(rst!=0){
b=true;
}
//关闭相关的连接
DBUtil.closeStatement(stmt);
DBUtil.closeConnection(conn);

}catch(SQLException se){
se.printStackTrace();
}catch(Exception e){
e.printStackTrace();
}
return b;
}

/*修改一条数据
*直接调用insertUser()方法
*/
public boolean updateUser(UserBean ub){
boolean b=false;
Connection conn=null;
PreparedStatement stmt=null;
String sql=null;
try{
//插入一条记录
sql="update TUser set Mobile_Number=?,Roaming_Status=?,Com_Level=?,Customer_ID=?,Account_ID=? where User_ID="+ub.getUser_ID();
//创建一个连接
conn=DBUtil.getConnection();
//创建PreparedStatement的对象
stmt=conn.prepareStatement(sql);
//给SQL语句内的"?"赋值
//stmt.setInt(1,ub.getUser_ID());
stmt.setString(1,ub.getMobile_Number());
stmt.setString(2,ub.getRoaming_Status());
stmt.setString(3,ub.getCom_Level());
stmt.setInt(4,ub.getCustomer_ID());
stmt.setInt(5,ub.getAccount_ID());


//返回执行更新操作后受影响的行数
int rst=stmt.executeUpdate();
if(rst!=0){
b=true;
}
//关闭相关的连接
DBUtil.closeStatement(stmt);
DBUtil.closeConnection(conn);

}catch(SQLException se){
se.printStackTrace();
}catch(Exception e){
e.printStackTrace();
}
return b;
}

/*删除一条记录
*@返回boolean类型的标志,通过传递UserBean的实例对象,得到该对象的User_ID
*/
public boolean deleteUser(UserBean ub){
boolean b=false; //测试变量,无实在意义
Connection conn=null;
Statement stmt=null;
String sql=null;
int id=0;
try{
id=ub.getUser_ID();
//删除记录为id的记录
sql="delete from TUser where User_ID="+id;
//创建一个连接
conn=DBUtil.getConnection();
//创建PreparedStatement的对象
stmt=conn.createStatement();
//检测删除的对象是否存在
if(getUser(id)!=null&&getUser(id).getUser_ID()==id){
//返回执行更新操作后受影响的行数
int rst = stmt.executeUpdate(sql);
if (rst > 0) {
b = true;
}
}else{
System.out.println("此条记录不存在!");
}
//关闭相关的连接
DBUtil.closeStatement(stmt);
DBUtil.closeConnection(conn);
//捕获异常
}catch(SQLException se){
se.printStackTrace();
}catch(Exception e){
e.printStackTrace();
}
return b;
}

/*查询数据/得到数据
*str为数据库对应的列名,sql为传入的SQL语句
*/
public UserBean getUser(int user_id){
Connection conn=null;
Statement stmt=null;
ResultSet rs=null;
String sql=null;
UserBean user=null;
try{
//从数据库中查询User_ID值为user_id的记录
sql="select * from TUser where User_ID="+user_id;
//创建一个连接
conn=DBUtil.getConnection();
//创建Statement的对象
stmt=conn.createStatement();
//实例化UserBean的一个对象
user =new UserBean();
//执行操作,返回一个结果集
rs=stmt.executeQuery(sql);
//从结果集中读取一条记录,并且将对应的属性值赋值给user

if(rs.next()){
//System.out.println(rs.getString("User_Address"));
user.setUser_ID(rs.getInt("User_ID"));
user.setMobile_Number(rs.getString("Mobile_Number"));
user.setRoaming_Status(rs.getString("Roaming_Status"));
user.setCom_Level(rs.getString("Com_Level"));
user.setCustomer_ID(rs.getInt("Customer_ID"));
user.setAccount_ID(rs.getInt("Account_ID"));
//System.out.println(user.getUser_ID());
}
//关闭相关的连接
DBUtil.closeResultSet(rs);
DBUtil.closeStatement(stmt);
DBUtil.closeConnection(conn);
//捕获异常
}catch(SQLException se){
se.printStackTrace();
}catch(Exception e){
e.printStackTrace();
}
//返回user对象
// System.out.println(user.getUser_ID());
return user;
}

/*查询数据
*str为数据库对应的列名,sql为传入的SQL语句
*@返回一个数据列表
*/
public ArrayList getUsers(){
Connection conn=null;
Statement stmt=null;
ResultSet rs=null;
String sql=null;
UserBean user=null;
ArrayList list=null;
try{
//从数据库中查询User_ID值为user_id的记录
sql="select * from TUser";
//创建一个连接
conn=DBUtil.getConnection();
//创建Statement的对象
stmt=conn.createStatement();

list=new ArrayList();
//执行操作,返回一个结果集
rs=stmt.executeQuery(sql);
//从结果集中循环读取记录,并且将对应的属性值赋值给user
while(rs.next()){
//实例化UserBean的一个对象
user =new UserBean();
user.setUser_ID(rs.getInt("User_ID"));
user.setMobile_Number(rs.getString("Mobile_Number"));
user.setRoaming_Status(rs.getString("Roaming_Status"));
user.setCom_Level(rs.getString("Com_Level"));
user.setCustomer_ID(rs.getInt("Customer_ID"));
user.setAccount_ID(rs.getInt("Account_ID"));
//将user添加到list中
list.add(user);
}
//关闭相关的连接
DBUtil.closeResultSet(rs);
DBUtil.closeStatement(stmt);
DBUtil.closeConnection(conn);
//捕获异常
}catch(SQLException se){
se.printStackTrace();
}catch(Exception e){
e.printStackTrace();
}
//返回list对象
return list;
}
}

********************与数据库的连接类DBUtil:
package bean;

import java.sql.*;
public class DBUtil {

static String serverName="localhost"; //主机地址
static String sDBDriver="oracle.jdbc.driver.OracleDriver"; //oracle驱动
static String dbInstance="cloud"; //数据库的名称
static String sConnStr="jdbc:oracle:thin:@"+serverName+":1521:"+dbInstance; //数据库的连接字符串

static String dbUser="system"; //数据库的登陆名
static String userPwd="manager"; //数据库的登陆密码

/*
*得到一个Connection对象
*@return java.sql.Connection
*/
public static Connection getConnection(){
Connection conn=null;
try{
Class.forName(sDBDriver);
conn=DriverManager.getConnection(sConnStr,dbUser,userPwd);
}catch(ClassNotFoundException e){
e.printStackTrace();
}catch(SQLException se){
se.printStackTrace();
}
return conn;
}

//关闭指定的结果集rs
public static void closeResultSet(ResultSet rs){
if(rs!=null){
try{
rs.close();
}catch(SQLException e){
e.printStackTrace();
}
}
}

//关闭指定的Statement
public static void closeStatement(Statement stmt){
if(stmt!=null){
try{
stmt.close();
}catch(SQLException e){
e.printStackTrace();
}
}
}

//关闭连接conn
public static void closeConnection(Connection conn){
if(conn!=null){
try{
conn.close();
}catch(SQLException e){
e.printStackTrace();
}
}
}
}

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-249655-1-1.html 上篇帖子: oracle 锁机制的归纳总结(转) 下篇帖子: 如何加速Oracle批量数据的处理
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表