@Bizlet("")
这个是什么语法呀。
没有用过。

解决方案 »

  1.   

    不知道这些方法是用来干嘛的我感觉有些在设计上不是很好,比如有 String[] 参数的代码,不管是为 null 还是 length 为 0 都返回空字符串! 
      

  2.   

    我整了个应用于Hibernate的通用查询条件 FilterInfo
    成员
    1. List<FilterItem> items; 
              FilterItem(String propertiy,Object value,CompareType cType)
    2. StringBuffer maskString;  // 格式 #0 AND #1 AND (#2 OR #3)
    方法
    1. addItem(FilterItem item,"AND"/"OR")  //添加单个条件项
    2. margeFilter(FilterInfo,"AND"/"OR")  //将另一个过滤融合到自身中(自动如上所有,加括号)
    3. getFilterString()   //生成过滤SQL 如 name=? AND number = ? AND (longnumber= ? OR longnumber like ?)
    4. getFilterValues()   //取得SQL对应的占位符的所有参数
    这样使用 Hibernate的话,所有的对象都可以使用一个查询Dao
      

  3.   

    那个@Bizlet("")是普元Eos6.0里边的注释
    这是函数主要是用来生成sql语句的,因为在我们的框架中没有hibenate这样的框架,所以需要自己拼Sql
    有的时候不是PrepareStatement的就可以搞定的,而MessageFormat也不能完全搞定,好多时候我需要一个
    函数支持如下的模板
    Map<String,String> map=new HashMap<String,String>();
    map.put("id","id");
    map.put("pk","pk");
    map.put("fk","fk");String temp="insert into tableName values(id,pk,fk) "
               +"values('{id}','{pk}','{fk}') ";String sql=format(temp,map);还有时候需要支持如下的功能以便于生成sql
    String ids={"id-1","id-2","id-3","id-4"};
    String temp="update mytable "
               +"set value='{value}' "
               +"where id in ({ids})";Map<String,String> map=new HashMap<String,String>();
    map.put("value","new value");
    map.put("ids",join(ids,",","''{0}''"));
    String sql=format(temp,map);可能好多人都一只用Hibenate这样的框架,用面向对象的方式来开发,平时用不到这样
    自己去拼Sql。我们没有办法,这些工作成天做,只能自己想办法提高效率了
      

  4.   

    楼主幸苦了。
    不过org.apache.commons.lang.StringUtils类join方法包含了上面的部分功能。
      

  5.   

    Apache那个类包我知道,也用过两次,但里边的功能不能完全满足我们的要求
    而且就为了那一个函数引入那么大一个jar包感觉有点得不偿失
      

  6.   

    又调整了下,感觉这样会更好些,原来那样设计的话MessageFormat.format的好多特性
    都不支持了
    public static void main(String[] args){
    Map<String,Object> map=new HashMap<String,Object>();
    map.put("id" , "id-1");
    map.put("name" , "王建波");
    map.put("age" , 27);

    String temp1="inser into users(guid,id,name,age) values("
       +"'newid()',''{id}'',''{name}'',{age,number,#.00}"
       +")",
       temp2="inser into users(guid,id,name,age) values("
       +"'newid()',''{0}'',''{1}'',{2,number,#.00}"
       +")";

    System.out.println( format(temp1,map));
    System.out.println( format(temp1,map).equals(
    MessageFormat.format(
    temp2,
    map.get("id"),
    map.get("name"),
    map.get("age")
    )
    ));
    }

    public static String format(
    String temp,
    Map<String,Object> pramaMap){

    String  regex="''|'.*?'|\\{(.*?)(,.*?)?\\}|[^\\{\\}]+";
    List<Object> paramList=new ArrayList<Object>();
    StringBuffer buff=new StringBuffer();

    Pattern p=Pattern.compile(regex);
    Matcher m=p.matcher(temp);
    String paramName,paramSets;
    Object paramValue;
    int    paramIdx=0;

    while(m.find()){
    if(m.group(1)==null){
    buff.append(m.group());
    }else{
    paramName=m.group(1);
    paramValue=pramaMap.get(paramName.trim());
    paramSets=m.group(2)!=null?m.group(2):"";

    paramList.add(paramValue);
    buff.append("{"+paramIdx+paramSets+"}");
    paramIdx++;
    }
    }

    return MessageFormat.format(
    buff.toString(),
    paramList.toArray()
    );
    }