—————————————使用效果——————————————————
——————————————源码——————————————————
————DButil类,这个类我封装的不好,主要看open(),close(),getResultList(String classpath,String sql,Object... src)这几个方法,主要代码我标红
package com.fendou.DBUtil;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Savepoint;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import com.fendou.myfactory.Myfactory;
import com.fendou.vo.Orders;
import com.fendou.wrapper.IWrapper;
import com.fendou.wrapper.WrapperBatcher;
/**
* DButil类2012-9-13
* @author 牟云飞
*
*/
public class DButil
private String driver=Myfactory.driver;
private String url=Myfactory.url;
private String user=Myfactory.user;
private String pwd=Myfactory.pwd;
private Connection con =null;
private Statement stat = null ;
private ResultSet rs = null;
private PreparedStatement ps =null;
public DButil(){
}
/**
* 打开数据连接,如果关闭成功,返回true,否则false
* @return boolean
*/
public boolean open(){
boolean flag = false;
try {
Class.forName(driver);
con = DriverManager.getConnection(url,user,pwd);
flag=true;
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return flag;
}
/**
* 关闭连接,成功true,失败false
* @return boolean
*/
public boolean close(){
boolean flag = false;
try {
if(rs!=null){
if(rs.isClosed()==false){
rs.close();}
}
if(stat!=null){
if(stat.isClosed()==false){
stat.close();
}
}
if(ps!=null){
if(ps.isClosed()==false){
ps.close();
}
}
if(con!=null){
if(con.isClosed()==false){
con.close();
}
}
flag = true;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return flag;
}
/**
* 执行sql语句获得list
* 通过iwrapper封装直接得到list
* @param wrapper继承IWrapper
* @param sql语句
* @param src
* @return
*/
public List
List
//打开连接
open();
try {
ps =con.prepareStatement(sql);
for (int i = 0; i < src.length; i++) {
ps.setObject(i+1,src[i] );
}
//执行,获得result
rs = ps.executeQuery();
//将resultset转换成list
while(rs.next()){
WrapperBatcher
T t = w.setT(classpath, rs);
list.add(t);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//关闭连接
close();
//获得结果
return list;
}
/**
* 执行sql语句返回受影响行数
*增加、删除、修改
* @param sql语句
* @param 参数
* @return 手影响行数
*/
public int update(String sql,Object... src){
int count=0;
//打开连接
open();
try {
ps =con.prepareStatement(sql);
for (int i = 0; i < src.length; i++) {
ps.setObject(i+1,src[i] );
}
//执行,获得受影响行数
count = ps.executeUpdate();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//关闭连接
close();
//获得结果
return count;
}
/**
* 执行sql语句返回受影响行数
*增加、删除、修改
* @param sql语句
* @return 手影响行数
*/
public int update(String sql){
int count=0;
//打开连接
open();
try {
ps =con.prepareStatement(sql);
//执行,获得受影响行数
count = ps.executeUpdate();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//关闭连接
close();
//获得结果
return count;