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);