DBUtils是JAVA编程中的数据库操作使用工具,小巧实用.
DBUtils封装了对JDBC的操作,简化了JDBC操作,可以小写代码。
- 对读表操作,可以把结果转换成List, Array, set等java集合便于操作。
- 写操作,只需要写SQL语句
- 可以使用数据源,使用jndi,数据库连接池等技术。
三个核心对象
1 queryRunner类 sql语句执行
2.ResultsetHandler接口 结果集封装
3.DBUtils 类 定义关闭资源和事务处理的方法
例子:
QueryRunner rq = new QueryRunner(DataBaseUtils.getDatasource());
try {
List<User> list= rq.query("select * from tuser", new BeanListHandler<User>(User.class));
for(User user:list){
System.out.println(user.getUsername());
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
DataBaseUtils.java
package com.wxs.dbutils;
import java.security.spec.DSAGenParameterSpec;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;
public class DataBaseUtils {
private static DataSource ds;
static{
Context context;
try {
context = new InitialContext();
ds =(DataSource)context.lookup("java:/comp/env/jdbc/JDNI");
} catch (NamingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static DataSource getDatasource(){
return ds;
}
public static Connection getConnetion(){
try {
return ds.getConnection();
} catch (SQLException e) {
throw new ExceptionInInitializerError("初始化错误");
}
}
public static void release(Connection conn,Statement stmt,ResultSet rs){
//关闭资源
if(rs!=null){
try {
rs.close();
} catch (Exception e) {
e.printStackTrace();
}
rs = null;
}
if(stmt!=null){
try {
stmt.close();
} catch (Exception e) {
e.printStackTrace();
}
stmt = null;
}
if(conn!=null){
try {
conn.close();//关闭
} catch (Exception e) {
e.printStackTrace();
}
conn = null;
}
}
}
User.java
package com.wxs.dbutils;
import java.io.Serializable;
import java.util.Date;
public class User implements Serializable{
private String username;
private String password;
private String email;
private String birthday;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getBirthday() {
return birthday;
}
public void setBirthday(String birthday) {
this.birthday = birthday;
}
}