20110916

来源:互联网 发布:php 微信开发流程 编辑:程序博客网 时间:2024/04/29 02:32
 

JDBC批量处理

Statement的execute()等方法一次只能执行一条SQL语句,如果同时有多条SQL语句要执行的话,可以使用addBatch()方法将要执行的SQL语句加入进来,然后执行executeBatch()方法,这样就可以在一次方法调用中执行多条SQL语句,以提高执行效率。

为了保证这一批语句要么全部成功,要么全部失败,应该把批处理放置在事务中进行。

使用PreparedStatement也可以进行批处理。

注意:批处理中执行的语句只能是更新语句(insert、delete、update),否则会抛出异常

简单地说,JDBC可做三件事:与数据库建立连接、发送 SQL 语句并处理结果。接下来通过几个简单的示例演示JDBC的应用。

首先建立数据库表:test.student。
可以使用如下语句创建该表:

CREATE DATABASE test;

USE test;

CREATE TABLE student (

    id INT(4) NOT NULL auto_increment,

    name VARCHAR(20) default NULL,

    myclass VARCHAR(20) default NULL,

    score INT(3) default 0,

    PRIMARY KEY  (id)

)

数据连接池

由于创建连接的代价是很高的,我们每次访问数据库都重新创建的话是非常消耗性的我们可以再程序启动的时候创建出一些连接,放在一个集合中,访问数据库的时候从集合中获取,使用结束再放回集合中。这样做只是在程序启动的时候消耗性能去创建连接,每次访问数据库的时候都是从内存中获取连接,可以大大提升效率。

注意事项:由于池中增删非常频繁,使用集合LinkedList、效率较高

集合中所有连接都被占用是创建连接,但需要注意连接总数

使用组合模式动态代理处理释放连接的方法,当运行close方法时,将连接放回池中

DataSoure概念

DataSource用来取代DriverManager来获取Connection;

通过DataSource获得Connection速度很快;

通过DataSource获得的Connection都是已经被包裹过的(不是驱动原来的连接)他的close方法已经被修改。

原创粉丝点击