首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

怎样读取sql语句中的占位符?该怎么处理

2012-04-13 
怎样读取sql语句中的占位符?比如有:select*fromtb_personwhere11/*IFname!null&&! .equals(name)*/an

怎样读取sql语句中的占位符?
比如有:

select   *   from   tb_person  
where  
        1=1  
        /*IF   name!=null   &&   ! " ".equals(name)*/
              and   personname   =   like   '%/*name*/% '
        /*END*/


要怎么读取/*IF...             /*name*/这些占位符?

[解决办法]
参考ibatis源代码。。。
[解决办法]
使用正则
"/*(.*?)*/"
[解决办法]
使用动态sql吧,或者在ibatis的配置文件中用:[CDATA].
[解决办法]
可以参考一下代码:

Java code
    public static void main(String[] args) throws Exception{        String sql = "select * from   tb_person where 1=1 /*IF name!=null && !\"\".equals(name)*/ and personname = like '%/*name*/%' /*END*/";         Matcher m = Pattern.compile("/\\*.+?\\*/").matcher(sql);        while(m.find()){            System.out.println(m.group());        }    }打印结果:/*IF name!=null && !"".equals(name)*//*name*//*END*/ 

热点排行
Bad Request.