Spring NamedParameterJdbcTemplate命名参数查询条件封装, NamedParameterJdbcTemplate查询封装...

Spring NamedParameterJdbcTemplate命名参数查询条件封装,

NamedParameterJdbcTemplate查询封装

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

©Copyright 蕃薯耀 2017年7月25日

http://www.cnblogs.com/fanshuyao/

 

由于在项目中想用Spring的NamedParameterJdbcTemplate,但又想写的sql查询简单一点,少一些,所以封装了Sql命名查询。使用此工具,主要是让where条件的查询及排序和分页简单点,现在使用的是mysql。

一、SqlBuffer查询对象封装(现在只能select语句的封装)

Java代码   收藏代码
  1. import java.util.HashMap;  
  2. import java.util.Map;  
  3.   
  4. public class SqlBuffer {  
  5.       
  6.     /** 
  7.      * 空格 
  8.      */  
  9.     private final String SPACE = " ";  
  10.     /** 
  11.      * 冒号 
  12.      */  
  13.     private final String COLON = ":";  
  14.     /** 
  15.      * 逗号, 
  16.      */  
  17.     private final String COMMA = ",";  
  18.     /** 
  19.      * where关键字 
  20.      */  
  21.     private final String WHERE_SQL = "WHERE";  
  22.     /** 
  23.      * order by 关键字 
  24.      */  
  25.     private final String ORDER_BY_SQL = "ORDER BY";  
  26.     /** 
  27.      * limit关键字 
  28.      */  
  29.     private final String LIMIT_SQL = "LIMIT";  
  30.     /** 
  31.      * where 1=1条件 
  32.      */  
  33.     private final String WHERE_INIT = WHERE_SQL + "  1=1 ";  
  34.     private final String LEFT_BRACKET = "(";  
  35.     private final String RIGHT_BRACKET = ")";  
  36.     /** 
  37.      * 百分号% 
  38.      */  
  39.     private final String PERCENT_SIGN = "%";  
  40.     /** 
  41.      * 单引号 ' 
  42.      */  
  43.     private final String SINGLE_QUOTE = "'";  
  44.   
  45.     private StringBuffer baseSql  = new StringBuffer("");  
  46.     private StringBuffer whereSql  = new StringBuffer("");  
  47.     private StringBuffer orderBySql  = new StringBuffer("");  
  48.     private StringBuffer limitSql  = new StringBuffer("");  
  49.       
  50.     public Map<String, Object> paramsMap  = new HashMap<String, Object>();  
  51.       
  52.     private int whereIndex = -1;  
  53.     private int orderByIndex = -1;  
  54.     private int limitIndex = -1;  
  55.       
  56.     private int offSize;  
  57.     private int pageSize;  
  58.       
  59.       
  60.     private boolean isNewStart = false;  
  61.     private boolean isEndStart = false;  
  62.       
  63.     public SqlBuffer(){}  
  64.       
  65.     public SqlBuffer(String sql){  
  66.         init(sql);  
  67.     }  
  68.       
  69.     private int getWhereIndex(String sql){  
  70.         if(sql != null){  
  71.             return sql.indexOf(WHERE_SQL);  
  72.         }  
  73.         return -1;  
  74.     }  
  75.       
  76.     private int getOrderByIndex(String sql){  
  77.         if(sql != null){  
  78.             return sql.indexOf(ORDER_BY_SQL);  
  79.         }  
  80.         return -1;  
  81.     }  
  82.       
  83.     private int getLimitIndex(String sql){  
  84.         if(sql != null){  
  85.             return sql.indexOf(LIMIT_SQL);  
  86.         }  
  87.         return -1;  
  88.     }  
  89.       
  90.     /** 
  91.      * 判断有没有where查询语句,有则返回true 
  92.      * @return 
  93.      */  
  94.     private boolean hadWhereSql(){  
  95.         if(this.whereIndex > -1){  
  96.             return true;  
  97.         }  
  98.         return false;  
  99.     }  
  100.       
  101.     /** 
  102.      * 判断有没有order by查询语句,有则返回true 
  103.      * @return 
  104.      */  
  105.     private boolean hadOrderBySql(){  
  106.         if(this.orderByIndex > -1){  
  107.             return true;  
  108.         }  
  109.         return false;  
  110.     }  
  111.       
  112.     /** 
  113.      * 判断有没有limit查询语句,有则返回true 
  114.      * @return 
  115.      */  
  116.     private boolean hadLimitSql(){  
  117.         if(this.limitIndex > -1){  
  118.             return true;  
  119.         }  
  120.         return false;  
  121.     }  
  122.       
  123.     /** 
  124.      * 初始化操作 
  125.      * @param sql 
  126.      */  
  127.     private void init(String sql){  
  128.         if(sql != null){  
  129.             String sqlUpper = sql.trim().toUpperCase();  
  130.             this.whereIndex = getWhereIndex(sqlUpper);  
  131.             this.orderByIndex = getOrderByIndex(sqlUpper);  
  132.             this.limitIndex = getLimitIndex(sqlUpper);  
  133.             if(!hadWhereSql() && !hadOrderBySql() && !hadLimitSql()){  
  134.                 baseSql.append(sql);  
  135.             }else{  
  136.                 if(hadWhereSql()){  
  137.                     baseSql.append(sql.substring(0, whereIndex));  
  138.                 }else if(!hadWhereSql() && hadOrderBySql()){  
  139.                     if(hadOrderBySql()){  
  140.                         baseSql.append(sql.substring(0, orderByIndex));  
  141.                     }  
  142.                 }else if(!hadWhereSql() && !hadOrderBySql() && hadLimitSql()){  
  143.                     baseSql.append(sql.substring(0, limitIndex));  
  144.                 }  
  145.             }  
  146.             int whereStartIndex = whereIndex + WHERE_SQL.length();//where条件不需要加where  
  147.             if(hadWhereSql() && hadOrderBySql() && hadLimitSql()){  
  148.                 whereSql.append(sql.substring(whereStartIndex, orderByIndex));  
  149.                 orderBySql.append(sql.substring(orderByIndex, limitIndex));  
  150.                 limitSql.append(sql.substring(limitIndex));  
  151.             }else if(hadWhereSql() && hadOrderBySql() && !hadLimitSql()){  
  152.                 whereSql.append(sql.substring(whereStartIndex, orderByIndex));  
  153.                 orderBySql.append(sql.substring(orderByIndex));  
  154.             }else if(hadWhereSql() && !hadOrderBySql() && hadLimitSql()){  
  155.                 whereSql.append(sql.substring(whereStartIndex, limitIndex));  
  156.                 limitSql.append(sql.substring(limitIndex));  
  157.             }else if(hadWhereSql() && !hadOrderBySql() && !hadLimitSql()){  
  158.                 whereSql.append(sql.substring(whereStartIndex));  
  159.             }else if(!hadWhereSql() && hadOrderBySql() && hadLimitSql()){  
  160.                 orderBySql.append(sql.substring(orderByIndex, limitIndex));  
  161.                 limitSql.append(sql.substring(limitIndex));  
  162.             }else if(!hadWhereSql() && hadOrderBySql() && !hadLimitSql()){  
  163.                 orderBySql.append(sql.substring(orderByIndex));  
  164.             }else if(!hadWhereSql() && !hadOrderBySql() && hadLimitSql()){  
  165.                 limitSql.append(sql.substring(limitIndex));  
  166.             }  
  167.         }  
  168.     }  
  169.       
  170.     /** 
  171.      * and条件连接 
  172.      * @param columnName 表的字段名称 
  173.      * @param columnValue 查询字段名称对应的值 
  174.      * <li>如果whereType为Null或者NotNull,该值可以为空</li> 
  175.      * <li>如果whereType为IN,该值为List类型,如:Arrays.asList("aa", "bb")</li> 
  176.      * @param whereType WhereType枚举,如like,>= 
  177.      * @return SqlBuffer 
  178.      */  
  179.     public SqlBuffer and(String columnName, Object columnValue, WhereType whereType){  
  180.         return add(ConnectType.AND, columnName, columnValue, null, whereType);  
  181.     }  
  182.       
  183.     /** 
  184.      * or条件连接,使用columnName作为命名参数 
  185.      * @param columnName 表的字段名称 
  186.      * @param columnValue 查询字段名称对应的值 
  187.      * <li>如果whereType为Null或者NotNull,该值可以为空</li> 
  188.      * <li>如果whereType为IN,该值为List类型,如:Arrays.asList("aa", "bb")</li> 
  189.      * @param whereType WhereType枚举,如like,>= 
  190.      * @return SqlBuffer 
  191.      */  
  192.     public SqlBuffer or(String columnName, Object columnValue, WhereType whereType){  
  193.         return add(ConnectType.OR, columnName, columnValue, null, whereType);  
  194.     }  
  195.       
  196.     /** 
  197.      * 加上表字段不为空的判断 
  198.      * <li>如columnName is not null</li> 
  199.      * @param connectType ConnectType枚举 
  200.      * @param columnName 表的字段名称 
  201.      * @return SqlBuffer 
  202.      */  
  203.     public SqlBuffer isNotNull(ConnectType connectType, String columnName){  
  204.         return add(connectType, columnName, null, null, WhereType.NOT_NULL);  
  205.     }  
  206.       
  207.     /** 
  208.      * 加上表字段不为空的判断,使用And连接 
  209.      * <li>如columnName is not null</li> 
  210.      * @param columnName 表的字段名称 
  211.      * @return SqlBuffer 
  212.      */  
  213.     public SqlBuffer isNotNull(String columnName){  
  214.         return add(ConnectType.AND, columnName, null, null, WhereType.NOT_NULL);  
  215.     }  
  216.       
  217.     /** 
  218.      * 加上表字段为空的判断 
  219.      * <li>如columnName is null</li> 
  220.      * @param connectType ConnectType枚举 
  221.      * @param columnName 表的字段名称 
  222.      * @return SqlBuffer 
  223.      */  
  224.     public SqlBuffer isNull(ConnectType connectType, String columnName){  
  225.         return add(connectType, columnName, null, null, WhereType.NULL);  
  226.     }  
  227.       
  228.     /** 
  229.      * 加上表字段为空的判断,使用And连接 
  230.      * <li>如columnName is not null</li> 
  231.      * @param columnName 表的字段名称 
  232.      * @return SqlBuffer 
  233.      */  
  234.     public SqlBuffer isNull(String columnName){  
  235.         return add(ConnectType.AND, columnName, null, null, WhereType.NULL);  
  236.     }  
  237.       
  238.     /** 
  239.      * and条件连接,使用columnName作为命名参数 
  240.      * @param columnName 表的字段名称 
  241.      * @param columnValue 查询字段名称对应的值 
  242.      * <li>如果whereType为Null或者NotNull,该值可以为空</li> 
  243.      * <li>如果whereType为IN,该值为List类型</li> 
  244.      * <li>如果whereType为IN,该值为List类型,如:Arrays.asList("aa", "bb")</li> 
  245.      * @param placeholder 命名参数 
  246.      * <li>如果为Null,则使用表的字段名称作为命名参数</li> 
  247.      * @param whereType WhereType枚举,如like,>= 
  248.      * @return SqlBuffer 
  249.      */  
  250.     public SqlBuffer and(String columnName, Object columnValue, String placeholder, WhereType whereType){  
  251.         if(StrUtils.isBlank(columnName)){  
  252.             return this;  
  253.         }  
  254.         return add(ConnectType.AND, columnName, columnValue, placeholder, whereType);  
  255.     }  
  256.       
  257.     /** 
  258.      * or条件连接 
  259.      * @param columnName 表的字段名称 
  260.      * @param columnValue 查询字段名称对应的值 
  261.      * <li>如果whereType为Null或者NotNull,该值可以为空</li> 
  262.      * <li>如果whereType为IN,该值为List类型,如:Arrays.asList("aa", "bb")</li> 
  263.      * @param placeholder 命名参数 
  264.      * <li>如果为Null,则使用表的字段名称作为命名参数</li> 
  265.      * @param whereType WhereType枚举,如like,>= 
  266.      * @return SqlBuffer 
  267.      */  
  268.     public SqlBuffer or(String columnName, Object columnValue, String placeholder, WhereType whereType){  
  269.         if(StrUtils.isBlank(columnName)){  
  270.             return this;  
  271.         }  
  272.         return add(ConnectType.OR, columnName, columnValue, placeholder, whereType);  
  273.     }  
  274.       
  275.     /** 
  276.      * 命名参数查询,使用columnName作为命名参数 
  277.      * @param connectType ConnectType枚举 
  278.      * @param columnName 表的字段名称 
  279.      * @param columnValue 查询字段名称对应的值 
  280.      * <li>如果whereType为Null或者NotNull,该值可以为空</li> 
  281.      * <li>如果whereType为IN,该值为List类型,如:Arrays.asList("aa", "bb")</li> 
  282.      * @param whereType WhereType枚举,如like,>= 
  283.      * @return SqlBuffer 
  284.      */  
  285.     public SqlBuffer add(ConnectType connectType, String columnName, Object columnValue, WhereType whereType){  
  286.         return add(connectType, columnName, columnValue, null, whereType);  
  287.     }  
  288.       
  289.     /** 
  290.      * 命名参数查询 
  291.      * @param connectType ConnectType枚举 
  292.      * @param columnName 表的字段名称 
  293.      * @param columnValue 查询字段名称对应的值 
  294.      * <li>如果whereType为Null或者NotNull,该值可以为空</li> 
  295.      * <li>如果whereType为IN,该值为List类型,如:Arrays.asList("aa", "bb")</li> 
  296.      * @param placeholder 命名参数 
  297.      * <li>如果为Null,则使用表的字段名称作为命名参数</li> 
  298.      * @param whereType WhereType枚举,如like,>= 
  299.      * @return SqlBuffer 
  300.      */  
  301.     public SqlBuffer add(ConnectType connectType, String columnName, Object columnValue, String placeholder, WhereType whereType){  
  302.         if(StrUtils.isBlank(columnName)){  
  303.             return this;  
  304.         }  
  305.         this.whereSql.append(SPACE).append(connectType.getValue());  
  306.         if(this.isNewStart){  
  307.             this.whereSql.append(SPACE).append(LEFT_BRACKET);  
  308.             this.isNewStart = false;  
  309.         }  
  310.         this.whereSql.append(SPACE).append(columnName);  
  311.           
  312.         //组装参数  
  313.         if(StrUtils.isBlank(placeholder)){//命名参数为空,则使用字段名  
  314.             placeholder = columnName;  
  315.         }  
  316.           
  317.         if(WhereType.LIKE == whereType){  
  318.             //LIKE '%' :username '%' ,:username 两边一定要有空格,如果没有空格,是查询不到数据的  
  319.             this.whereSql.append(SPACE).append(whereType.getValue())  
  320.             .append(SPACE).append(SINGLE_QUOTE).append(PERCENT_SIGN).append(SINGLE_QUOTE).append(SPACE)  
  321.             .append(COLON).append(placeholder)  
  322.             .append(SPACE).append(SINGLE_QUOTE).append(PERCENT_SIGN).append(SINGLE_QUOTE).append(SPACE);  
  323.             this.getParamsMap().put(placeholder, columnValue);  
  324.               
  325.             // 这种方法是在值里放%,如 "%" + username + "%"  
  326.             /*this.whereSql.append(SPACE).append(whereType.getValue()) 
  327.             .append(SPACE) 
  328.             .append(COLON).append(placeholder);*/  
  329.         }else if(WhereType.LIKE_LEFT == whereType){  
  330.             this.whereSql.append(SPACE).append(whereType.getValue())  
  331.             .append(SPACE).append(SINGLE_QUOTE).append(PERCENT_SIGN).append(SINGLE_QUOTE).append(SPACE)  
  332.             .append(COLON).append(placeholder).append(SPACE);  
  333.             this.getParamsMap().put(placeholder, columnValue);  
  334.         }else if(WhereType.LIKE_RIGHT == whereType){  
  335.             this.whereSql.append(SPACE).append(whereType.getValue())  
  336.             .append(SPACE).append(COLON).append(placeholder)  
  337.             .append(SPACE).append(SINGLE_QUOTE).append(PERCENT_SIGN).append(SINGLE_QUOTE).append(SPACE);  
  338.             this.getParamsMap().put(placeholder, columnValue);  
  339.         }else if(WhereType.NULL == whereType || WhereType.NOT_NULL == whereType){  
  340.             this.whereSql.append(SPACE).append(whereType.getValue());  
  341.             // 因为is null或is not null不需要参数值,所以参数Map不增加值  
  342.         }else if(WhereType.IN == whereType){  
  343.             // in (:userids)  
  344.             this.whereSql.append(SPACE).append(whereType.getValue())  
  345.             .append(SPACE).append(LEFT_BRACKET)  
  346.             .append(COLON).append(placeholder)  
  347.             .append(RIGHT_BRACKET);  
  348.             this.getParamsMap().put(placeholder, columnValue);  
  349.         }else{  
  350.             this.whereSql.append(SPACE).append(whereType.getValue())  
  351.             .append(SPACE).append(COLON).append(placeholder);  
  352.             this.getParamsMap().put(placeholder, columnValue);  
  353.         }  
  354.         return this;  
  355.     }  
  356.       
  357.     /** 
  358.      * 把之前的查询条件用括号包括 
  359.      * @return 
  360.      */  
  361.     public SqlBuffer endBefore(){  
  362.         if(hadWhereSql()){  
  363.             this.whereSql.insert(0, SPACE + LEFT_BRACKET).append(RIGHT_BRACKET);  
  364.         }else{  
  365.             String beginFlag = this.whereSql.substring(0, 4);  
  366.             if(beginFlag.toUpperCase().indexOf(ConnectType.AND.getValue()) > -1){  
  367.                 this.whereSql.insert(4, SPACE + LEFT_BRACKET).append(RIGHT_BRACKET);  
  368.             }else{  
  369.                 this.whereSql.insert(3, SPACE + LEFT_BRACKET).append(RIGHT_BRACKET);  
  370.             }  
  371.         }  
  372.         return this;  
  373.     }  
  374.       
  375.     /** 
  376.      * 为后面的查询条件加上左括号,结束后使用newEnd()加上右括号 
  377.      * @return 
  378.      */  
  379.     public SqlBuffer newStart(){  
  380.         this.isNewStart = true;  
  381.         this.isEndStart = true;  
  382.         return this;  
  383.     }  
  384.       
  385.     /** 
  386.      * 为后面的查询条件加上右括号,先使用newStart() 
  387.      * @return 
  388.      */  
  389.     public SqlBuffer newEnd(){  
  390.         if(this.isEndStart){  
  391.             this.whereSql.append(SPACE).append(RIGHT_BRACKET);  
  392.         }  
  393.         this.isEndStart = false;  
  394.         return this;  
  395.     }  
  396.       
  397.     /** 
  398.      * 排序 
  399.      * @param columnName 表的列名称 
  400.      * @param orderByType OrderByType枚举 
  401.      * @return 
  402.      */  
  403.     public SqlBuffer orderBy(String columnName, OrderByType orderByType){  
  404.         if(hadOrderBySql()){  
  405.             this.orderBySql.append(SPACE).append(COMMA).append(columnName).append(SPACE).append(orderByType.getValue());  
  406.         }else{  
  407.             this.orderBySql.append(ORDER_BY_SQL).append(SPACE).append(columnName).append(SPACE).append(orderByType.getValue());  
  408.             this.orderByIndex = 1;  
  409.         }  
  410.         return this;  
  411.     }  
  412.       
  413.     /** 
  414.      * 升序排序 
  415.      * @param columnName 表的列名称 
  416.      * @return 
  417.      */  
  418.     public SqlBuffer orderBy(String columnName){  
  419.         return orderBy(columnName, OrderByType.ASC);  
  420.     }  
  421.       
  422.     /** 
  423.      * 分页查询条件 
  424.      * @param offSize 
  425.      * @param pageSize 
  426.      * @return 
  427.      */  
  428.     public SqlBuffer limit(int offSize, int pageSize){  
  429.         if(offSize < 0){  
  430.             offSize = 0;  
  431.         }  
  432.         if(pageSize < 0){  
  433.             pageSize = 10;  
  434.         }  
  435.         this.offSize = offSize;  
  436.         this.pageSize = pageSize;  
  437.           
  438.         if(hadLimitSql()){  
  439.             this.limitSql.delete(0, limitSql.length())  
  440.                 .append(LIMIT_SQL).append(SPACE)  
  441.                 .append(offSize).append(COMMA).append(pageSize);  
  442.         }else{  
  443.             this.limitSql.append(LIMIT_SQL).append(SPACE)  
  444.             .append(offSize).append(COMMA).append(pageSize);  
  445.             this.limitIndex = 1;  
  446.         }  
  447.         return this;  
  448.     }  
  449.       
  450.     /** 
  451.      * 分页查询条件 
  452.      * @param pageSize 
  453.      * @return 
  454.      */  
  455.     public SqlBuffer limit(int pageSize){  
  456.         return limit(0, pageSize);  
  457.     }  
  458.       
  459.     /** 
  460.      * 获取SqlBuffer拼接的sql语句 
  461.      * @return 
  462.      */  
  463.     public String getSql(){  
  464.         StringBuffer result = new StringBuffer("");  
  465.         result.append(baseSql).append(SPACE);  
  466.         if(!hadWhereSql()){  
  467.             if(this.whereSql.length() > 0){  
  468.                 result.append(WHERE_INIT + SPACE);  
  469.             }  
  470.         }else{  
  471.             result.append(WHERE_SQL + SPACE);  
  472.         }  
  473.         result.append(whereSql).append(SPACE)  
  474.             .append(orderBySql).append(SPACE)  
  475.             .append(limitSql).append(SPACE);  
  476.         return result.toString();  
  477.     }  
  478.       
  479.     /** 
  480.      * 获取SqlBuffer拼接的countSql语句 
  481.      * @return 
  482.      */  
  483.     public String getCountSql(){  
  484.         StringBuffer result = new StringBuffer("");  
  485.         result.append(baseSql).append(SPACE);  
  486.         if(!hadWhereSql()){  
  487.             if(this.whereSql.length() > 0){  
  488.                 result.append(WHERE_INIT + SPACE);  
  489.             }  
  490.         }else{  
  491.             result.append(WHERE_SQL + SPACE);  
  492.         }  
  493.         result.append(whereSql).append(SPACE);  
  494.         return "select count(*) from ("+result.toString()+") _temp_count";  
  495.         //return result.toString();  
  496.     }  
  497.       
  498.     /** 
  499.      * 获取SqlBuffer拼接的sql语句 
  500.      * @return 
  501.      */  
  502.     public String toString(){  
  503.         return this.getSql();  
  504.     }  
  505.   
  506.     @SuppressWarnings("unused")  
  507.     private StringBuffer getBaseSql() {  
  508.         return baseSql;  
  509.     }  
  510.   
  511.     @SuppressWarnings("unused")  
  512.     private void setBaseSql(StringBuffer baseSql) {  
  513.         this.baseSql = baseSql;  
  514.     }  
  515.   
  516.     @SuppressWarnings("unused")  
  517.     private StringBuffer getWhereSql() {  
  518.         return whereSql;  
  519.     }  
  520.   
  521.     @SuppressWarnings("unused")  
  522.     private void setWhereSql(StringBuffer whereSql) {  
  523.         this.whereSql = whereSql;  
  524.     }  
  525.   
  526.     @SuppressWarnings("unused")  
  527.     private StringBuffer getOrderBySql() {  
  528.         return orderBySql;  
  529.     }  
  530.   
  531.     @SuppressWarnings("unused")  
  532.     private void setOrderBySql(StringBuffer orderBySql) {  
  533.         this.orderBySql = orderBySql;  
  534.     }  
  535.   
  536.     @SuppressWarnings("unused")  
  537.     private StringBuffer getLimitSql() {  
  538.         return limitSql;  
  539.     }  
  540.   
  541.     @SuppressWarnings("unused")  
  542.     private void setLimitSql(StringBuffer limitSql) {  
  543.         this.limitSql = limitSql;  
  544.     }  
  545.   
  546.     @SuppressWarnings("unused")  
  547.     private int getWhereIndex() {  
  548.         return whereIndex;  
  549.     }  
  550.   
  551.     @SuppressWarnings("unused")  
  552.     private void setWhereIndex(int whereIndex) {  
  553.         this.whereIndex = whereIndex;  
  554.     }  
  555.   
  556.     public int getOrderByIndex() {  
  557.         return orderByIndex;  
  558.     }  
  559.   
  560.     public void setOrderByIndex(int orderByIndex) {  
  561.         this.orderByIndex = orderByIndex;  
  562.     }  
  563.   
  564.     @SuppressWarnings("unused")  
  565.     private int getLimitIndex() {  
  566.         return limitIndex;  
  567.     }  
  568.   
  569.     @SuppressWarnings("unused")  
  570.     private void setLimitIndex(int limitIndex) {  
  571.         this.limitIndex = limitIndex;  
  572.     }  
  573.   
  574.     public Map<String, Object> getParamsMap() {  
  575.         return paramsMap;  
  576.     }  
  577.   
  578.     public void setParamsMap(Map<String, Object> paramsMap) {  
  579.         this.paramsMap = paramsMap;  
  580.     }  
  581.   
  582.     public int getOffSize() {  
  583.         return offSize;  
  584.     }  
  585.   
  586.     public void setOffSize(int offSize) {  
  587.         this.offSize = offSize;  
  588.     }  
  589.   
  590.     public int getPageSize() {  
  591.         return pageSize;  
  592.     }  
  593.   
  594.     public void setPageSize(int pageSize) {  
  595.         this.pageSize = pageSize;  
  596.     }  
  597.   
  598. }  

 

