zoukankan      html  css  js  c++  java
  • String.format VS. StrSubstitutor VS. NamedParameterJdbcTemplate

      在Java中,想要用一个字符串模块根据参数的不同来产生不同的字符串,主要有以下两种办法:

      Java String.format()


         在JDK1.5中,String类新增了一个很有用的静态方法String.format().
         format(Locale l, String format, Object... args) 使用指定的语言环境、格式字符串和参数返回一个格式化字符串;
         format(String format, Object... args) 使用指定的格式字符串和参数返回一个格式化字符串。
         在格式化字符串中,大部分参数都比较符合C风格中的printf()函数,但是需要注意的是,在Java中,有一个可选的argument_index的十进制的参数,用来表明参数在参数列表中的位置。第一个由“1$”引用,第二个由“2$”引用,以此类推。例如:

    System.out.println(String.format("%s,%s,%1$s,%2$s,%1$s", "a", "b"));   
    
    //输出:a,b,a,b,a

      Commons-lang StrSubstitutor


         在Commons-lang中,给我们提供一个新的类叫做StrSubstitutor,专门用来做一些字符串替换填充的事情。例如:

    Map valuesMap = HashMap();
    valuesMap.put("animal", "quick brown fox");
    valuesMap.put("target", "lazy dog");
    String templateString = "The ${animal} jumped over the ${target}.";
    StrSubstitutor sub = new StrSubstitutor(valuesMap);
    String resolvedString = sub.replace(templateString);
    
    //输出:The quick brown fox jumped over the lazy dog.

      联想到的NamedParameterJdbcTemplate


      这使我想起了曾经在使用JdbcTemplate的时候,SQL语句的参数都是用“?”作为占位符,严重依赖于顺序。为了解决这个问题,我们可以选择使用Spring中的NamedParameterJdbcTemplate。这样我们就可以使用“:”跟上变量名而不用依赖位置的先后顺序了,而且可读性也大大提高了。例如:

    //insert with named parameter
    public void insertNamedParameter(Customer customer){
        String sql ="INSERT INTO CUSTOMER (CUST_ID, NAME, AGE) VALUES (:custId, :name, :age)";
        Map<String, Object]]> parameters =new HashMap<String, Object]]>();
        parameters.put("custId", customer.getCustId());
        parameters.put("name", customer.getName());
        parameters.put("age", customer.getAge());
        getSimpleJdbcTemplate().update(sql, parameters);
    }

      

  • 相关阅读:
    【js类库AngularJs】学习angularJs的指令(包括常见表单验证,隐藏等功能)
    【js类库AngularJs】解决angular+springmvc的post提交问题
    【javascript类库】zepto和jquery的md5加密插件
    【转】Java Cipher类 DES算法(加密与解密)
    手机QQ访问时,html页面在QQ中自定义预览和自定义分享
    dos 删除文件夹 rd
    摆动效果
    【js类库Raphaël】使用raphael.js根据点坐标绘制平滑曲线
    更新html技术比较
    动态设置缩放比例和html字体大小
  • 原文地址:https://www.cnblogs.com/penghongwei/p/3442067.html
Copyright © 2011-2022 走看看