JDBC连接数据库BaseDao通用类(可以调用存储过程)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
} catch (Exception e) { System.out.println("执行增删改错误:"+e.getMessage());
}finally{ this.closeAll(null, cs, connection);
} return row; }
/** * 执行带查询的存储过程 * @param procName 存储过程名 * @param list 参数集合 * @return 返回查询结果 */ public Result executeQuery(String procName,List list) {
/** * 开库 * @return * @throws Exception
file:///C|/Documents and Settings/Administrator/桌面/JDBC连接数据库BaseDao通用类(可以调用存储过程).txt[2011-6-9 23:40:30]
*/ private Connection openConnection()throws Exception{
pack来自百度文库ge com.company.atm.dao;
import java.sql.CallableStatement; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet;
listResult.add(cs.getResultSet().getObject(num)); }
} } } }
/**
* 执行增删改存储过程
* @param procName 存储过程名称
* @param list
参数集合
* @return
影响行数
*/
public int executeUpdate(String procName,List list){
} }
/** * 获取存储过程输出参数的值 * @param cs 执行预计对象 * @param list 参数集合 * @param listResult 输出结果集合 * @throws Exception */ private void GetValue(CallableStatement cs,List list,List listResult)throws Exception{
file:///C|/Documents and Settings/Administrator/桌面/JDBC连接数据库BaseDao通用类(可以调用存储过程).txt[2011-6-9 23:40:30]
....
cs = conn.prepareCall(sql); cs.setString(1, "xxx") ;//设置输入参数值 cs.registerOutParameter(2, Types.CHAR); //将第2个参数设为输出 cs.execute(); String res = cs.getString(2) ;// 获得执行后的输出值*/
try { if(rs!=null) { rs.close(); rs=null; } if(cs!=null){ cs.close(); cs=null; } if(con!=null){ con.close(); con=null; }
} catch (Exception e) {
file:///C|/Documents and Settings/Administrator/桌面/JDBC连接数据库BaseDao通用类(可以调用存储过程).txt[2011-6-9 23:40:30]
file:///C|/Documents and Settings/Administrator/桌面/JDBC连接数据库BaseDao通用类(可以调用存储过程).txt[2011-6-9 23:40:30]
if(list!=null){ if(list.contains("outputParameter")){ for(int num=0;num<list.size();num++){ if(list.get(num).equals("outputParameter")){
file:///C|/Documents and Settings/Administrator/桌面/JDBC连接数据库BaseDao通用类(可以调用存储过程).txt[2011-6-9 23:40:30]
if(cs!=null && list!=null){ for(int count=0;count<list.size();count++){ if(!list.get(count).equals("outputParameter")){ cs.setObject(count+1, list.get(count)); } }
this.SetValues(cs, list); rs=cs.executeQuery(); result=ResultSupport.toResult(rs); } catch (Exception e) { System.out.println("执行带查询的存储过程错误:"+e.getMessage()); }finally{ this.closeAll(null, cs, connection); } return result; } }
Class.forName(DRIVER); return DriverManager.getConnection(URL,USER,PASSWORD); }
/** * 关库 * @param rs 结果集 * @param cs 执行对象 * @param con 连接对象 * @throws Exception */ private void closeAll(ResultSet rs,PreparedStatement cs,Connection con){
int row=0;
try {
connection=openConnection();
cs=connection.prepareCall("{call "+procName+"}");
this.SetValues(cs, list); row=cs.executeUpdate();
/*String sql = "{call pro_name(?, ?)}"; //调用pro_name,两个参数,假设第 1个参数为输入,第二个为输出
System.out.println("关闭错误: "+e.getMessage()); }
}
/** * 通用赋值 * @param cs 预编译对象 * @param list 参数集合 * @throws Exception */ private void SetValues(CallableStatement cs,List list)throws Exception{
Result result=null; try {
connection=openConnection(); cs=connection.prepareCall("{call "+procName+"}");
file:///C|/Documents and Settings/Administrator/桌面/JDBC连接数据库BaseDao通用类(可以调用存储过程).txt[2011-6-9 23:40:30]
import java.util.ArrayList; import java.util.List;
import javax.servlet.jsp.jstl.sql.Result; import javax.servlet.jsp.jstl.sql.ResultSupport;
public class BaseDaoOutput { private static final String DRIVER="com.microsoft.sqlserver.jdbc.SQLServerDriver"; private static final String URL="jdbc:sqlserver://localhost:1433;databaseName=bankdb"; private static final String USER="sa"; private static final String PASSWORD="sa"; Connection connection=null; CallableStatement cs=null; ResultSet rs=null;
}finally{ this.closeAll(null, cs, connection);
} return row; }
/** * 执行带查询的存储过程 * @param procName 存储过程名 * @param list 参数集合 * @return 返回查询结果 */ public Result executeQuery(String procName,List list) {
/** * 开库 * @return * @throws Exception
file:///C|/Documents and Settings/Administrator/桌面/JDBC连接数据库BaseDao通用类(可以调用存储过程).txt[2011-6-9 23:40:30]
*/ private Connection openConnection()throws Exception{
pack来自百度文库ge com.company.atm.dao;
import java.sql.CallableStatement; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet;
listResult.add(cs.getResultSet().getObject(num)); }
} } } }
/**
* 执行增删改存储过程
* @param procName 存储过程名称
* @param list
参数集合
* @return
影响行数
*/
public int executeUpdate(String procName,List list){
} }
/** * 获取存储过程输出参数的值 * @param cs 执行预计对象 * @param list 参数集合 * @param listResult 输出结果集合 * @throws Exception */ private void GetValue(CallableStatement cs,List list,List listResult)throws Exception{
file:///C|/Documents and Settings/Administrator/桌面/JDBC连接数据库BaseDao通用类(可以调用存储过程).txt[2011-6-9 23:40:30]
....
cs = conn.prepareCall(sql); cs.setString(1, "xxx") ;//设置输入参数值 cs.registerOutParameter(2, Types.CHAR); //将第2个参数设为输出 cs.execute(); String res = cs.getString(2) ;// 获得执行后的输出值*/
try { if(rs!=null) { rs.close(); rs=null; } if(cs!=null){ cs.close(); cs=null; } if(con!=null){ con.close(); con=null; }
} catch (Exception e) {
file:///C|/Documents and Settings/Administrator/桌面/JDBC连接数据库BaseDao通用类(可以调用存储过程).txt[2011-6-9 23:40:30]
file:///C|/Documents and Settings/Administrator/桌面/JDBC连接数据库BaseDao通用类(可以调用存储过程).txt[2011-6-9 23:40:30]
if(list!=null){ if(list.contains("outputParameter")){ for(int num=0;num<list.size();num++){ if(list.get(num).equals("outputParameter")){
file:///C|/Documents and Settings/Administrator/桌面/JDBC连接数据库BaseDao通用类(可以调用存储过程).txt[2011-6-9 23:40:30]
if(cs!=null && list!=null){ for(int count=0;count<list.size();count++){ if(!list.get(count).equals("outputParameter")){ cs.setObject(count+1, list.get(count)); } }
this.SetValues(cs, list); rs=cs.executeQuery(); result=ResultSupport.toResult(rs); } catch (Exception e) { System.out.println("执行带查询的存储过程错误:"+e.getMessage()); }finally{ this.closeAll(null, cs, connection); } return result; } }
Class.forName(DRIVER); return DriverManager.getConnection(URL,USER,PASSWORD); }
/** * 关库 * @param rs 结果集 * @param cs 执行对象 * @param con 连接对象 * @throws Exception */ private void closeAll(ResultSet rs,PreparedStatement cs,Connection con){
int row=0;
try {
connection=openConnection();
cs=connection.prepareCall("{call "+procName+"}");
this.SetValues(cs, list); row=cs.executeUpdate();
/*String sql = "{call pro_name(?, ?)}"; //调用pro_name,两个参数,假设第 1个参数为输入,第二个为输出
System.out.println("关闭错误: "+e.getMessage()); }
}
/** * 通用赋值 * @param cs 预编译对象 * @param list 参数集合 * @throws Exception */ private void SetValues(CallableStatement cs,List list)throws Exception{
Result result=null; try {
connection=openConnection(); cs=connection.prepareCall("{call "+procName+"}");
file:///C|/Documents and Settings/Administrator/桌面/JDBC连接数据库BaseDao通用类(可以调用存储过程).txt[2011-6-9 23:40:30]
import java.util.ArrayList; import java.util.List;
import javax.servlet.jsp.jstl.sql.Result; import javax.servlet.jsp.jstl.sql.ResultSupport;
public class BaseDaoOutput { private static final String DRIVER="com.microsoft.sqlserver.jdbc.SQLServerDriver"; private static final String URL="jdbc:sqlserver://localhost:1433;databaseName=bankdb"; private static final String USER="sa"; private static final String PASSWORD="sa"; Connection connection=null; CallableStatement cs=null; ResultSet rs=null;