读书人

jdbc工具种(2) (JDBC模板类)

发布时间: 2012-11-12 12:31:57 作者: rapoo

jdbc工具类(2) (JDBC模板类)

这是我个人采用策略模式设计JDBC模板类:(供大家参考)

package daoUtil.daoTemplate;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.util.ArrayList;import java.util.Collection;import jdbcUtil.JdbcUtil;import daoUtil.DAO;import daoUtil.PrimaryKeyer;import daoUtil.RowMapper;public class DAOTemplate implements DAO{/**jdbc工具类*/private JdbcUtil jdbcUtil=JdbcUtil.getInstance();public  int delete(String sql, Object[] args) throws SQLException {if(args==null||args.length==0){return 0;}Connection conn=null;PreparedStatement ps=null;ResultSet rs=null;try {conn=jdbcUtil.getConnection();ps=jdbcUtil.scrollReadOnlyResultSet(sql,conn);for(int i=0;i<args.length;i++){ps.setObject(i+1,args[i]);}return ps.executeUpdate();}finally{jdbcUtil.free(rs,ps,conn);}}public int update(String sql, Object[] args) throws SQLException {if(args==null||args.length==0){return 0;}Connection conn=null;PreparedStatement ps=null;ResultSet rs=null;try {conn=jdbcUtil.getConnection();ps=jdbcUtil.scrollReadOnlyResultSet(sql,conn);for(int i=0;i<args.length;i++){ps.setObject(i+1,args[i]);}return ps.executeUpdate();}finally{jdbcUtil.free(rs,ps,conn);}}public Object find(String sql, Object[] args,RowMapper rowMapper) throws SQLException {if(args==null||args.length==0){return 0;}Connection conn=null;PreparedStatement ps=null;ResultSet rs=null;try {conn=jdbcUtil.getConnection();ps=jdbcUtil.scrollReadOnlyResultSet(sql,conn);for(int i=0;i<args.length;i++){ps.setObject(i+1,args[i]);}rs=ps.executeQuery();Object obj=null;while(rs.next()){obj=rowMapper.rowMapping(rs);}return obj;}finally{jdbcUtil.free(rs,ps,conn);}}public int getRecordCount(String tableName) throws SQLException {if(tableName==null||tableName.equals("")){return 0;}int count=0;Connection conn=null;PreparedStatement ps=null;ResultSet rs=null;try {conn=jdbcUtil.getConnection();String sql="select count(*) from "+tableName;ps=jdbcUtil.scrollReadOnlyResultSet(sql,conn);if(rs.next()){count=rs.getInt(1);}}finally{jdbcUtil.free(rs,ps,conn);}return count;}public int insert(String sql, Object[] args, int primaryKeyIndex,PrimaryKeyer primaryKeyer) throws SQLException {if(args==null||args.length==0){return 0;}Connection conn=null;PreparedStatement ps=null;ResultSet rs=null;try {conn=jdbcUtil.getConnection();ps=jdbcUtil.scrollReadOnlyResultSet(sql,conn);if(primaryKeyIndex<=-1){for(int i=0;i<args.length;i++){ps.setObject(i+1,args[i]);}}else if(primaryKeyIndex>-1&&primaryKeyIndex<args.length){for(int i=0;i<args.length;i++){if(i==primaryKeyIndex){ps.setObject(i+1,primaryKeyer.getPrimaryKey());}else{ps.setObject(i+1,args[i]);}}}else{throw new IllegalArgumentException("设置主键位置不正确!");}return ps.executeUpdate();}finally{jdbcUtil.free(rs,ps,conn);}}public Collection ObjectList(String sql, Object[] args,RowMapper rowMapper) throws SQLException {if(args==null||args.length==0){return null;}Connection conn=null;PreparedStatement ps=null;ResultSet rs=null;Collection list=null;try {conn=jdbcUtil.getConnection();ps=jdbcUtil.scrollReadOnlyResultSet(sql,conn);for(int i=0;i<args.length;i++){ps.setObject(i+1,args[i]);}list=new ArrayList();rs=ps.executeQuery();while(rs.next()){Object obj=rowMapper.rowMapping(rs);list.add(obj);}}finally{jdbcUtil.free(rs,ps,conn);}return list;}}

?

读书人网 >其他数据库

热点推荐