import java.util.regex.Matcher;import java.util.regex.Pattern;/** * @author QuarterLifeForJava */public class Test{ public static void main(String[] args) { System.out.println(testPrintSQL("H002",12,1009)); String sql = "SELECT rat.id,rat.sName,rat.dApplyDate,rat.tiRestType,rat.dStartDate,rat.dEndDate,rat.fInterval "+ "FROM restapplytbl rat "+ "WHERE rat.id IN"+ "("+ " SELECT rt.iRestApplyId "+ " FROM restprocesstbl rt "+ " WHERE rt.id IN"+ " ("+ " SELECT pmt.smissionid "+ " FROM pendingmissiontbl pmt "+ " WHERE pmt.imissionkindid=?"+ " AND pmt.imissionkinddetailsid=?"+ " AND pmt.smissionexecutor=?"+ " )"+ ")"; String worknum = "H002"; int missionKindId = 12; int missionKindDetailsId = 1009; //顺序要对好 Object obj[] = new Object[]{missionKindId,missionKindDetailsId,worknum}; System.out.println(createSql(sql,obj)); } //简单自动拼接SQL语句 public static String createSql(String sql, Object pargams[]) { for (int i = 0; i < pargams.length; i++) { Pattern p = Pattern.compile("\\?"); Matcher m = p.matcher(sql); if (pargams[i] instanceof Integer) { sql = m.replaceFirst(String.valueOf((int) pargams[i])); } else if (pargams[i] instanceof Long) { sql = m.replaceFirst(String.valueOf((Long) pargams[i])); } else if (pargams[i] instanceof Float) { sql = m.replaceFirst(String.valueOf((Float) pargams[i])); } else if (pargams[i] instanceof Double) { sql = m.replaceFirst(String.valueOf((Double) pargams[i])); } else { sql = m.replaceFirst("'" + (String) pargams[i] + "'"); } } return sql; } //简单示例 public static String testPrintSQL(String worknum, int missionKindId,int missionKindDetailsId){ String sql = "SELECT rat.id,rat.sName,rat.dApplyDate,rat.tiRestType,rat.dStartDate,rat.dEndDate,rat.fInterval "+ "FROM restapplytbl rat "+ "WHERE rat.id IN"+ "("+ " SELECT rt.iRestApplyId "+ " FROM restprocesstbl rt "+ " WHERE rt.id IN"+ " ("+ " SELECT pmt.smissionid "+ " FROM pendingmissiontbl pmt "+ " WHERE pmt.imissionkindid="+missionKindId+ " AND pmt.imissionkinddetailsid="+missionKindDetailsId+ " AND pmt.smissionexecutor="+"'"+worknum+"'"+ " )"+ ")"; return sql; }}
详细解决方案
简略自动拼接SQL语句
热度:92 发布时间:2016-05-05 11:44:32.0
相关解决方案