java通用DAO
?
package?org.gaoyoubo.dao;import?java.sql.*;
import?java.util.*;
import?javax.servlet.jsp.jstl.sql.*;
public?class?CommanDao?{
????private?Connection?con;
????private?String?sql;
????private?List?parameters;
????//設(shè)置連接
????public?void?setCon(Connection?con)?{
????????this.con?=?con;
????}
????//設(shè)置sql語(yǔ)句;
????public?void?setSql(String?sql)?{
????????this.sql?=?sql;
????}
????//設(shè)置sql語(yǔ)句參數(shù);
????public?void?setParameters(List?aparametersrameters)?{
????????this.parameters?=?aparametersrameters;
????}
????
????/**
?????*?執(zhí)行查詢;
?????*?@return
?????*/
????public?Result??executeQuery(){
????????Result?result?=?null;
????????ResultSet?rs?=?null;
????????PreparedStatement?pstmt?=?null;
????????
????????
????????try?{
????????????//如果sql語(yǔ)句有參數(shù);
????????????if(parameters?!=?null?&&?parameters.size()?>?0){
????????????????pstmt?=?con.prepareStatement(sql);
????????????????setParameters(pstmt,?parameters);
????????????????rs?=?pstmt.executeQuery();
????????????}
????????????//如果沒(méi)有參數(shù);
????????????else{
????????????????pstmt?=?con.prepareStatement(sql);
????????????????rs?=?pstmt.executeQuery();
????????????}
????????}?catch?(SQLException?e)?{
????????????//?TODO:?handle?exception
????????????e.printStackTrace();
????????}
????????//將ResultSet轉(zhuǎn)換成Result;
????????result?=?ResultSupport.toResult(rs);????????
????????return?result;
????}
????
????/**
?????*?執(zhí)行更新;
?????*?@return?返回受影響行數(shù);
?????*/
????public?int?executeUpdate(){
????????int?noOfRows?=?0;
????????ResultSet?rs?=?null;
????????PreparedStatement?pstmt?=?null;
????????try?{
????????????//如果參數(shù)不為空;
????????????if(parameters?!=?null?&&?parameters.size()?>?0){
????????????????pstmt?=?con.prepareStatement(sql);
????????????????setParameters(pstmt,?parameters);
????????????????noOfRows?=?pstmt.executeUpdate();
????????????}
????????????else{
????????????????pstmt?=?con.prepareStatement(sql);
????????????????noOfRows?=?pstmt.executeUpdate();
????????????}
????????}?catch?(SQLException?e)?{
????????????//?TODO?Auto-generated?catch?block
????????????e.printStackTrace();
????????}
????????return?noOfRows;
????}
????
????
????/**
?????*?方法,為sql語(yǔ)句設(shè)置參數(shù);
?????*?@param?pstmt?指令
?????*?@param?parameters?參數(shù)集合;
?????*?@throws?SQLException?
?????*/
????private?void?setParameters(PreparedStatement?pstmt,List?parameters)?throws?SQLException{
????????for?(int?i?=?0;?i?<?parameters.size();?i++)?{
????????????Object?v?=?parameters.get(i);
????????????pstmt.setObject(i+1,?v);
????????}
????}
????
}
?
轉(zhuǎn)載于:https://www.cnblogs.com/Fskjb/archive/2011/12/18/2292086.html
總結(jié)
- 上一篇: dm9000 driver 2
- 下一篇: 扩展adc2