JDBC有关技术
日常打卡:第一天
1、简述原生jdbc操作数据库流程?
1)注册驱动
Class.forName( ) /* 加载数据库链接驱动*/
2)获取链接
DriverManager.getConnection() /* 获取数据链接对象 */
3)创建SQL执行对象
此时有以下两种方式
A. Statement 方式
B. PreparedStatement 方式(可防SQL注入)
4)执行SQL语句命令,返回结果集(ResultSet)
如果语句中含有参数值,需要用 setXXX() 设置相应的参数值
5)关闭结果集,关闭会话,关闭链接。(注意关闭时顺序)
2、JDBC中为什么要使用 PreparedStatement ?
1、PreparedStatement接口继承于Statement,PreparedStatement是预编译的
SQL语句,效率高于Statement。
2、PreparedStatement 作为Statement的子类,其继承了Statement类中所有的
功能。三种方法excute、executeQuery、executeUpdate已经被更改使之不再
需要参数。
3、PreparedStatement支持 ? 占位符,比Statement更加灵活。
4、PreparedStatement可以有效防止SQL注入,安全性更高于Statement。
3、在JDBC中为什么不推荐使用Statement ?
1、Statement需要不断的进行拼接,代码的可读性与维护性低。
2、Statement容易被SQL语句注入,安全性低。
3、Statement驱动程序一般不会对sql语句作处理而直接交给数据库,对于多次重
复执行的语句,反复进行编译,效率会低。
4、关系数据库中连接池的机制是什么?
前提:先要为数据库链接建立一个缓冲池
1、从连接池中获取或创建可用链接
2、使用完毕,归还链接,从新放入连接池中
3、在系统关闭前,断开所有链接并释放链接占用的系统资源
4、处理无效链接,限制连接池中的连接总数不低于或者不超过某个限定值
注意
1)在连接池中有最小连接数和最大连接数。
也就是说:数据库池连接数量一直保持一个不少于最小连接数的数量,当数量不够时,
数据库会创建一些连接,直到一个最大连接数,之后连接数据库就会等待。