DriverManager:驱动管理类
*主要作用:
1.注册驱动
实际开发中注册驱动会使用如下方式:
Class.forName("com.mysql.jdbc.Driver");
使用DriverManager.registerDriver(new Driver());会导致驱动注册两次
2.获得连接
Connection getConnection(String url,String username,String password);
url写法:jdbc:mysql://localhost:3306/jdbc
*jdbc :协议
*mysql :子协议
*localhost:主机名
*3306 :端口号
url简写: jdbc:mysql:///jdbc 默认连接本地数据库,则localhost:3306可以省略
Connection:连接对象
*主要作用:
1.创建执行SQL语句的对象
Statement createStatement() 执行SQL语句,有SQL注入的漏洞存在
PreparedStatement prepareStatement(String sql) 预编译SQL语句,解决了SQL注入的漏洞
CallableStatement prepareCall(String sql) 执行SQL中存储过程
2.进行事务的管理
setAutoCommit(boolean autoCommit) 设置事务是否自动提交
commit() 事务提交
rollback() 事务回滚
Statement:执行SQL
主要作用
1.执行SQL语句
boolean execute(String sql) 执行SQL,执行select语句返回true,否则返回false
ResultSet executeQuery(String sql) 执行SQL中的select语句
int executeUpdate(String sql) 执行SQL中的insert/update/delete语句
2.执行批处理操作
addBatch(String sql) 添加到批处理
executeBatch() 执行批处理
clearBatch() 清空批处理
ResultSet:结果集
结果集:其实就是查询语句(select)语句查询的结果的封装
主要作用:
结果集获取查询到的结果。
next() 判断结果集中是否还有下一行
针对不同的数据类型可以使用getXXX()来获取数据,通用的获取数据的方法:getObject()
JDBC的资源释放
特别是Connection对象,是非常稀有的资源,用完之后需要马上释放,如果Connection不能及时、正确的关闭,极易导致系统宕机。Connection的使用原则是尽量晚创建,尽量早释放。
标准资源释放代码
finally {
//4.释放资源
if(rs != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
rs = null;
}
if(stmt != null) {
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
stmt = null;
}
if(conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
conn = null;//垃圾回收机制更早回收对象
}
}