Skip to content

Instantly share code, notes, and snippets.

@wendal
Forked from anonymous/gist:1874205
Created February 21, 2012 06:27
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save wendal/1874256 to your computer and use it in GitHub Desktop.
Save wendal/1874256 to your computer and use it in GitHub Desktop.
基于Xsqlbuilder的动态条件拼装模板及实例代码
public Object list(@Param("page") int page ,@Param("rows") int rows, @Param("..") ${table.className} obj){
if (rows < 1)
rows = 10;
if (page < 1) {
page = 1;
}
//build SQL Where
XsqlBuilder builder = new XsqlBuilder();
Map<String, Object> filters = new HashMap<String, Object>();
<#list table.columns as column>
<#if column.isNotIdOrVersionField>
filters.put("${column.columnNameLower}",obj.get${column.columnNameLower?cap_first}());
</#if>
</#list>
//sort columns
//filters.put("sortColumns","id desc");
String sql = " where 1=1 "
<#list table.columns as column>
<#if column.isNotIdOrVersionField>
+ "/~ and ${column.sqlName} = '[${column.columnNameLower}]' ~/"
</#if>
</#list>
+ "/~ order by [sortColumns] ~/";
Pager pager = dao().createPager(page, rows);
List<${table.className}> list = dao().query(${table.className}.class, Cnd.wrap(builder.generateSql(sql, filters).getXsql()), pager);
Map<String, Object> map = new HashMap<String, Object>();
if (pager != null) {
pager.setRecordCount(dao().count(${table.className}.class));
map.put("pager", pager);
}
map.put("list", list);
return map;
}
public Object list(@Param("page") int page, @Param("rows") int rows, @Param("..") Action obj) {
if (rows < 1)
rows = 10;
if (page < 1) {
page = 1;
}
// build SQL Where
XsqlBuilder builder = new XsqlBuilder();
Map<String, Object> filters = new HashMap<String, Object>();
filters.put("name", obj.getName());
filters.put("company", obj.getCompany());
filters.put("address", obj.getAddress());
filters.put("linkman", obj.getLinkman());
filters.put("mobile", obj.getMobile());
filters.put("digest", obj.getDigest());
filters.put("description", obj.getDescription());
filters.put("creattime", obj.getCreattime());
filters.put("updatetime", obj.getUpdatetime());
String sql = " where 1=1 " + "/~ and name = '[name]' ~/" + "/~ and company = '[company]' ~/"
+ "/~ and address = '[address]' ~/" + "/~ and linkman = '[linkman]' ~/"
+ "/~ and mobile = '[mobile]' ~/" + "/~ and digest = '[digest]' ~/"
+ "/~ and description = '[description]' ~/" + "/~ and creattime = '[creattime]' ~/"
+ "/~ and updatetime = '[updatetime]' ~/" + "/~ order by [sortColumns] ~/";
// sort columns
filters.put("sortColumns", "id desc");
Pager pager = dao().createPager(page, rows);
List<Action> list = dao().query(Action.class, Cnd.wrap(builder.generateSql(sql, filters).getXsql()), pager);
Map<String, Object> map = new HashMap<String, Object>();
if (pager != null) {
pager.setRecordCount(dao().count(Action.class));
map.put("pager", pager);
}
map.put("list", list);
return map;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment