读书人

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

发布时间: 2012-04-13 13:50:24 作者: rapoo

怎样读取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*/ 

读书人网 >J2SE开发

热点推荐