JDBC
-
概念:Java DataBase Connectivity Java 数据库连接
JDBC本质:操作所有关系型数据库的接口,数据库厂商去实现这套接口,提供数据库驱动jar包。使用这套接口(JDBC)编程,真正执行的代码是驱动jar包中的实现类。
-
快速入门:
步骤
-
导入驱动jar包
-
注册驱动
-
获取数据库连接对象 Connection
-
定义sql
-
获取执行sql语句的对象 Statement
-
执行sql,接收返回结果
-
处理结果
-
释放资源
-
-
详解各个对象:
-
DriverManger: 驱动管理对象
功能:
-
注册驱动:告诉程序该使用哪一个数据库驱动jar
Class.forName("com.mysql.jdbc.Driver");
-
获取数据库连接:
发法:static Connection getConnection(String url, String user, String password)
-
-
Connection: 数据库连接对象
功能:
-
获取执行sql的对象
Statement createStatement()
PreparedStatement PrepareStatement(String sql)
-
管理事务:
-
开启事务:setAutoCommit(boolen autoCommit): 调用该方法设置参数为false, 即开启事务
-
提交事务:commit()
-
回滚事务:rollback()
-
-
-
Statement:执行sql的对象
-
int executeUpdate(String sql): 执行DML(insert、update、detele)语句、DDL(create、alter、drop)语句
返回值:返回值>0则执行成功
-
ResultSet executeQuery(String sql):执行DQL(select)语句
-
-
ResultSet:结果集对象,封装查询结果
boolean next():游标向下移动一行,判断当前行是否是最后一行末尾(是否有数据),如果是,则返回false,如果不是则返回true
getxxx(参数):获取数据 xxx:代表数据类型 参数:列的编号或者名称
-
PreparedStatement:执行sql的对象
-
SQL注入问题:拼接sql时,sql关键字参与拼接,会造成安全性问题
-
解决sql注入问题:使用PreparedStatement对象来解决
-
预编译的SQL:参数使用?作为占位符
-
步骤:
-
导入驱动
-
注册驱动
-
获取数据库连接对象
-
定义sql (参数使用?作为占位符)
-
获取执行sql的对象
-
给? 赋值:
方法:setxxx(参数1,参数2)
参数1:? 的位置编号 从1 开始
参数2:?的值
-
执行sql,接收返回结果,不需要传递sql语句
-
处理结果
-
释放资源
-
-
注意:以后都用PreparedStatement完成增删改查
-
可以防止sql注入
-
效率高
-
-
-
JDBC工具类:JDBCUtils
简化书写
-
抽取驱动
-
抽取一个方法获取连接对象
配置文件
jdbc.properties
url=
user=
password=
-
抽取一个方法释放资源
JDBC控制事务
-
操作:
-
开启事务:setAutoCommit(boolean autoCommit):调用该方法参数设置为false
执行sql之前开启事务
-
提交事务: commit()
sql执行完后提交事务
-
回滚事务:rolllback()
在catch中回滚事务
-