JDBC批量处理与结果集

来源:互联网 发布:初级程序员考试培训 编辑:程序博客网 时间:2024/05/21 15:00

JDBC批量处理与结果集

一,     概论

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

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

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

简单地说,JDBC可做三件事:与数据库建立连接、发送 SQL 语句并处理结果。

二,     实例

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

CREATE DATABASEtest;

USE test;

CREATE TABLEstudent (

    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)

)

下面通过MyEclipse编写一段Java代码来实现对student表的相关操作。

在该工程下建一个名为jars的文件夹,把MySQL的驱动程序(jar包)放进去,然后右键单击该jar文件,在弹出的快捷菜单中选择“buildpath”命令下的“add to build path”命令

创建DoInsert类和DoSelect类实现数据的插入和查询,并验证数据。

PreparedStatement表示预编译的SQL语句的对象。

实例——prepdemo:根据传入不同的id查询学生信息。

对获得Connection对象进行封装

将数据库的配置信息写到一个属性文件中,然后用IO流去获取,当需要修改数据库连接的时候只要改动配置文件即可。

在src下新建属性文件jdbc.properties,添加如下内容:

driver=com.mysql.jdbc.Driver

url=jdbc:mysql://localhost:3306/test

username=root

password=root

三,对关闭JDBC资源类的封装

新建DbClose.java类,添加方法关闭结果集对象、语句对象、连接对象。

在执行增加、删除、修改的时候可以使用代码关闭连接:DbClose.close(Statement stmt, Connectionconn);

在执行查询之后使用如下代码关闭连接:DbClose.close(ResultSet rs, Statement stmt,Connection conn);

对执行数据库操作类的封装

在一个程序中会有很多地方要操作数据库,那么对执行数据库操作同样需要修改。新建ControlDB.java

四,     小结ResultSetMetaData结果集元数据

简单地说,JDBC可做三件事:与数据库建立连接、发送 SQL 语句并处理结果。批处理中执行的语句只能是更新语句(insert、delete、update),否则会抛出异常。

ResultSet用来表示查询到的数据,而ResultSetMetaData表示的是所查询到的数据背后的数据描述——如表名称、列名称、列类型等。

ResultSetMetaData提供了很多的方法,用来获取查询到的数据集的描述数据。

–      rsm.getCatalogName(i);

–      rsm.getColumnClassName(i);

–      rsm.getColumnDisplaySize(i);

–      rsm.getColumnLabel(i);

–      rsm.getColumnName(i);

–      rsm.getColumnType(i);

–      rsm.getColumnTypeName(i);

–      rsm.getPrecision(i);

–      rsm.getSchemaName(i);

–      rsm.isAutoIncrement(i);

–      rsm.isCurrency(i);

–      rsm.isNullable(i);

–      rsm.isReadOnly(i);

–      rsm.isSearchable(i);

 

原创粉丝点击