遇到了坑,没第一时间看数据表的相应字段是不是带空格,导致盲目检查程序代码
查询含空格的字段
SELECT * FROM T_NAME WHERE REGEXP_LIKE(COLNAME, '( )+');
SELECT * FROM T_NAME WHERE length(COLNAME) > length(trim(COLNAME));
SELECT * FROM T_NAME WHERE substr(字段,-1)=' ';
同时遇到了Db.query查询出来的结果有问题,改成Db.find问题解决
1、Db.query,返回的是List<Model>类型,实际上返回的却是 Model 的数组;
2、Db.find,返回List<Reocrd>类型,实际上是recrod的 list;
3、所以相关Mode中的dao只有find,没有query,只有Db类中既有find也有query,可以灵活运用
一个查字段值,一个查行纪录
大牛说:
Db.java 中的确主要分为 find 系与 query 系两套方法。find 系列的方法会将查询结果封装成 Record 或 List<Record>,而 query 系则保持jdbc原汁原味的结果,不进行封装。
JFinal API 的设计有个特色:非常注重系列方法,如Controller 中的getPara系列、render系列、addCookie系列、getFile系列;Validator中的validate系列;Model中的get系列等等这些。这样做的最大好处就是便于开发者去理解记忆 API 的使用,一般来说在一个系列的方法只需记住其中某一个其它方法就可以推测出其它方法的使用。