zoukankan      html  css  js  c++  java
  • 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/

  • 相关阅读:
    Linux内核参数信息(Oracle相关)
    Android和java平台 DES加密解密互通程序及其不能互通的原因
    [置顶] ※数据结构※→☆线性表结构(queue)☆============循环队列 顺序存储结构(queue circular sequence)(十)
    理解 Thread.Sleep 函数
    引导加载程序:GRUB
    xvfb 初步探究
    [置顶] 中国象棋程序的设计与实现(原始版)(包含源码)
    Ext图表的精彩
    JSTL解析——004——core标签库03
    Servlet API中文版
  • 原文地址:https://www.cnblogs.com/fanshuyao/p/7234113.html
Copyright © 2011-2022 走看看