JFinal 分页查询问题

pandyyan 发布于 2013/03/29 16:37
阅读 9K+
收藏 5
@JFinal@绝望的八皮@缪斯的情人 , 你好,想跟你请教个问题: 我初始化列表和查询使用的是同一段代码,想通过传参查询信息并分页,但传参分页不起作用,请问JFinal中传参分页应该怎么写?谢谢! 代码如下: dao.paginate(user.getInt("page"), user.getInt("rows"), "select *", "from UserInfo where account like ? or username like ? order by "+user.get("sort")+" " +user.get("order"), "%"+user.get("account")+"%", "%"+user.get("username")+"%");
加载中
0
缪斯的情人
缪斯的情人

引用来自“pandyyan”的答案

引用来自“缪斯的情人”的答案

给你个例子吧。

StringBuilder sql = new StringBuilder();
sql.append("from ts_role where 1=1 ");
Db.paginate(page, rows, "select * ", sql.toString());

 

你好,分页我会写的,但分页select表达式带参数模糊匹配的我没有调通过,请问有带参数查询的例子吗?

时间仓促,急着回家,给你随便摘了一段,自己试试,有问题再解决:

StringBuffer whee=new StringBuffer(" where 1=1 ");
		List<Object> param=new ArrayList<Object>();
		String username=this.getPara("username");
		if(username!=null&&!"".equals(username.trim())){
			whee.append(" and username like ?");
			param.add("%"+username+"%");
		}
		String userno=this.getPara("userno");
		if(userno!=null&&!"".equals(userno.trim())){
			whee.append(" and userno like ?");
			param.add("%"+userno+"%");
		}
		this.setAttr("username", username);
		this.setAttr("userno", userno);
		this.setAttr("page", Db.paginate(this.getParaToInt("pageNum", 1),
				this.getParaToInt("numPerPage", 20),
				"select id,userno 账号,username 姓名 ",
				" from  manager "+whee.toString()+" order by id",param.toArray()));

 

0
缪斯的情人
缪斯的情人

给你个例子吧。

StringBuilder sql = new StringBuilder();
sql.append("from ts_role where 1=1 ");
Db.paginate(page, rows, "select * ", sql.toString());

 

0
pandyyan
pandyyan

引用来自“缪斯的情人”的答案

给你个例子吧。

StringBuilder sql = new StringBuilder();
sql.append("from ts_role where 1=1 ");
Db.paginate(page, rows, "select * ", sql.toString());

 

你好,分页我会写的,但分页select表达式带参数模糊匹配的我没有调通过,请问有带参数查询的例子吗?
0
戴威
戴威
你用的什么数据库?
0
JFinal
JFinal
like 不能用问号挂参,like部分直接拼成sql即可,这是 JDBC决定的
pandyyan
pandyyan
回复 @青春陪葬了无知的年华 : JFinal可以部分问号挂参,但like不能问号挂参。
iSea
iSea
@jfinal 我下个jfinal试了一下,是可以问号挂参的
0
pandyyan
pandyyan

引用来自“缪斯的情人”的答案

引用来自“pandyyan”的答案

引用来自“缪斯的情人”的答案

给你个例子吧。

StringBuilder sql = new StringBuilder();
sql.append("from ts_role where 1=1 ");
Db.paginate(page, rows, "select * ", sql.toString());

 

你好,分页我会写的,但分页select表达式带参数模糊匹配的我没有调通过,请问有带参数查询的例子吗?

时间仓促,急着回家,给你随便摘了一段,自己试试,有问题再解决:

StringBuffer whee=new StringBuffer(" where 1=1 ");
		List<Object> param=new ArrayList<Object>();
		String username=this.getPara("username");
		if(username!=null&&!"".equals(username.trim())){
			whee.append(" and username like ?");
			param.add("%"+username+"%");
		}
		String userno=this.getPara("userno");
		if(userno!=null&&!"".equals(userno.trim())){
			whee.append(" and userno like ?");
			param.add("%"+userno+"%");
		}
		this.setAttr("username", username);
		this.setAttr("userno", userno);
		this.setAttr("page", Db.paginate(this.getParaToInt("pageNum", 1),
				this.getParaToInt("numPerPage", 20),
				"select id,userno 账号,username 姓名 ",
				" from  manager "+whee.toString()+" order by id",param.toArray()));

 

谢谢,周末没验证,明天试试,应该没有问题的。
0
pandyyan
pandyyan

引用来自“喵了个咪”的答案

你用的什么数据库?
mysql数据库,应该就是@JFinal提示的“like 不能用问号挂参,like部分直接拼成sql即可,这是 JDBC决定的”。
0
pandyyan
pandyyan

引用来自“JFinal”的答案

like 不能用问号挂参,like部分直接拼成sql即可,这是 JDBC决定的
谢谢,JFinal like不能问号挂参我能理解,但“这是 JDBC决定的”是什么意思呢?Hibernate或者直接写JDBC也是可以问号挂参的啊!求解~
0
JFinal
JFinal

引用来自“pandyyan”的答案

引用来自“JFinal”的答案

like 不能用问号挂参,like部分直接拼成sql即可,这是 JDBC决定的
谢谢,JFinal like不能问号挂参我能理解,但“这是 JDBC决定的”是什么意思呢?Hibernate或者直接写JDBC也是可以问号挂参的啊!求解~
JFinal 查询都是纯sql直接扔给JDBC,而JDBC无法like挂参,所以说是JDBC决定的
0
pandyyan
pandyyan

引用来自“缪斯的情人”的答案

引用来自“pandyyan”的答案

引用来自“缪斯的情人”的答案

给你个例子吧。

StringBuilder sql = new StringBuilder();
sql.append("from ts_role where 1=1 ");
Db.paginate(page, rows, "select * ", sql.toString());

 

你好,分页我会写的,但分页select表达式带参数模糊匹配的我没有调通过,请问有带参数查询的例子吗?

时间仓促,急着回家,给你随便摘了一段,自己试试,有问题再解决:

StringBuffer whee=new StringBuffer(" where 1=1 ");
		List<Object> param=new ArrayList<Object>();
		String username=this.getPara("username");
		if(username!=null&&!"".equals(username.trim())){
			whee.append(" and username like ?");
			param.add("%"+username+"%");
		}
		String userno=this.getPara("userno");
		if(userno!=null&&!"".equals(userno.trim())){
			whee.append(" and userno like ?");
			param.add("%"+userno+"%");
		}
		this.setAttr("username", username);
		this.setAttr("userno", userno);
		this.setAttr("page", Db.paginate(this.getParaToInt("pageNum", 1),
				this.getParaToInt("numPerPage", 20),
				"select id,userno 账号,username 姓名 ",
				" from  manager "+whee.toString()+" order by id",param.toArray()));

 

按此方法已经搞定了,谢谢!!
返回顶部
顶部