比如我现在要把一组SQL写到资源文件中
SQL_COMMON_001=.................
SQL_COMMON_002= SELECT NAME ,AGE(回车换行)
FROM EMP(回车换行)
WHERE .............
SQL_COMMON_003=........这样,我在读取SQL_COMMON_002的时候,只能读取到第一行的内容:SELECT NAME ,AGE(回车换行)
如果我SQL很长,又不能回车换行,如果写在一行写起来很麻烦!有什么好的方法吗?
SQL_COMMON_001=.................
SQL_COMMON_002= SELECT NAME ,AGE(回车换行)
FROM EMP(回车换行)
WHERE .............
SQL_COMMON_003=........这样,我在读取SQL_COMMON_002的时候,只能读取到第一行的内容:SELECT NAME ,AGE(回车换行)
如果我SQL很长,又不能回车换行,如果写在一行写起来很麻烦!有什么好的方法吗?
How do I specify non-ASCII strings in a properties file?
You can specify any Unicode character with the \uXXXX notation. (The XXXX denotes the 4 hexadecimal digits that comprise the Unicode value of a character.) For example, a properties file might have the following entries:s1=hello there
s2=\uff2d\uff33\u30b4
查一下回车的 unicode 吧。
有没有好的方法可以来存取SQL语句?能给点建议吗?
2. 如果要单独放出来,可以用 xml 文件。
如果一条SQL语句有上百行,并且动态条件很多,如果放到资源文件中.从资源文件中读取的时候,我只用一个ID找到这条SQL,再加一个字符串数组作为动态条件,这样读取出来的就是一条完整的SQL了,再来执行这个字符串,就方便多了!
sql = ...
if ...
sql + = " and t1 = ...";
else
sql + = " and s2 = ...";
将 SQL 文件写在资源文件中根本应付不了这么简单的事情。
我可以在资源文件中写:
SQL_ID_000=SELECT NAME FORM {0} WHERE {1}这样我的表名,可查询条件都可以动态生成?
SQL_ID_000= {0}将SQL语句中全部放在程序中!用预处理来传参数太麻烦,而且只能传某一个属性值!如果SQL有上百行内容放在程序中也难看,所以我选择写在资源文件
我总觉得很荒唐。在我的印象中,这种写法不是普遍的。我看的开源代码以及商业代码都不少,这种写法不敢恭维。
只是特别说明一下可以这样写,在项目中不一定要这样写!jacklondon(jacklondon)不用这么钻牛角吧!我参加的项目中用到的SQL有接近上千条,为了方便管理和参数传入,是放在资源文件中!这样是正常的,WEBPUMP封装的STRUTS技术中,就是这样用的!
String sql = "select * from tbl where 1 = 1 ";
if(!StringUtils.isEmpty(t1)){
sql += " and t1 = " + t1;
}
if(!StringUtils.isEmpty(t2)){
sql += " and t2 = " + t2;
}
if(!StringUtils.isEmpty(t3)){
sql += " and t3 = " + t3;
}
...
if(!StringUtils.isEmpty(t10)){
sql += " and t10 = " + t10;
}
请教一下,按照你的办法怎么写?会比以上更简单么?当然这里应该用 prepared statement.