jdbc学习总结

时间:2021-04-26 15:36:50
jdbc学习总结:
一、简介:
  jdbc,直译为java连接数据库。实际为java为很好的操作数据库而提供的一套接口,接口的实现(即驱动)由各个数据库厂商提供。
二、知识要点:
  连接5要素,3个知识点
三、知识图谱:
  3.1.连接执行一条龙:
    注册——>连接——>获取session会话——>执行SQL——>返回结果集
  3.2.小知识:
      1.s p比较3方向:安全、效率、预编译
      2.批处理:添加、执行、清空
      3.自增长:
四、详情:
4.1.连接操作:
  //注册驱动
    Class.forName("Driver.class");
  //获取连接
    Connection conn = DriverManager.getConnection(url,username,password);
  //获取session会话:
    Statement stmt = conn.createStatement();
  //执行更新语句
    stmt.executeUpdate(sql);
  //执行查询操作,返回结果集
    ResultSet rs = stmt.executeQuery(sql);
  //获取预编译会话
    PreparedStatement pstmt = conn.preparedStatement(sql)
    pstmt.executeUpdate();
    pstmt.executeQuery();
4.2 3个知识点:
  1.sp比较: PrepareStatement 执行预编译sql,
    安全性:防注入;
    效率高:oracle会用缓冲池
    会执行预编译
  2.批量:
    //加入批量
      pstmt.addBatch();
    //执行批量(等全部sql加入批量,再执行批量)
      pstmt.addBatch();
    //清空批量
      pstmt.clearBatch();
  3.自增长不会用,还是搁这吧:(估计是由于自己执行的那个表没有加序列的原因)
    //获取执行自增sql的预编译会话
      pstmt = conn.prepareStatement(sql,PreparedStatement.RETURN_GENERATED_KEYS);
    //执行sql
      pstmt.executeUpdate();
    // 获取执行自增sql后的自增长列
      ResultSet rs = pstmt.getGeneratedKeys();
    //获取自增长值:
      while(rs.next){
        rs.getInt(1);
      }
五、零散总结
  1.导驱动包时,注意与数据库版本一致;
  2.这里没有涉及sql调优,以后再学;
  3.没有涉及连接池操作,以后在学;
  4.事务管理:conn.setAutoCommit(boolean);