二、定义的枚举

1、ConnectType

Java代码   收藏代码
  1. public enum ConnectType {  
  2.   
  3.     AND{  
  4.         @Override  
  5.         public String getValue() {  
  6.             return "AND";  
  7.         }  
  8.           
  9.     },  
  10.     OR{  
  11.         @Override  
  12.         public String getValue() {  
  13.             return "OR";  
  14.         }  
  15.           
  16.     };  
  17.       
  18.       
  19.     public abstract String getValue();  
  20.       
  21. }  

 

2、OrderByType

Java代码   收藏代码
  1. public enum OrderByType {  
  2.   
  3.     DESC{  
  4.         @Override  
  5.         public String getValue() {  
  6.             return "DESC";  
  7.         }  
  8.           
  9.     },  
  10.     ASC{  
  11.         @Override  
  12.         public String getValue() {  
  13.             return "ASC";  
  14.         }  
  15.           
  16.     };  
  17.       
  18.       
  19.     public abstract String getValue();  
  20.       
  21. }  

 

3、WhereType 

Java代码   收藏代码
  1. public enum WhereType {  
  2.   
  3.     EQUALS{  
  4.         @Override  
  5.         public String getValue() {  
  6.             return "=";  
  7.         }  
  8.           
  9.     },  
  10.     NOT_EQUALS{  
  11.         @Override  
  12.         public String getValue() {  
  13.             return "!=";  
  14.         }  
  15.           
  16.     },  
  17.     LIKE{  
  18.         @Override  
  19.         public String getValue() {  
  20.             return "LIKE";  
  21.         }  
  22.           
  23.     },  
  24.     LIKE_LEFT{  
  25.         @Override  
  26.         public String getValue() {  
  27.             return "LIKE";  
  28.         }  
  29.           
  30.     },  
  31.     LIKE_RIGHT{  
  32.         @Override  
  33.         public String getValue() {  
  34.             return "LIKE";  
  35.         }  
  36.           
  37.     },  
  38.     GREATER_THAN{  
  39.         @Override  
  40.         public String getValue() {  
  41.             return ">";  
  42.         }  
  43.           
  44.     },  
  45.     GREATER_THAN_EQUALS{  
  46.         @Override  
  47.         public String getValue() {  
  48.             return ">=";  
  49.         }  
  50.           
  51.     },  
  52.     LESS_THAN{  
  53.         @Override  
  54.         public String getValue() {  
  55.             return "<";  
  56.         }  
  57.           
  58.     },  
  59.     LESS_THAN_EQUALS{  
  60.         @Override  
  61.         public String getValue() {  
  62.             return "<=";  
  63.         }  
  64.           
  65.     },  
  66.     NULL{  
  67.         @Override  
  68.         public String getValue() {  
  69.             return "is null";  
  70.         }  
  71.           
  72.     },  
  73.     NOT_NULL{  
  74.         @Override  
  75.         public String getValue() {  
  76.             return "is not null";  
  77.         }  
  78.           
  79.     },  
  80.     IN{  
  81.         @Override  
  82.         public String getValue() {  
  83.             return "in";  
  84.         }  
  85.           
  86.     };  
  87.       
  88.       
  89.     public abstract String getValue();  
  90.       
  91. }  

 

