NutzCN Logo
问答 自定义sql如果有多个条件怎么能补硬编码
发布于 2113天前 作者 zp8821138 1915 次浏览 复制 上一个帖子 下一个帖子
标签:

比如这样的 Sql sql = Sqls.create("DELETE FROM $table WHERE name=@name");
可以先创建sqlStr 然后
sql.vars().set("table","t_abc");
sql.params().set("name","Peter");

但是我这个是这样写的

StringBuilder sqlStr = new StringBuilder();
		String id = params.getString("id");
		String name = params.getString("name");
		int pageNumber = params.getInt("pageNumber");
		int pageSize = params.getInt("pageSize");
		if(Strings.isBlank(id)){
			sqlStr.append("SELECT * FROM sys_department WHERE 1 = 1");
			if(!Strings.isBlank(name)){
				sqlStr.append(" AND name LIKE %"+name+"%");
			}
			sqlStr.append(" ORDER BY orderNum ASC");
		}else{
			sqlStr.append("SELECT *,LEVEL AS _level FROM sys_department WHRE 1 = 1");
			if(!Strings.isBlank(name)){
				sqlStr.append(" AND name LIKE %"+name+"%");
			}
			sqlStr.append(" START WITH id='").append(id).append("' CONNECT BY PRIOR id=parentId");
			sqlStr.append(" ORDER BY _level ASC,orderNum ASC");
		}
		Sql sql = Sqls.create(sqlStr.toString());

这个怎么避免like中的硬编码呢?

3 回复

Sql sql = Sqls.create(sqlStr.toString()); 后面再次条件判断又有点麻烦。

你需要nutz-plugins-sqltpl

。。

来自炫酷的 NutzCN

添加回复
请先登陆
回到顶部