DriverManager和DataSource区别
1、DriverManager
类来获取的Connection
连接,是无法重复利用的,每次使用完以后释放资源时,通过connection.close()
都是关闭物理连接。----->用一次关闭一次
2、DataSource
提供连接池的支持。连接池在初始化时将创建一定数量的数据库连接,这些链接是可以重复使用的,每次使用完数据库连接,释放资源调用connection.close()
都是将Connection
对象回收------->重复使用
三种Statement
Statement:用于执行不带参数的简单SQL语句
PreparedStatement:
用于执行带或者不带参数的SQL语句,SQL语句会预编译
在数据库系统,执行速度快于Statement对象
特点:
- 参数化SQL查询
- 高性能
- SQL预编译
- 阻止常见SQL注入
- 占位符不能使用多值
CallableStatement:
用于执行数据库存储过程的调用
PreparedStatement和Statement区别
参考:JDBC 中preparedStatement和Statement区别
-
PreparedStatement代码可读性和可维护性
使用PreparedStatement代替Statement会使代码多处几行,但这样的代码在可读性和可维护性上比Statement更好
--statement执行更新,可读性较差 statement.executeUpdate("insert into student (id,sn,name,class_id) values('"