3.0的文档中第43页末尾处,示例代码如下:
find(getSql("findPrettyGirl"), 16, 23)
这段代码IDEA标红,因此我个人认为应该是缺少了调用Db或者Model,所以尝试改成如下代码:
Db.find(Db.getSql("findPrettyGirl"), 16, 23)
但是Db.getSql()的三个方法都是有两个参数,根本没有一个参数的。那应该怎么写?
还有就是,第44页中间位置,示例代码如下:
JMap cond = JMap.create("age",18).put("weight",50); SqlPara sqlPara = getSqlPara("findPrettyGirl",cond); find(sqlPara);
实际使用时,无法运行(跟上面一样,我同样认为是缺少了调用Db或者Model),调整成如下代码后运行正常:
JMap cond = JMap.create("age",18); cond.put("weight",50); SqlPara sqlPara = Db.getSqlPara("findPrettyGirl",cond); Db.find(sqlPara);
其中,
JMap cond = JMap.create("age",18).put("weight",50);
提示类型不匹配,分开写就没事儿了,这又是为啥?
所以,Model.getSql(...) 虽然只有一个参数,但第二个参数其实是自身的属性 map,而 Db.getSql(...) 由于与 model、record 是脱离的,所以必须要提供第二个参数
JMap.create("age",18).put("weight",50); 这行代码是手误,链式调用需要将 put 改为 set 才可以,感谢你的反馈,现已对该错误进行了改正
jfinal 手册新添加的 sql 管理部分是在春节前通宵赶出来的,有一些内容缺失,也有手误,再次感谢你的反馈