JDBC技术
-
第一步:Class.forName()加载数据库连接驱动;
-
第二步:DriverManager.getConnection()获取数据连接对象;
-
第三步:根据SQL获取sql会话对象,有2种方式Statement、PreparedStatement;
-
第四步:执行SQL处理结果集,执行SQL前如果有参数值就设置参数值setXXX();
-
第五步:关闭结果集、关闭会话、关闭连接。
2. 为什么要使用PreparedStatement?
-
1、PreparedStatement接口继承Statement,PreparedStatement实例包含已编译的SQL语句,所以其执行速度要快于Statement对象。
-
2、作为Statement的子类,PreparedStatement继承了Statement的所有功能。三种方法execute、executeQuery和executeUpdate已被更改以使之不再需要参数
-
3、在JDBC应用中,在任何时候都不要使用Statement,原因如下:
-
一、代码的可读性和可维护性。Statement需要不断地拼接,而PreparedStatement不会。
-
二、PreparedStatement尽最大可能提高性能,DB有缓存机制,相同的预编译语句再次被调用不会再次需要编译。
-
三、最重要的一点是极大地提高了安全性。Statement容易被SQL注入,而PreparedStatement传入的内容不会和sql语句发生任何关系。
3.关系数据库中连接池的机制是什么?
-
前提:为数据库连接建立一个缓冲池。
-
1:从连接池获取或创建可用连接
-
2:使用完毕之后,把连接返回给连接池
-
3:在系统关闭前,断开所有连接并释放连接占用的系统资源
-
4:能够处理无效连接,限制连接池中的连接总数不低于或者不超过某个限定值。
-
其中有几个概念需要大家理解:
-
最小连接数是连接池一直保持的数据连接。如果应用程序对数据库连接的使用量不大,将会有大量的数据库连接资源被浪费掉。
-
最大连接数是连接池能申请的最大连接数。如果数据连接请求超过此数,后面的数据连接请求将被加入到等待队列中,这会影响之后的数据库操作。
-
如果最小连接数与最大连接数相差太大,那么,最先的连接请求将会获利,之后超过最小连接数量的连接请求等价于建立一个新的数据库连接。不过,这些大于最小连接数的数据库连接在使用完不会马上被释放,它将被放到连接池中等待重复使用或是空闲超时后被释放。
-
上面的解释,可以这样理解:数据库池连接数量一直保持一个不少于最小连接数的数量,当数量不够时,数据库会创建一些连接,直到一个最大连接数,之后连接数据库就会等待。

浙公网安备 33010602011771号