jfinal有一个特别好的地方,sql查询的时候可以直接查record。但是要注意query和find的区别。

query返回的是List,find返回的才是List。

看源码

/**

* @see #query(String, Object...)

* @param sql an SQL statement

*/

public List query(String sql) {// return List or List

return query(sql, NULL_PARA_ARRAY);

}

/**

* @see #find(String, String, Object...)

* @param sql the sql statement

*/

public List find(String sql) {

return find(sql, NULL_PARA_ARRAY);

}

用法如下

/**

* 正确写法

*/

static void testDb0() {

String sql = "select wechat_openid from base_wechat_user ;";

List data = Db.query(sql);

String r = data.get(0);

System.out.println(r.toString());

}

/**

* 错误写法

*/

static void testDb1() {

String sql = "select wechat_openid from base_wechat_user ;";

List data = Db.query(sql);

Record r = data.get(0);

System.out.println(r.toString());

}

/**

* 错误写法

*/

static void testDb2() {

String sql = "select id, wechat_openid from base_wechat_user ;";

List data = Db.query(sql);

Record r = data.get(0);

System.out.println(r.toString());

}

/**

* 错误写法

*/

static void testDb3() {

String sql = "select * from base_wechat_user ;";

List data = Db.query(sql);

Record r = data.get(0);

System.out.println(r.toString());

}

/**

* 正确写法

*/

static void testDb4() {

String sql = "select * from base_wechat_user ;";

List data = Db.find(sql);

Record r = data.get(0);

System.out.println(r.toString());

}

/**

* 正确写法

*/

static void testDb5() {

String sql = "select wechat_openid from base_wechat_user ;";

List data = Db.find(sql);

Record r = data.get(0);

System.out.println(r.toString());

}

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