jdbc学习总结:
1、简介:
jdbc,直译为java链接数据库。实际为java为很好的操做数据库而提供的一套接口,接口的实现(即驱动)由各个数据库厂商提供。
2、知识要点:
链接5要素,3个知识点
3、知识图谱:
3.1.链接执行一条龙:
注册——>链接——>获取session会话——>执行SQL——>返回结果集
3.2.小知识:
1.s p比较3方向:安全、效率、预编译
2.批处理:添加、执行、清空
3.自增加:
4、详情:
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);
}
5、零散总结
1.导驱动包时,注意与数据库版本一致;
2.这里没有涉及sql调优,之后再学;
3.没有涉及链接池操做,之后在学;
4.事务管理:conn.setAutoCommit(boolean);