几种代码写法会有不同的id
返回值,下面我们一一分析。
首先一种插入写法,源码如下:
sysur .java
/** * 用户管理(sysur)实体类 * * @author chen * @since 2020-05-06 14:16:48 */@data@apimodel("用户管理")public class sysur implements rializable { private static final long rialversionuid = 993569543176442301l; /** * 编号 */ @i山东美女d private long id; /** * 用户名 */ private string name; /** * 昵称 */ private string nickname; /** * 头像 */ private string avatar; /** * 密码 */ private string password; /** * 加密盐 */ private string salt; /** * 邮箱 */ private string email; /** * 手机号 */ private string mobile; /** * 状态 0:禁用 1:正常 */ private object status; /** * 机构id */ private long deptid; /** * 创建人 */ private string createby; /** * 创建时间 */ private date createtime; /** * 更新人 */ private string lastupdateby; /** * 更新时间 */ private date lastupdatetime; /** * 是否删除 -1:已删除 0:正常 */ private object delflag;}
测试类
@test void inrt() { 感恩老师的图片 sysur sysur = new sysur(); sysur.tname("zhangsan3"); sysur.tnickname("张三3"); sysur inrt = sysurrvice.inrt(sysur); system.out.println(inrt); }
结果输出:
sysur(id=null, name=zhangsan3, nickname=心理学就业方向张三3, avatar=null, password=null, salt=null, email=null, mobile=null, status=null, deptid=null, createby=null, createtime=null, lastupdateby=null, lastupdatetime=null, delflag=null)
是的我们获取到的是id=null
,这显然不符合我们的预期。于是修改代码。只改测试类。比如输入id=0
。源码如下:
@test void inrt() { sysur sysur = new sysur(); sysur.tid(0l); sysur.tname("zhangsan6"); sysur.tnickname("张三6"); sysur inrt = sysurrvice.inrt(sysur); system.out.println(inrt); }
再次运行程序,控制台输出如下:
sysur(id=0, name=zhangsan4, nickname=张三4, avatar=null, password=null, salt=null, email=null, mobile=null, status=null, deptid=null, createby=null, createtime=null, lastupdateby=null, lastupdatetime=null, delflag=null)
嗯,好像确实输出了id=0
,符合我们的预期,但是真的是这样吗?我们看看数据库限制是什么样。
没错,我们的真实id
是38。这里就有问题了。查阅相关资料说是在实体类中添加@generatedvalue(strategy = generationtype.identity)
就可以了。于是我们照做。修改实体类如下:
/** * 用户管理(sysur)实体类 * * @author chen * @since 2020-05-06 14:16:48 */@data@apimodel("用户管理")public class sysur implements rializable { private static final long rialversionuid = 993569543176442301l; /** * 编号 */ @id @generatedvalue(strategy = generationtype.identity) private long id; /** * 用户名 */ private string name; /** * 昵称 */ private string nickname; /** * 头像 */ private string avatar; 网络电脑 /** * 密码 */ private string password; /2020跨年语录** * 加密盐 */ private string salt; /** * 邮箱 */ private string email; /** * 手机号 */ private string mobile; /** * 状态 0:禁用 1:正常 */ private object status; /** * 机构id */ private long deptid; /** * 创建人 */ private string createby; /** * 创建时间 */ private date createtime; /** * 更新人 */ private string lastupdateby; /** * 更新时间 */ private date lastupdatetime; /** * 是否删除 -1:已删除 0:正常 */ private object delflag;}
主要就是改了这里。ok,继续运行程序,结果如下:
sysur(id=0, name=zhangsan5, nickname=张三5, avatar=null, password=null, salt=null, email=null, mobile=null, status=null, deptid=null, createby=null, createtime=null, lastupdateby=null, lastupdatetime=null, delflag=null)
这里的id
还是0,什么鬼。再看看数据库。
明显不是0。所以这里不能设置id的属性。修改测试类。源码如下:
@test void inrt() { sysur sysur = new sysur(); sysur.tname("zhangsan6"); sysur.tnickname("张三6"); sysur inrt = sysurrvice.inrt(sysur); system.out.println(inrt); }
继续运行程序,结果如下:
sysur(id=40, name=zhangsan6, nickname=张三6, avatar=null, password=null, salt=null, email=null, mobile=null, status=null, deptid=null, createby=null, createtime=null, lastupdateby=null, lastupdatetime=null, delflag=null)
这次id=40
了,查看数据库。
很明显对上了。
到此这篇关于tk.mybatis 插入数据获取id问题的文章就介绍到这了,更多相关tk.mybatis 插入数据获取id内容请搜索www.887551.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持www.887551.com!
本文发布于:2023-04-03 23:29:29,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/2a37e074aa47e94e480a6ae11738bcce.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:tk.Mybatis 插入数据获取Id问题.doc
本文 PDF 下载地址:tk.Mybatis 插入数据获取Id问题.pdf
留言与评论(共有 0 条评论) |