三、用到的工具类:StrUtils 

Java代码   收藏代码
  1. import java.util.ArrayList;  
  2. import java.util.Calendar;  
  3. import java.util.List;  
  4. import java.util.Map;  
  5. import java.util.UUID;  
  6.   
  7. //import cn.imovie.common.utils.RegUtils;   
  8.   
  9. public class StrUtils {  
  10.   
  11.     /** 
  12.      * 随机获取数字和大写英文字母组合的字符串 
  13.      *  
  14.      * @param size 
  15.      *            返回的字符串的位数,如果小于1,则默认是6 
  16.      * @return String 
  17.      * @since 2015-09-25 
  18.      */  
  19.     public static String getRandomLetterAndDigital(int size) {  
  20.         String str = "23456789ABCDEFGHJKLMNPQRSTUVWXYZ";// 去掉容易混淆字符:0与O,1与I  
  21.         StringBuffer sb = new StringBuffer();  
  22.         if (size < 1) {  
  23.             size = 6;  
  24.         }  
  25.         for (int i = 0; i < size; i++) {  
  26.             int ran = (int) (Math.random() * str.length());  
  27.             sb.append(str.charAt(ran));  
  28.         }  
  29.         return sb.toString().trim();  
  30.     }  
  31.   
  32.     /** 
  33.      * 随机获取大/小写英文字母组合的字符串 
  34.      *  
  35.      * @param size 
  36.      *            返回的字符串的位数,如果小于1,则默认是6 
  37.      * @return String 
  38.      * @since 2015-09-25 
  39.      */  
  40.     public static String getLetter(int size) {  
  41.         String str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";  
  42.         StringBuffer sb = new StringBuffer();  
  43.         if (size < 1) {  
  44.             size = 6;  
  45.         }  
  46.         for (int i = 0; i < size; i++) {  
  47.             int ran = (int) (Math.random() * str.length());  
  48.             sb.append(str.charAt(ran));  
  49.         }  
  50.         return sb.toString().trim();  
  51.     }  
  52.   
  53.     /** 
  54.      * 随机获取大写英文字母组合的字符串 
  55.      *  
  56.      * @param size 
  57.      *            返回的字符串的位数,如果小于1,则默认是6 
  58.      * @return String 
  59.      * @since 2015-09-25 
  60.      */  
  61.     public static String getUpperLetter(int size) {  
  62.         String str = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";  
  63.         StringBuffer sb = new StringBuffer();  
  64.         if (size < 1) {  
  65.             size = 6;  
  66.         }  
  67.         for (int i = 0; i < size; i++) {  
  68.             int ran = (int) (Math.random() * str.length());  
  69.             sb.append(str.charAt(ran));  
  70.         }  
  71.         return sb.toString().trim();  
  72.     }  
  73.   
  74.     /** 
  75.      * 随机获取数字字符串 
  76.      *  
  77.      * @param size 
  78.      *            返回的字符串的位数 
  79.      * @return String 
  80.      * @since 2015-09-25 
  81.      */  
  82.     public static String getRandomDigital(int size) {  
  83.         String str = "1234567890";  
  84.         StringBuffer sb = new StringBuffer();  
  85.         if (size < 1) {  
  86.             return null;  
  87.         } else {  
  88.             for (int i = 0; i < size; i++) {  
  89.                 int ran = (int) (Math.random() * 10);  
  90.                 sb.append(str.charAt(ran));  
  91.             }  
  92.             return sb.toString().trim();  
  93.         }  
  94.     }  
  95.   
  96.     /** 
  97.      * 获取随机数字,同getRandomDigital 
  98.      *  
  99.      * @param size 
  100.      * @return 
  101.      */  
  102.     public static String getNumber(int size) {  
  103.         return getRandomDigital(size);  
  104.     }  
  105.   
  106.     /** 
  107.      * 生成年月日时分秒毫秒(20120905050602000) 
  108.      *  
  109.      * @return 
  110.      * @since 2015-09-25 
  111.      */  
  112.     public static String getYYYYMMDDHHmmssmilliSecond() {  
  113.         StringBuffer str = new StringBuffer("");  
  114.         String strMonth = "";  
  115.         String strDate = "";  
  116.         String strHour = "";  
  117.         String strMinute = "";  
  118.         String strSecond = "";  
  119.         String strMilliSecond = "";  
  120.         Calendar cal = Calendar.getInstance();  
  121.         int year = cal.get(Calendar.YEAR);  
  122.         int month = cal.get(Calendar.MONTH) + 1;  
  123.         int date = cal.get(Calendar.DATE);  
  124.         int hour = cal.get(Calendar.HOUR_OF_DAY);  
  125.         int minute = cal.get(Calendar.MINUTE);  
  126.         int second = cal.get(Calendar.SECOND);  
  127.         int milliSecond = cal.get(Calendar.MILLISECOND);  
  128.         if (month < 10) {  
  129.             strMonth = "0" + month;  
  130.         } else {  
  131.             strMonth = String.valueOf(month);  
  132.         }  
  133.         if (date < 10) {  
  134.             strDate = "0" + date;  
  135.         } else {  
  136.             strDate = String.valueOf(date);  
  137.         }  
  138.         if (hour < 10) {  
  139.             strHour = "0" + hour;  
  140.         } else {  
  141.             strHour = String.valueOf(hour);  
  142.         }  
  143.         if (minute < 10) {  
  144.             strMinute = "0" + minute;  
  145.         } else {  
  146.             strMinute = String.valueOf(minute);  
  147.         }  
  148.         if (second < 10) {  
  149.             strSecond = "0" + second;  
  150.         } else {  
  151.             strSecond = String.valueOf(second);  
  152.         }  
  153.         if (milliSecond < 10) {  
  154.             strMilliSecond = "00" + milliSecond;  
  155.         } else if (milliSecond < 100) {  
  156.             strMilliSecond = "0" + milliSecond;  
  157.         } else {  
  158.             strMilliSecond = String.valueOf(milliSecond);  
  159.         }  
  160.         return str.append(String.valueOf(year).toString().trim()).append(strMonth.trim()).append(strDate.trim())  
  161.                 .append(strHour.trim()).append(strMinute.trim()).append(strSecond.trim()).append(strMilliSecond.trim())  
  162.                 .toString();  
  163.     }  
  164.   
  165.     /** 
  166.      * 生成年月日(20120905050602000) 
  167.      *  
  168.      * @return 
  169.      * @since 2015-09-25 
  170.      */  
  171.     public static String getYYYYMMDD() {  
  172.         StringBuffer str = new StringBuffer("");  
  173.         String strMonth = "";  
  174.         String strDate = "";  
  175.         Calendar cal = Calendar.getInstance();  
  176.         int year = cal.get(Calendar.YEAR);  
  177.         int month = cal.get(Calendar.MONTH) + 1;  
  178.         int date = cal.get(Calendar.DATE);  
  179.         if (month < 10) {  
  180.             strMonth = "0" + month;  
  181.         } else {  
  182.             strMonth = String.valueOf(month);  
  183.         }  
  184.         if (date < 10) {  
  185.             strDate = "0" + date;  
  186.         } else {  
  187.             strDate = String.valueOf(date);  
  188.         }  
  189.         return str.append(String.valueOf(year).toString().trim()).append(strMonth.trim()).append(strDate.trim())  
  190.                 .toString();  
  191.     }  
  192.   
  193.     /** 
  194.      * 获取uuid,有横杠(36位) 
  195.      *  
  196.      * @return 
  197.      * @since 2015-10-14 
  198.      */  
  199.     public static String getUUID() {  
  200.         return UUID.randomUUID().toString();  
  201.     }  
  202.   
  203.     /** 
  204.      * 获取uuid,无横杠(32位) 
  205.      *  
  206.      * @return 
  207.      * @author lqyao 
  208.      * @since 2015-10-14 
  209.      */  
  210.     public static String getUUIDNumberOnly() {  
  211.         return UUID.randomUUID().toString().replaceAll("-", "");  
  212.     }  
  213.   
  214.     /** 
  215.      * 移除字符串最后一个字符 
  216.      *  
  217.      * @return 
  218.      * @since 2015-10-14 
  219.      */  
  220.     public static String removeLastCode(String str) {  
  221.         if (str == null || str.length() < 1) {  
  222.             return str;  
  223.         }  
  224.         return str.substring(0, str.length() - 1);  
  225.     }  
  226.   
  227.     /** 
  228.      * 第一个字符变大写 
  229.      *  
  230.      * @param str 
  231.      * @return 
  232.      */  
  233.     public static String firstCodeToUpperCase(String str) {  
  234.         if (isBlank(str)) {  
  235.             return str;  
  236.         }  
  237.         String strTrim = str.trim();  
  238.         return String.valueOf(strTrim.charAt(0)).toUpperCase() + strTrim.substring(1, strTrim.length());  
  239.     }  
  240.   
  241.     /** 
  242.      * 获取字符串最后一个字符 
  243.      *  
  244.      * @return 
  245.      * @since 2016-01-13 
  246.      */  
  247.     public static String getLastCode(String str) {  
  248.         if (str == null || str.length() < 1) {  
  249.             return "";  
  250.         }  
  251.         return str.substring(str.length() - 1);  
  252.     }  
  253.   
  254.     /** 
  255.      * 获取第一个id 
  256.      *  
  257.      * @param str 
  258.      *            字符串 
  259.      * @return id 
  260.      */  
  261.     public static String getFirstId(String str, String spiltCode) {  
  262.         if (spiltCode == null) {  
  263.             spiltCode = ",";  
  264.         }  
  265.         if (!StrUtils.isEmpty(str)) {  
  266.             if (str.indexOf(spiltCode) > -1) {  
  267.                 return str.substring(0, str.indexOf(spiltCode)).trim();  
  268.             }  
  269.         }  
  270.         return str;  
  271.     }  
  272.   
  273.     /** 
  274.      * 去相同部分 
  275.      *  
  276.      * @param originalStr 
  277.      *            原字符串 
  278.      * @param deleteStr 
  279.      *            需要去掉的字符串 
  280.      * @return string 
  281.      * @author lqy 
  282.      */  
  283.     public static String removeSamePart(String originalStr, String deleteStr) {  
  284.         if (originalStr != null && deleteStr != null) {  
  285.             originalStr = originalStr.replaceAll("\\(", "(");  
  286.             originalStr = originalStr.replaceAll("\\)", ")");  
  287.             originalStr = originalStr.replaceAll(" | ", "");  
  288.             deleteStr = deleteStr.replaceAll("\\(", "(");  
  289.             deleteStr = deleteStr.replaceAll("\\)", ")");  
  290.             deleteStr = deleteStr.replaceAll(" | ", "");  
  291.             if (originalStr.indexOf(deleteStr) > -1) {  
  292.                 originalStr = originalStr.replaceAll(deleteStr, "");  
  293.             }  
  294.         }  
  295.         return originalStr;  
  296.     }  
  297.   
  298.     /** 
  299.      * 拆分字符串获取数组 
  300.      *  
  301.      * @param str 
  302.      *            字符串 
  303.      * @param spiltCode 
  304.      *            拆分符号 
  305.      * @return String[] 
  306.      */  
  307.     public static String[] getArrayAfterSpilt(String str, String spiltCode) {  
  308.         if (str == null || str.trim().equals("")) {  
  309.             return null;  
  310.         } else {  
  311.             if (spiltCode == null || spiltCode.trim().equals("")) {  
  312.                 spiltCode = ",";  
  313.             }  
  314.             return str.split(spiltCode);  
  315.         }  
  316.     }  
  317.   
  318.     /** 
  319.      * 拆分字符串获取Ids 
  320.      *  
  321.      * @param idsString 
  322.      *            id字符串 
  323.      * @param spiltCode 
  324.      *            拆分符号 
  325.      * @return ids 
  326.      */  
  327.     public static int[] getIdsAfterSpilt(String idsString, String spiltCode) {  
  328.         List<Integer> idList = new ArrayList<Integer>();  
  329.         if (idsString == null || idsString.trim().equals("")) {  
  330.             return null;  
  331.         } else {  
  332.             if (spiltCode == null || spiltCode.trim().equals("")) {  
  333.                 spiltCode = ",";  
  334.             }  
  335.             String[] idArray = idsString.split(spiltCode);  
  336.             if (idArray != null && idArray.length > 0) {  
  337.                 for (String string : idArray) {  
  338.                     if (string != null && !string.trim().equals("")) {  
  339.                         idList.add(Integer.parseInt(string.trim()));  
  340.                     }  
  341.                 }  
  342.             }  
  343.         }  
  344.         if (idList != null && idList.size() > 0) {  
  345.             int[] ids = new int[idList.size()];  
  346.             for (int j = 0; j < idList.size(); j++) {  
  347.                 ids[j] = idList.get(j);  
  348.             }  
  349.             return ids;  
  350.         }  
  351.         return null;  
  352.     }  
  353.   
  354.     /** 
  355.      *  
  356.      * @param obj 
  357.      * @return obj == null; 
  358.      */  
  359.     public static boolean isNull(Object obj) {  
  360.         return obj == null;  
  361.     }  
  362.   
  363.     /** 
  364.      * 判断list是否为Null 
  365.      *  
  366.      * @param list 
  367.      * @return 
  368.      */  
  369.     public static <T> boolean isNullList(List<T> list) {  
  370.         return (list == null);  
  371.     }  
  372.   
  373.     /** 
  374.      * 判断list是否为空 
  375.      *  
  376.      * @param list 
  377.      * @return (list == null) || (list.size() < 1) 
  378.      */  
  379.     public static <T> boolean isEmptyList(List<T> list) {  
  380.         return (list == null) || (list.size() < 1);  
  381.     }  
  382.   
  383.     /** 
  384.      * 判断Map是否为Null 
  385.      *  
  386.      * @param map 
  387.      * @return 
  388.      */  
  389.     public static <K, V> boolean isNullMap(Map<K, V> map) {  
  390.         return (map == null);  
  391.     }  
  392.   
  393.     /** 
  394.      * 判断Map是否为空 
  395.      *  
  396.      * @param map 
  397.      * @return 
  398.      */  
  399.     public static <K, V> boolean isEmptyMap(Map<K, V> map) {  
  400.         return (map == null || map.size() < 1);  
  401.     }  
  402.   
  403.     /** 
  404.      * 判断数组是否为Null 
  405.      *  
  406.      * @param obj 
  407.      * @return 
  408.      */  
  409.     public static boolean isNullArray(Object[] obj) {  
  410.         return (obj == null);  
  411.     }  
  412.   
  413.     /** 
  414.      * 判断数组是否为空 
  415.      *  
  416.      * @param obj 
  417.      * @return 
  418.      */  
  419.     public static boolean isEmptyArray(Object[] obj) {  
  420.         return (obj == null || obj.length < 1);  
  421.     }  
  422.   
  423.     /** 
  424.      * <p> 
  425.      * Checks if a String is empty ("") or null. 
  426.      * </p> 
  427.      * 
  428.      * <pre> 
  429.      * StringUtils.isEmpty(null)      = true 
  430.      * StringUtils.isEmpty("")        = true 
  431.      * StringUtils.isEmpty(" ")       = false 
  432.      * StringUtils.isEmpty("bob")     = false 
  433.      * StringUtils.isEmpty("  bob  ") = false 
  434.      * </pre> 
  435.      * 
  436.      * <p> 
  437.      * NOTE: This method changed in Lang version 2.0. It no longer trims the 
  438.      * String. That functionality is available in isBlank(). 
  439.      * </p> 
  440.      * 
  441.      * @param str 
  442.      *            the String to check, may be null 
  443.      * @return <code>true</code> if the String is empty or null 
  444.      */  
  445.     public static boolean isEmpty(String str) {  
  446.         return str == null || str.length() == 0;  
  447.     }  
  448.   
  449.     /** 
  450.      * <p> 
  451.      * Checks if a String is whitespace, empty ("") or null. 
  452.      * </p> 
  453.      * 
  454.      * <pre> 
  455.      * StringUtils.isBlank(null)      = true 
  456.      * StringUtils.isBlank("")        = true 
  457.      * StringUtils.isBlank(" ")       = true 
  458.      * StringUtils.isBlank("bob")     = false 
  459.      * StringUtils.isBlank("  bob  ") = false 
  460.      * </pre> 
  461.      * 
  462.      * @param str 
  463.      *            the String to check, may be null 
  464.      * @return <code>true</code> if the String is null, empty or whitespace 
  465.      * @since 2.0 
  466.      */  
  467.     public static boolean isBlank(String str) {  
  468.         int strLen;  
  469.         if (str == null || (strLen = str.length()) == 0) {  
  470.             return true;  
  471.         }  
  472.         for (int i = 0; i < strLen; i++) {  
  473.             if ((Character.isWhitespace(str.charAt(i)) == false)) {  
  474.                 return false;  
  475.             }  
  476.         }  
  477.         return true;  
  478.     }  
  479.   
  480.     /** 
  481.      * <p> 
  482.      * Checks if the String contains only whitespace. 
  483.      * </p> 
  484.      * 
  485.      * <p> 
  486.      * <code>null</code> will return <code>false</code>. An empty String ("") 
  487.      * will return <code>true</code>. 
  488.      * </p> 
  489.      * 
  490.      * <pre> 
  491.      * StringUtils.isWhitespace(null)   = false 
  492.      * StringUtils.isWhitespace("")     = true 
  493.      * StringUtils.isWhitespace("  ")   = true 
  494.      * StringUtils.isWhitespace("abc")  = false 
  495.      * StringUtils.isWhitespace("ab2c") = false 
  496.      * StringUtils.isWhitespace("ab-c") = false 
  497.      * </pre> 
  498.      * 
  499.      * @param str 
  500.      *            the String to check, may be null 
  501.      * @return <code>true</code> if only contains whitespace, and is non-null 
  502.      * @since 2.0 
  503.      */  
  504.     public static boolean isWhitespace(String str) {  
  505.         if (str == null) {  
  506.             return false;  
  507.         }  
  508.         int sz = str.length();  
  509.         for (int i = 0; i < sz; i++) {  
  510.             if ((Character.isWhitespace(str.charAt(i)) == false)) {  
  511.                 return false;  
  512.             }  
  513.         }  
  514.         return true;  
  515.     }  
  516.   
  517.     /** 
  518.      * 变成中文括号 
  519.      *  
  520.      * @param str 
  521.      * @return 
  522.      */  
  523.     public static String bracketToChinese(String str) {  
  524.         if (isBlank(str)) {  
  525.             return str;  
  526.         }  
  527.         String strTrim = str.trim();  
  528.         strTrim = strTrim.replaceAll("\\(", "(").replaceAll("\\)", ")");  
  529.         return strTrim;  
  530.     }  
  531.   
  532.     /** 
  533.      * 变成英文括号 
  534.      *  
  535.      * @param str 
  536.      * @return 
  537.      */  
  538.     public static String bracketToEnglish(String str) {  
  539.         if (isBlank(str)) {  
  540.             return str;  
  541.         }  
  542.         String strTrim = str.trim();  
  543.         strTrim = strTrim.replaceAll("(", "(").replaceAll(")", ")");  
  544.         return strTrim;  
  545.     }  
  546.   
  547.     /** 
  548.      * 替换字符串 
  549.      *  
  550.      * @param str 
  551.      * @param sourceStr,如果是特殊字符,如英文()、[]等,要使用\\( 
  552.      * @param targetStr 
  553.      * @return 
  554.      */  
  555.     public static String replaceStr(String str, String sourceStr, String targetStr) {  
  556.         if (isBlank(str)) {  
  557.             return str;  
  558.         }  
  559.         String strTrim = str.trim();  
  560.         strTrim = strTrim.replaceAll(sourceStr, targetStr);  
  561.         return strTrim;  
  562.     }  
  563.   
  564.       
  565.   
  566. }  

 

