Jfinal getModel后,插入mysql问题求助

先上图:

add.png

上图是通过getModel(user.class,"user"),将Newuser.save()注释掉获取了前段页面表单中user.xxx数据后,返回后台的数据为:data=[{"user":{"id":"10105","loginname":"sau10105","loginpwd":"sau10105","username":"asd","userphone":"asd","college":"asd","userdemo":"asd","usertype":"0"}}]

Newuser.save()未注释掉时,执行时出现下图报错。

sq.png

mysql数据库的主键为‘id’,

问:上述问题解决的办法,用getModel后如何有效的插入到数据库中?

谢过大神们!

评论区

JFinal

2017-12-20 11:42

单步调试一下,看一下 save() 方法调用以前 model 中是否有 id 值,如果没有的话要看一下你的 id 是否为自增主键

如果都确定没事,看一下主键名是不是 "id",如果不是的话,要在 apr.addMapping(...) 时指定为正确的主键名

如果不想使用 arp.addMapping(...) 可以利用 jfinal 提供的生成器搞定这一切

YiQang

2017-12-20 15:14

@JFinal 我把id主键改成了自增主键,但是在我执行之前的操作后,保存到数据库的数据不对,只是id增长了一个,其余全部是null,是我数据库的问题?还是getModel我写的不对呢?

JFinal

2017-12-20 16:06

@YiQang 改成自增主键以后,调用 save() 时,就不再需要关注 id 字段的事情了,数据库会自动搞定

YiQang

2017-12-20 16:19

@JFinal 请问getModle()的返回值,是将表单中的字段,映射到user.class这个类对象中吗?也就是说代替了以前request.getparameter()这类的函数吗?

YiQang

2017-12-20 16:22

@YiQang 我执行getModel后,应该是没有映射到

JFinal

2017-12-20 16:23

@YiQang getModel 先是要知道你的 Model 所对应的数据表有哪些字段,以及这些字段的类型是什么,然后从 request 中获取数据进行注入工作,单步调试便知

建议让 Model 生成 setter 方法,然后使用 getBean(...) 这个方法来做, getBean 使用的是 setter 方法注入,而不用去管你数据表的字段与字段类型是什么

热门反馈

扫码入社