JDBC实现通用的增删改查基础类方法

  

java中关于数据的管理有很多的框架,如hibernate, mybatis等,但我最开始学习的就是JDBC,我觉得JDBC还是很不错的,它让我更深层次的了解了数据的操作,今天我将我写过的JDBC基础类再写一遍!加深下记忆! ! !

  

<强>先将通用的增查实现扩展类BaseDAO贴上

        包com.shude.DAO;   进口java.lang.reflect.Field;   进口java.lang.reflect.Method;   进口java.lang.reflect.ParameterizedType;   进口java.lang.reflect.Type;   进口java.sql.Connection;   进口java.sql.DatabaseMetaData;   进口java.sql.PreparedStatement;   进口java.sql.ResultSet;   进口java.sql.SQLException;   进口java.util.ArrayList;   进口java.util.LinkedHashMap;   进口并不知道;   进口java.util.Map;   进口java.util.Map.Entry;   进口com.shude.DAO.im.IBaseDAO;   进口com.shude.util.ConfigUtil;   进口com.shude.util.JdbcUtil;   进口com.shude.util.PageUtil;/* *   *通用的增删改查实现类   * @author管理员   *   * @param & lt; E>   */公开课BaseDAO实现IBaseDAO{   保护静态ConfigUtil ConfigUtil;   保护Class<& # 63;比;cls;/* *   *获取包名、类名   */扩展公共BaseDAO () {   Class<& # 63;比;clsTemp=this.getClass ();   型类型=clsTemp.getGenericSuperclass ();   如果(类型instanceof ParameterizedType) {   类型[]类型=((ParameterizedType)类型).getActualTypeArguments ();   cls=(Class<& # 63;祝辞)类型[0];   }   }/* *   *获取对应类的数据库中的表名   */静态{   configUtil=ConfigUtil.newInstance ("/tabORM.properties ");   }/* *   *保存方法   */公共布尔saveInfo (E E) {   布尔标志=true;   尝试{   Class<& # 63;比;cls=e.getClass ();//获取表名   字符串表=configUtil.getVal (cls.getName ());//获取主键   字符串prykey=getPrimKey(表);//记录数据列   ListfiledList=new ArrayList ();//获取sql语句   字符串sql=getsavesql(表、prykey filedList);//执行sql   国旗=excuteSQL (sql, e, filedList);   }捕捉(异常e1) {   国旗=false;   e1.printStackTrace ();   }   返回国旗;   }/* *   *修改方法   */公共空间modifyInfo (E E) {   Class<& # 63;比;cls=e.getClass ();//获取表名   字符串表=configUtil.getVal (cls.getName ());//获取主键   字符串prykey=getPrimKey(表);//记录数据列   ListfiledList=new ArrayList ();//获取sql语句   字符串sql=getmodifysql(表、prykey filedList);//添加主键到集合   filedList.add (prykey);//执行sql   excuteSQL (sql, e, filedList);   }/* *   *删除方法   */公共空间deleteInfo(对象id) {//获取表名   字符串表=configUtil.getVal (cls.getName ());//获取主键   字符串prykey=getPrimKey(表);//获取sql语句   字符串sql="更新" +表名+”设置状态=' 1 ',“+ prykey +“=& # 63;”;   连接康涅狄格州=零;   PreparedStatement pstm=零;   尝试{   康涅狄格州=JdbcUtil.getConn ();   pstm=conn.prepareStatement (sql);   pstm。setObject (id);   pstm.execute ();   }捕捉(异常e) {   e.printStackTrace ();   最后}{   JdbcUtil.closeConn(康涅狄格州);   }   }/* *   *查询全部方法   */公共空间queryinfo (PageUtilpageUtil) {   E E=pageUtil.getEntity ();//获取表名   字符串表=configUtil.getVal (cls.getName ());//获取查询条件   Object> Map<字符串;paramMap=getParamMap (e);//获取sql   字符串sql=getquerySQL (paramMap、表);   sql +=毕拗? # 63;& # 63;”;   paramMap。把(页大小(pageUtil.getPageSize () - 1) * pageUtil.getPageNum ());   paramMap。put (" pageNum ", pageUtil.getPageNum ());//执行SQL   excutQuery (pageUtil、sql、paramMap表名);      }/* *   *单个查询方法   */公共E queryById(对象id) {//获取表名   字符串表=configUtil.getVal (cls.getName ());//获取主键   字符串prykey=getPrimKey(表);//获取sql   字符串sql=" select * from " +表名+“1=1和“+ prykey +“=& # 63;”;//执行SQL   连接康涅狄格州=零;   PreparedStatement pstm=零;   ResultSet rs=零;   E E=零;   尝试{   康涅狄格州=JdbcUtil.getConn ();   pstm=conn.prepareStatement (sql);   pstm。setObject (id);   rs=pstm.executeQuery ();   List列表=getEntityList (rs);   e=list.get (0);   }捕捉(例外的前女友){   ex.printStackTrace ();   最后}{   JdbcUtil.closeConn(康涅狄格州);   }   返回e;   }/* *   *获取总条数   * @param paramMap   * @param表   * @return   */私人整数getPagenumsss (Map

JDBC实现通用的增删改查基础类方法