四、Dao使用例子:

Java代码   收藏代码
  1. @Override  
  2.     public <E> List<E> queryForList(String sql, Map<String, Object> paramsMap, Class<E> clazz) {  
  3.         return namedParameterJdbcTemplate.query(sql,paramsMap,new BeanPropertyRowMapper(clazz));  
  4.     }  
  5.   
  6. @Override  
  7.     public List<Map<String, Object>> queryForList(SqlBuffer sqlBuffer) {  
  8.         return namedParameterJdbcTemplate.queryForList(sqlBuffer.getSql(), sqlBuffer.getParamsMap());  
  9.     }  
  10.   
  11.     @SuppressWarnings("rawtypes")  
  12.     @Override  
  13.     public List<?> queryForList(SqlBuffer sqlBuffer, Class<?> clazz) {  
  14.         return namedParameterJdbcTemplate.query(sqlBuffer.getSql(), sqlBuffer.getParamsMap(),  
  15.                 new BeanPropertyRowMapper(clazz));  
  16.     }  
  17.   
  18.     @Override  
  19.     public int queryForInt(SqlBuffer sqlBuffer) {  
  20.         return namedParameterJdbcTemplate.queryForObject(sqlBuffer.getCountSql(), sqlBuffer.getParamsMap(), int.class);  
  21.     }  
  22.   
  23.     @Override  
  24.     public String queryForString(SqlBuffer sqlBuffer) {  
  25.         return namedParameterJdbcTemplate.queryForObject(sqlBuffer.getCountSql(), sqlBuffer.getParamsMap(),  
  26.                 String.class);  
  27.     }  
  28.   
  29. @Override  
  30.     public int getCount(SqlBuffer sqlBuffer){  
  31.         return namedParameterJdbcTemplate.queryForObject(sqlBuffer.getCountSql(), sqlBuffer.getParamsMap(), int.class);  
  32.     }  

 

五、SqlBuffer 使用例子:

Java代码   收藏代码
  1. SqlBuffer sqlBuffer6 = new SqlBuffer("SELECT ja.*,jaa.`attr_name`,jaa.`attr_value` FROM jc_advertising ja LEFT JOIN jc_advertising_attr jaa ON ja.`advertising_id`=jaa.`advertising_id`");   
  2.          sqlBuffer6.and("jaa.attr_name", Arrays.asList("image_title","image_url"), WhereType.IN);   
  3.          sqlBuffer6.and("ja.site_id", null, WhereType.NOT_NULL).isNull("ja.ad_code");   
  4.          sqlBuffer6.and("ja.ad_name", "banner", WhereType.EQUALS);   
  5.          List<Aaa> list = (List<Aaa>) testSevice.queryForList(sqlBuffer6, Aaa.class);  
  6.          for (Aaa aaa : list) {  
  7.          System.out.println("aaa.getAdvertisingId()="+aaa.getAdvertisingId());  
  8.          System.out.println("aaa.getAdName()="+aaa.getAdName());  

 

 

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

©Copyright 蕃薯耀 2017年7月25日

http://www.cnblogs.com/fanshuyao/

转载于:https://www.cnblogs.com/fanshuyao/p/7234113.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值