如何使用DButils
一丶首先什么是DButils呢?
DButils是操作数据库的组件,对传统操作数据库的类进行二次封装,可以把结果集转化成List,是java编程中的数据库操作实用工具,小巧简单实用。(PS:传统操作数据库的类指的是JDBC(java database connectivity)java数据库连接,java的数据库操作的基础API。
二丶DButils类
为了实现一些提供给常规工作有用方法的类(关闭连接丶装载JDBC驱动程序等),其里面的所有的方法都是静态(static)的。
1. Close方法:DButils提供了三个重载的关闭方法。这些方法检查所提供的参数是不是空NULL,if not NULL,它们就会关闭连接(Connection)丶声明(Statement)或结果集(ResultSet)对象。
2. CloseQuietly方法:CloseQuietly方法不仅可以隐藏一些程序抛出的SQL Exception,还可以在连接(Connection)丶声明(Statement)或结果集(ResultSet)为空(NULL)的情况下避免关闭。在重载CloseQuietly方法时,使用CloseQuietly(Connection *conn,Statement stmt,ResultSet rs),最后的块就可以只需要调用这个方法即可。
3. commitAndCloseQuietly方法:用来提交连接然后关闭连接
4. commitAndClose方法:作用同3,和3不同的是其在关闭连接时向上抛出SQL异常,而3不会抛出SQL异常。
5.Load Driver(string drive Class Name):重载并注册了JDBC驱动程序,如果成功返回true,无需捕捉ClassNotFoundException异常,通过返回值就可以判断驱动程序是否加载成功。
三丶ResultSetHandler接口
此接口执行处理一个Java.SQL.ResultSet,将数据转变并处理为任何一种形式,这样又更加方便其应用,使用起来也更加简单。
1.Array Handler:将ResultSet中第一行的数据转化为对象数组。
2.ArrayListHandler:将ResultSet中所有的数据转化为List,List中存放的是Object[]。
3.Bean Handler:将ResultSet中第一行的数据转化为类对象。
4.BeanListHandler:将ResultSet中所有的数据转化为List,List中存放的是类对象。
详细用法如下:
import org.apache.commons.dbutils.DbUtils;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.MapListHandler;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Map;
import java.util.List;
public class DbUtilsUseMapMySQL {
public static void main(String[] args) {
Connection conn = null;
String jdbcURL = "jdbc:mysql://Dell/Desktop/octopus";
String jdbcDriver = "com.mysql.jdbc.Driver";
String user = "root";
String password = "root";
try {
DbUtils.loadDriver(jdbcDriver);
conn = DriverManager.getConnection(jdbcURL, user, password);
QueryRunner qRunner = new QueryRunner();
List mapList = (List) qRunner.query(conn, "select id, name from animals_table",
new MapListHandler());
for (int i = 0; i < mapList.size(); i++) {
Map map = (Map) mapList.get(i);
System.out.println("id=" + map.get("id"));
System.out.println("name=" + map.get("name"));
System.out.println("—————–");
}
System.out.println("DbUtils_UseMap_MySQL: end.");
} catch (SQLException e) {
// handle the exception
e.printStackTrace();
} finally {
DbUtils.closeQuietly(conn);
}
}
}
class Employee {
private int id;
private String name;
public Employee() {
}
public void setName(String name) {
this.name = name;
}
public String getName() {
return this.name;
}
public void setId(int id) {
this.id = id;
}
public int getId() {
return this