JFinal 社区 feedback 反馈栏目

热心反馈、提升品质

    JFinal 社区反馈栏目,是用户向作者提出自己在项目使用过程之中碰到的问题或者改进建议,例如某某项目中某个功能不好用,又或者自己有更好的方案反馈给作者,项目作者可以有针对性地进行权衡和改进,有助于打造高品质的项目,从而也为用户带来更大价值。

评论区

白菜先生

2016-11-11 18:32

@JFinal 我只能简单说说修改的地方,不敢贴代码。因为在黄区,贴代码算违规的。

lele111

2016-11-11 22:49

詹老师 你好 JFinal的极速开发demo 最终呈现的是什么样子 我每次去尝试localhost时,浏览器提示都是not found

JFinal

2016-11-12 10:03

@lele111 仔细参照 jfinal demo 中的说明文件结合一下 jfinal 手册第一章中的快速上手去运行就一定可以

白菜先生

2016-11-15 15:13

波总,建议后续可以在Model类中新增一个插入记录返回自增id(或者主键)的方法。以mysql为例,插入数据的时候,随即获取 LAST_INSERT_ID(),就能取得本次连接产生的自增id。虽然可以通过取最大id的方式来取得id,但是在高并发的情况下会出问题的。如果save()之后立即去执行LAST_INSERT_ID(),这个步骤是在两次连接中去做的,所以也不可靠。你看后续会不会强化这个功能点。

JFinal

2016-11-15 16:39

@白菜先生 这个功能在 jfinal 0.1 版本的时候就有了,直接这样用:
1:user.save();
2:int id = user.getId()

如果没有生成 getter 方法的话这样用:
int id = user.getInt("id")

JFinal

2016-11-15 16:41

@白菜先生 这个功能不仅在 jfinal 第一版就有了,而且并不是采用 LAST_INTER_ID(),也不是采用发送两次请求,而是用的 JDBC 提供的专门用于在 insert 的同时即可立即获取自增主键的一个参数得到的,是最优方案

白菜先生

2016-11-15 16:49

@JFinal 赞!!!

白菜先生

2016-11-16 11:26

我在后台将BoxProperty的对象列表存到context里面,但在前台通过去遍历对象的时候,告诉我那个对象不存在user_property_id属性:javax.el.PropertyNotFoundException: Property 'user_property_id' not found on type com.huawei.devicetestspecial.collector.model.BoxProperty。相应的这个对象下的root_folder属性也说没有。是JSTL在解析bean的时候,属性发生了改变吗?是被去掉了下划线?

白菜先生

2016-11-16 11:33

验证过了,还真是这样。JSTL通过getter去获取属性的时候,把属性名改为首字母小写的驼峰命名了。

xiansx

2016-11-18 15:22

Db.use("m2").find("select * from store where tel regexp '[^0-9^\\-]'") 这个不支持么

JFinal

2016-11-18 18:31

@xiansx jfinal 是将 sql 与参数直接扔给了 JDBC 去处理,只要是 JDBC 支持,jfinal 必然也支持

在云端

2016-11-19 10:08

Db.find(select 'key','text' union all select * from (select cast(id as varchar)as id, user_name from sys_user ) a); 在SQLServer查询时,返回不了'key'的值,有人知道如何处理么?

JFinal

2016-11-19 14:15

@在云端 你确定 sql server 是用单引号引住保留字? 我怎么记得是用中括号: select [key], [text] ....

在云端

2016-11-27 11:50

@JFinal 这个在数据库中执行没问题,程序中执行,只返回一列值,用DB.query这个比较麻烦方式解决了。

ipakin

2016-12-19 10:49

下面这段代码,在jdk1.7下没问题,升到jdk1.8就报异常,jfinal版本是2.0。
Record re=Db.findFirst("select * from user_info");
String s1=String.valueOf(re.get("user_id"));//抛异常:java.lang.ClassCastException: java.lang.Long cannot be cast to [C
String s2=re.getStr("user_id");//正确
请问这是怎么回事

models

2016-12-23 17:33

url 配置有bug。
web.xml 里面配制成*,如果配置为/s这种除了index 的action其他都会404,原因在于ActionHandler里面actionMapping.getAction(target, urlPara);这里target和实际map里面的key 差一个“/s"

models

2016-12-26 13:38

deleteById 方法调用的是 生成一个sql 后 调用update,而update 使用的是prepareStatement,WHERE的的传参是传不进去的的,所以delete不掉。

JFinal

2016-12-26 13:49

@models deleteById 是指根据 id 去删记录,删记录有了 id 就完全足够了,如果希望再有 where 去控制,用一下 Db.update("delete tableName where ...", p1, p2..., pn")

model是 active record 模式,所以 save()、update()、delete() 这些方法都没有参数,这个是 AR 模式所决定的,如果你当前的场景不是这个模式,需要使用 Db + Record 模式, Db.update(sql, paras) 可以随便执行修改、删除 sql,而 Db.find 可以执行任意的 sql 查询

杜福忠

2017-01-04 16:25

@david wang 老大?这能 a ?

david wang

2017-01-04 16:28

@杜福忠 我的用户名与空格,@ 不到我 哈哈哈哈

杜福忠

2017-01-04 16:30

@david wang 有梗... @JFinal

JFinal

2017-01-05 14:26

@杜福忠 nickName 中有空格 at 不到人,这是早期注册用户,当时社区并没有对 nickName 做严格的校验,现在无法注册这样的昵称了

asdf123

2017-01-06 16:59

我刚玩jfinal有点问题请教:1.我使用model进行查询,这个model怎么知道我要对那个表进行操作,有时候我不得不使用Db工具进行tablename的指定,比方说使用自带的find(sql,object...)有时候无法查询出来list,有的时候可以

JFinal

2017-01-06 17:18

@asdf123 这属于基本问题,看下手册中介绍的用法,很多问题自然就明白

asdf123

2017-01-09 10:52

@JFinal 继承了model,使用model对象的findfirst(sql) 方法,直接抛异常nullPointException,数据库表是有值的,我就不明白了?如下: TBCompany company = findFirst("SELECT * FROM tb_company c WHERE 1 = 1"); 这个不能返回吗?

热门反馈

扫码入社