码迷,mamicode.com
首页 > 数据库 > 详细

动态SQL拼接,select,insert的写法

时间:2019-08-09 19:24:09      阅读:160      评论:0      收藏:0      [点我收藏+]

标签:class   statement   exe   shm   value   remove   insert   ring   string   

 1 import java.util.Iterator;
 2 import java.util.Map;
 3 import java.util.Set;
 4 
 5 public class SQLUtil {
 6     public static String sqlSelect = "";
 7 
 8     public static String selectQuerySQL(Map<String, Object> map, String tableName) {
 9         if (map.isEmpty() || map.size() == 0) {
10             sqlSelect = "select*from" + tableName;
11         } else {
12             sqlSelect = "select*from" + tableName + "where";
13             Set set = map.keySet();
14             Iterator iterator = set.iterator();
15             int index = 0;
16             while (iterator.hasNext()) {
17                 String key = (String) iterator.next();
18                 Object value = map.get(key);
19                 if (value instanceof String) {
20                     value = "‘" + value + "‘";
21                 }
22                 index++;
23                 if ((index == 1 && map.size() == 1) || map.size() == index) {
24                     sqlSelect += key + "=" + value + " ";
25                 } else {
26                     sqlSelect += key + "=" + value + " " + "and" + " ";
27                 }
28             }
29         }
30         System.out.println("待执行的select SQL:"+sqlSelect);
31         return sqlSelect;
32     }
33     public static String insertSQL(Map<String,Object>map){
34         Iterator<String> iterator = map.keySet().iterator();
35         StringBuilder sqlTable=new StringBuilder("insert into");
36         StringBuilder sqlKey=new StringBuilder("(");
37         StringBuilder sqlVaule= new StringBuilder("value(");
38         while (iterator.hasNext()){
39             String key=iterator.next();
40             if(map.get(key).toString()==null||map.get(key).toString().length()==0){
41                 iterator.remove();
42             }else {
43                 if (key.equals("tableName")){
44                     sqlTable.append(map.get(key));
45                 }else {
46                     sqlKey.append(key+",");
47                     sqlVaule.append(map.get(key)+",");
48                 }
49             }
50         }
51         sqlTable.append(sqlKey.toString().substring(0,sqlKey.toString().lastIndexOf(","))+")").append(sqlVaule.toString().substring(0,sqlVaule.lastIndexOf(","))+")");
52         String sql=sqlTable.toString();
53         System.out.println("待执行的insert SQL:"+sql);
54         return sql;
55     }
56     /*此为以上方法的用法,可以忽略*/
57     /*public static void main(String[] args) {
58         //调用select的方法
59         Map<String,Object> map=new HashMap<>();
60         map.put("字段名","具体的值");
61         String tableName="表名";
62         System.out.println(selectQuerySQL(map,tableName).toString());
63         //调用insert的方法
64         Map<String,Object> map=new HashMap<>();
65         map.put("字段名","具体的值");
66         map.put("tableName","这里最后添加表名");
67         String sql = insertSQL(map);
68         PreparedStatement statment = connection.prepareStatement(sql);
69         statment.execute(sql);//这里是执行SQL语句,需要借助JDBCUtil中的Connection得到connection
70     }*/
71 }

 

动态SQL拼接,select,insert的写法

标签:class   statement   exe   shm   value   remove   insert   ring   string   

原文地址:https://www.cnblogs.com/wangquanyi/p/11329035.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!