关于save保存之后获取不到主键问题

TComment tComment = new TComment().set("study_play_id", id).set("comment_time", commentTime).set("comment_content", commentContent).set("comment_name", userName);

tComment.save();

System.out.println("111111"+tComment.getInt("comment_id"));

看代码。这样获取不到id值,

输出的值

Sql: insert into `t_comment`(`comment_content`, `comment_name`, `comment_time`, `study_play_id`) values(?, ?, ?, ?)

111111null

{comment_content:3123, comment_name:zhangsan, comment_time:2018-07-12 21:05:38, study_play_id:1}


@JFinal  


评论区

JFinal

2018-07-12 21:31

在 mysql 下, 主键要设置为自增主键

112313

2018-07-16 18:47

@JFinal 设置自增主键了,但是还是不好使。不知道是什么原因,结果返回的值就是我set的字段{comment_content:3123, comment_name:zhangsan, comment_time:2018-07-12 21:05:38, study_play_id:1},想返回ID是不是 需要加上set("id", id)才能在返回中获取到id值?

JFinal

2018-07-16 22:17

@112313 只要设置了自增主键,主键是自动生成的,并且可以在 save() 方法调用以后,通过 getId() 方法得到的

这个是我天天都在用的,绝对没有问题的

在首页下载 jfinal demo,里面有一个 BlogController,找到其中的 blog.save() 代码,然后在后面添加一行:
Integer id = blog.getId();
会就发现自增生成的主键可以获取到

112313

2018-07-18 16:19

@JFinal 好了,谢谢波总,发现是之前写的自动创建模板的问题,还有一个问题sql模板如何动态的传表名?

JFinal

2018-07-18 17:24

@112313 通过往 getSqlPara 方法中传入参数即可,表名可以通过 model._getTable().getName() 获取到

热门反馈

扫码入社