WEB开发网
开发学院软件开发Java 将实例插入数据库表(利用反射,通用) 阅读

将实例插入数据库表(利用反射,通用)

 2012-05-14 10:27:05 来源:WEB开发网   
核心提示: 要向一个表(RightOrder 权益单)插数据,里面有92个字段,将实例插入数据库表(利用反射,通用),因为框架没有dao工具,写了实体View后

 要向一个表(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();
  }

}

Tags:实例 插入 数据库

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接