自己封装的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]