java 动态拼接sql_动态SQL拼接工具类
動(dòng)態(tài)SQL拼接處理工具類,為了傳動(dòng)態(tài)參數(shù)sql語句拼接的靈活使用。具體源代碼見:
下面簡單介紹下使用Demo:
public?static?void?main(String[]?args)?throws?IOException?{
DynamicSQL?dsql?=?new?DynamicSQL();
dsql.append("SELECT?s.dept_name,?s.id,?s.name,?t.year,?t.semester,?t.course_id,?t.grade??");
dsql.append("??FROM?student?s???");
dsql.append("??LEFT?JOIN?takes?t?ON?s.id?=?t.id?");
dsql.append("??where?s.id?=?'1'??????");
dsql.isNotEmpty("?and?t.year?=?#????",?"2015");
dsql.isNotEmpty("?and?t.month?=?#????",?"");
dsql.isEqual("?and?t.semester?=?$??",?2,?2);
System.out.println(dsql.getSql());
System.out.println(dsql.getParams());
System.out.println(dsql);
System.out.println("+++++++++++++++++++++++++++++++++++++++++++");
dsql.clear();
dsql.append("SELECT?s.dept_name,?s.id,?s.name,?t.year,?t.semester,?t.course_id,?t.grade??");
dsql.append("??FROM?student?s???");
dsql.append("??LEFT?JOIN?takes?t?ON?s.id?=?t.id?");
dsql.append("??where?s.id?=?'1'??????");
dsql.isNotEmpty("?and?t.year?=?#????",?"2015");
dsql.isNotEmpty("?and?t.month?=?$????",?"");
dsql.isEqual("?and?t.semester?=?$??",?new?Integer(3),?new?Integer(3));
dsql.isEqual("?and?t.semester2?=?$??",?5,?5);
System.out.println(dsql.getSql());
System.out.println(dsql.getParams());
System.out.println(dsql);
System.out.println("+++++++++++++++++++++++++++++++++++++++++++");
dsql.clear();
String?ids?=?"1,?2,?3,?4,?5";
//dsql.append("delete?from?sdt_bdi_std_type?");
//dsql.isNotEmpty("??where?id?in?($)?",?ids);
dsql.isNotEmpty(String.format("delete?from?%s?where?id?in?($)?",?"sdt_bdi_std_type"),?ids);
System.out.println(dsql.getSql());
System.out.println(dsql.getParams());
System.out.println(dsql);
}
運(yùn)行的結(jié)果如下:
SELECT s.dept_name, s.id, s.name, t.year, t.semester, t.course_id, t.grade FROM student s LEFT JOIN takes t ON s.id = t.id where s.id = '1' and t.year = ? and t.semester = ?
[2015, 2]
SELECT s.dept_name, s.id, s.name, t.year, t.semester, t.course_id, t.grade FROM student s LEFT JOIN takes t ON s.id = t.id where s.id = '1' and t.year = '2015' and t.semester = ?2
+++++++++++++++++++++++++++++++++++++++++++
SELECT s.dept_name, s.id, s.name, t.year, t.semester, t.course_id, t.grade FROM student s LEFT JOIN takes t ON s.id = t.id where s.id = '1' and t.year = ? and t.semester2 = ?
[2015, 5]
SELECT s.dept_name, s.id, s.name, t.year, t.semester, t.course_id, t.grade FROM student s LEFT JOIN takes t ON s.id = t.id where s.id = '1' and t.year = '2015' and t.semester2 = ?5
+++++++++++++++++++++++++++++++++++++++++++
delete from sdt_bdi_std_type where id in (?)
[1, 2, 3, 4, 5]
delete from sdt_bdi_std_type where id in ( 1, 2, 3, 4, 5 )
總結(jié)
以上是生活随笔為你收集整理的java 动态拼接sql_动态SQL拼接工具类的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 三星bios怎么改启动项 三星电脑BIO
- 下一篇: linux cmake编译源码,linu