zoukankan      html  css  js  c++  java
  • java oracle 增删改查操作

    用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(); 
    } 
    } 
    } 
    } 
  • 相关阅读:
    【转】Linux 用cp和rsync同步文件时跳过指定目录
    解决svn错误:postcommit hook failed (exit code 1) with output
    Linux下如何使cp命令不提示覆盖文件
    Linux tar压缩时排除某个目录或文件的参数
    ecshop中404错误页面 .
    Linux如何查看当前目录下文件的个数
    Meta Property=og标签在SEO中的应用
    mysql mysqldump只导出表结构或只导出数据的实现方法
    slaveskiperrors( 转)
    自定义404错误页面返回状态码分析
  • 原文地址:https://www.cnblogs.com/xuewater/p/2643222.html
Copyright © 2011-2022 走看看