JDBC工具类和Statement与Result的使用

一:jdbc工具类JDBC_Tools
1.数据库连接
public static Connection getConnection() throws Exception {
    // 1). 创建 Properties 对象
    Properties properties = new Properties();
    InputStream in = JDBC_Tools.class.getClassLoader().getResourceAsStream(
            "jdbc.properties");
    properties.load(in);
    // 2). 具体决定 user, password 等4 个字符串.
    String user = properties.getProperty("username");
    String password = properties.getProperty("password");
    String jdbcUrl = properties.getProperty("jdbcUrl");
    String driver = properties.getProperty("driver");
    // 3. 加载数据库驱动程序(对应的 Driver 实现类中有注册驱动的静态代码块.)
    Class.forName(driver);
    // 4. 通过 DriverManager 的 getConnection() 方法获取数据库连接.
    return DriverManager.getConnection(jdbcUrl, user, password);}
数据库关闭 relaseSource
public static void relaseSource(ResultSet rs, Connection conn , Statement statement){
if(rs != null){ try {
 rs.close();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    JDBC_Tools.relaseSource(conn, statement);
}
public static void relaseSource(Connection conn ,Statement statement){
    if(statement!=null){
        try {
            statement.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

    //使用两个 if ,这样即使中间出现异常,程序还是继续执行下去
    if(conn!=null){
        try {
            conn.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}
数据库操作常用方法update/insert/add...后期添加
public static int update (String sql) {
    Connection conn = null; Statement statement = null; int num = 0; try { try {
        conn = JDBC_Tools.getConnection(); } catch (Exception e){
        e.printStackTrace(); } statement = conn.createStatement(); num = statement.executeUpdate(sql); } catch 
    (SQLException e){
        e.printStackTrace(); }finally{
        JDBC_Tools.relaseSource(conn, statement); } return num;
}

Statement: 用于执行 SQL 语句的对象
         * 1). 通过 Connection 的 createStatement() 方法来获取
         * 2). 通过 executeUpdate(sql) 可以执行 SQL 语句.
         * 3). 传入的 SQL 可以是 INSRET, UPDATE 或 DELETE. 但不能是 SELECT

         //获取连接
         connection=getConnection();
        //调用Connection对象的createStatement()方法获取Statement对象
           statement=connection.createStatement();
        //准备 SQL 语句
            String sql = "UPDATE customers SET name = 'Jerry'WHERE id = 2";
        //发送 SQL 语句: 调用 Statement 对象的  executeUpdate(sql) 方
            statement.executeUpdate(sql);
 
 public void testStatement1() throws Exception{
      //1. 获取数据库连接
      Connection conn = null;
      Statement statement = null;
      try {
          conn = JDBC_Tools.getConnection();

          //3. 准备插入/更新的 SQL 语句
          String sql = null;
          /*sql = "DELETE FROM customers WHERE id = 1";*/
          /*sql = "UPDATE customers SET name = 'TOM' " +
                  "WHERE id = 4";*/

sql = "INSERT INTO Grade(name,sex,grade) " +
         "VALUES('王玉', '女', '98')";
   /*sql = "DELETE FROM grade WHERE id = 1";*/
          /*sql="UPDATE  grade SET name='马燕' WHERE id=5";*/
          System.out.println(sql);

          //4. 执行插入.
          //1). 获取操作 SQL 语句的 Statement 对象:
          //调用 Connection 的 createStatement() 方法来获取
          statement = conn.createStatement();

          //2). 调用 Statement 对象的 executeUpdate(sql) 执行 SQL 语句进行插入
          statement.executeUpdate(sql);
      } catch (Exception e) {
          e.printStackTrace();
      } finally{
          JDBC_Tools.relaseSource(null,conn,statement);
      }
  }
结果集ResultSet(查询)
Statement st = conn.CreateStatement
ResultSet rs = Statement.excuteQuery(sqlStr);
while(result.next()) ...{
 System.out.print(result.getString(1) + " ");
  System.out.print(result.getString(2) + " ");
 ...
}
 
@Test
public void testResultSet(){
    //获取 id=4 的 Grade 数据表的记录, 并打印
    Connection conn = null;
    Statement statement = null;
    ResultSet rs = null;
    try {
        //1. 获取 Connection
        conn = JDBC_Tools.getConnection();
        //2. 获取 Statement
        statement = conn.createStatement();
        //3. 准备 SQL
        String sql = "SELECT id,name,sex,grade FROM grade WHERE id=4";
        //4. 执行查询, 得到 ResultSet
        rs = statement.executeQuery(sql);
        //5. 处理 ResultSet
        while(rs.next()){
            int id = rs.getInt(1);
            String name = rs.getString(2);
            String sex = rs.getString(3);
            Float grade=rs.getFloat(4);
            System.out.println(id+"\t"+name+"\t"+sex+"\t"+grade);
        }
    } catch (Exception e) {
        e.printStackTrace();
    } finally{
        //6. 关闭数据库资源.
        JDBC_Tools.relaseSource(rs,conn,statement);
    }

}



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值