首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > 其他数据库 >

打包jdbc

2012-12-25 
封装jdbcpackage com.lxit.sys.work.dbUtilimport java.lang.reflect.InvocationTargetExceptionimport

封装jdbc

package com.lxit.sys.work.dbUtil;import java.lang.reflect.InvocationTargetException;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.ResultSetMetaData;import java.sql.SQLException;import java.sql.Statement;import java.util.ArrayList;import java.util.List;import org.apache.commons.beanutils.BeanUtils;import org.apache.log4j.Logger;import com.lxit.sys.work.servlet.ActionServlet;import com.lxit.sys.work.transaction.Transaction;/** * 处理dao层类 * */public class DAOHelper {private final Logger logger = Logger.getLogger(ActionServlet.class);


单个查询,返回单个对象
public Object get(String sql,Class<?> cls,Object ...objects) {List<Object> list = listObj(sql, cls, objects);System.out.println("size"+list.size());if(list.size()>0){System.out.println("123");return list.get(0);}return null;}


查询全部
public List<Object> listObj(String sql,Class<?> cls,Object ...objects) {logger.debug("dao帮助层开始执行......."+cls);List<Object> list = new ArrayList<Object>();Connection conn = DBUtil.getDBUtil().getConnection();PreparedStatement ps = null;ResultSet rs = null;try {System.out.println("sql语句==="+sql);ps=conn.prepareStatement(sql);rs=ps.executeQuery();ResultSetMetaData rm = rs.getMetaData();int column = rm.getColumnCount();String[] coluName = new String[column];for(int i=1;i<=column;i++){coluName[i-1]=rm.getColumnName(i);}logger.debug("dao层开始执行中  ");while(rs.next()){Object obj = cls.newInstance();for(int i=0;i<coluName.length;i++){BeanUtils.setProperty(obj, coluName[i], rs.getObject(coluName[i]));}list.add(obj);}} catch (SQLException e) {e.printStackTrace();} catch (IllegalAccessException e) {e.printStackTrace();} catch (InvocationTargetException e) {e.printStackTrace();} catch (InstantiationException e) {e.printStackTrace();}finally{DBUtil.getDBUtil().close(ps, rs);}logger.debug("dao层开始执行完成....list=="+list.toString());return list;}[color=blue]增、删、修[/color]
public int update(String sql) {Connection conn = Transaction.getConnection();Statement ps = null;int  row = -1;try {ps=conn.createStatement();row=ps.executeUpdate(sql);} catch (SQLException e) {e.printStackTrace();}return row;}}

上面例子:简单对jdbc封装下,只需要传入一条sql语句,适用于所有的增删查改。
注:数据库的字段要于属性类的一致;

热点排行