java减少代码书写――数据访问层Wrapper―获取数据及分页―反射2(二)

2014-11-24 09:24:10 · 作者: · 浏览: 6
}



/**
* 得到连接
* @return Connection
*/
public Connection getConnection() {

return con;
}


/**
* 获取PreparedStatement
* @param sql语句
* @return PreparedStatement
*/
public PreparedStatement getPreparedStatement(String sql){
try {
ps = con.prepareStatement(sql);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return ps;

}

/**
* 执行PreparedStatement,获得结果集
* @param PreparedStatement
* @return ResultSet
*/
public ResultSet executePreparedStatement(PreparedStatement pre){
try {
rs = pre.executeQuery();

} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return rs;
}



/**
* 执行PreparedStatement,获得受影响的行数
* @param PreparedStatement
* @return int
*/
public int executePSUpdate(PreparedStatement pre){
int i = 0;
try {
i = pre.executeUpdate();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return i;
}

/**
* 开始新的事务
*/
public void openTran(){
if(con!=null){
try {
con.commit();
con.setAutoCommit(false);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

/**
* 提交事务
*/
public void commit()
{
if(con!=null){
try {
con.commit();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

}

/**
* 事务回滚
*/
public void rollback(){
try {
con.rollback();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

/**
* 设置断点
* @param 断点名
* @return
*/
public Savepoint setPoint(String name){
Savepoint s = null;
try {
s = con.setSavepoint(name);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return s;

}

/**
* 断点回滚
*/
public boolean rollbackByPoint(Savepoint savepoint){
boolean flag = false;
try {
con.rollback(savepoint);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return flag;
}



/**
* 关闭事务
*/
public void closeTran(){
if(con!=null){
try {
con.setAutoCommit(false);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

//获取statment
public Statement getStatement(){
if(con!=null){
try {
stat = con.createStatement();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}
return stat ;
}
//statement执行
public int executeStatmentUpdate(String sql){
int i = 0;
try {
i = stat.executeUpdate(sql);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return i ;
}

//用statment返回结果集
public ResultSet executeStatmentQuery(String sql){
try {
rs = stat.executeQuery(sql);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return rs;
}

}

————WrapperBatcher类,这个在DButil类中的getResultLis()方法t中使用

package com.fendou.wrapper;

import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.lang.reflect.Type;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
/**
* 2012-9-18
* @author 牟云飞
*
*/
public class WrapperBatcher {

/**
* 方法一:将resultSet自动变成对应的类
* 方法二优秀,方法一再某些条件下是错误的,例如:get、set一旦调用顺序变动
* 都是set
* @param 类的完整路径
* @param resultSet结果集
* @return 对应的类
*/
pu