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

java使用反射将实体类插入数据库表,,昨天,要向一个表(Rig

来源: javaer 分享于  点击 30403 次 点评:288

java使用反射将实体类插入数据库表,,昨天,要向一个表(Rig


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

[Java]代码

  /**   * 插入表数据   * @param tableName 表名   * @param obj 实例   * @param sqlUtility   * @author 钟小华 2012-05-13   */  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();    }  }
相关栏目:

用户点评