沧海.sea 发表于 2014-9-12 15:49:26

自己封装的JavaBean转化为sql

import java.lang.reflect.Field;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Map;


public class DatabaseUtil {
        /**
       *
       * @param modelName 需要持久化的类名(类名需要和数据库表名一致)
       * @param conn
       * @param map 存储model里面的属性
       * @return PreparedStatement
       * @throws SQLException
       * @throws SecurityException
       * @throws ClassNotFoundException
       */
        public PreparedStatement CreateInsertSQL(String modelName,Connection conn ,Map<String, String[]> map) throws SQLException, SecurityException, ClassNotFoundException{
               
                String sql = "insert into " + modelName.substring(modelName.lastIndexOf(".")+1)+"(";
                Field[] field = Class.forName(modelName).getDeclaredFields();
               
                for(int i=0; i<field.length; i++){
                        sql += field.getName()+",";
                }
                sql = sql.substring(0, sql.length()-1) + ") " + "values(";
               
                for(int i=0; i<field.length; i++){
                        sql += "?,";
                }
                sql = sql.substring(0, sql.length()-1) + ")";
                System.out.println(sql);
                PreparedStatement prepareStatement = conn.prepareStatement(sql);
                for(int i=0; i<field.length; i++){
                        prepareStatement.setObject(i+1, filterParm(map.get(field.getName())));
                }
                return prepareStatement;
        }
        //过滤返回的NULL数组
        public static String filterParm(String[] parm ){
                if(parm != null)
                        return parm;
                return null;
        }
}
页: [1]
查看完整版本: 自己封装的JavaBean转化为sql