欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

将实例插入数据库表(利用反射,通用),实例数据库,昨天,要向一个表(Rig

来源: javaer 分享于  点击 31113 次 点评:229

将实例插入数据库表(利用反射,通用),实例数据库,昨天,要向一个表(Rig


昨天,要向一个表(RightOrder 权益单)插数据,里面有92个字段,因为框架没有dao工具,写了实体View后,再都不想在insert的时候重新写一次了,简直是痛不欲生,于是诞生了如下代码,简单,有些可取之处 (好吧,我承认主要目的是偷懒 ^^ )

不说废话了,直上代码:

/** * 插入表数据 * @param tableName 表名 * @param obj 实例 * @param sqlUtility  */public void insert(String tableName, Object obj, SQLUtility sqlUtility) throws    GeneralException {  Field fields[] = obj.getClass().getDeclaredFields();  StringBuffer insertSql = new StringBuffer();  insertSql.append(" INSERT INTO "+tableName+"(");  StringBuffer valueSql = new StringBuffer();  valueSql.append(" VALUES (");  try {    for (int i = 0; i < fields.length; i++) {      fields[i].setAccessible(true);      insertSql.append(fields[i].getName());      if (fields[i].getType().getName().endsWith("Double") ||          fields[i].getType().getName().endsWith("Integer") ||          fields[i].getType().getName().endsWith("int")) {        valueSql.append(fields[i].get(obj));      }      else {        valueSql.append("'" + fields[i].get(obj) + "'");      }      if (i != fields.length - 1) {        insertSql.append(",");        valueSql.append(",");      }      else {        insertSql.append(")");        valueSql.append(")");      }    }    sqlUtility.executeUpdate(insertSql.toString() + valueSql.toString());    sqlUtility.checkSqlCode();  }  catch (IllegalAccessException ex1) {    ex1.printStackTrace();  }  catch (IllegalArgumentException ex1) {    ex1.printStackTrace();  }}//该片段来自于http://byrx.net
相关栏目:

用户点评