当前位置: 首页 > news >正文

个人主题网站设计唐山企业建网站

个人主题网站设计,唐山企业建网站,网络热词的利弊,凡科互动官网登录入口官方Mybatis主键自动生成 在MyBatis中#xff0c;允许设置名称为“useGeneratedKeys”参数存在3个位置#xff1a; 在xml映射器中设置useGeneratedKeys参数 在接口映射器中设置useGeneratedKeys参数 在settings元素中设置useGeneratedKeys参数 在不同位置设置的useGenerated…Mybatis主键自动生成 在MyBatis中允许设置名称为“useGeneratedKeys”参数存在3个位置 在xml映射器中设置useGeneratedKeys参数 在接口映射器中设置useGeneratedKeys参数 在settings元素中设置useGeneratedKeys参数 在不同位置设置的useGeneratedKeys参数最终结果相同但是影响范围不同。 官方的说法是该参数的作用是“允许JDBC支持自动生成主键需要驱动兼容”如何理解这句话的意思 其本意是说对于支持自动生成记录主键的数据库如MySQLSQL Server此时设置useGeneratedKeys参数值为true在执行添加记录之后可以获取到数据库自动生成的主键ID。 在xml映射器中配置useGeneratedKeys参数 !-- 插入数据:返回记录的id值 -- insert idinsertOneTest parameterTypeorg.x.Test useGeneratedKeystrue keyPropertyid keyColumnidinsert into test(name,descr,url,create_time,update_time) values(#{name},#{descr},#{url},now(),now()) /insertxml映射器中配置的useGeneratedKeys参数只会对xml映射器产生影响 在接口映射器中设置useGeneratedKeys参数 // 设置useGeneratedKeys为true返回数据库自动生成的记录主键id Options(useGeneratedKeys true, keyProperty id, keyColumn id) Insert(insert into test(name,descr,url,create_time,update_time) values(#{name},#{descr},#{url},now(),now())) Integer insertOneTest(Test test);注意 在接口映射器中设置的useGeneratedKeys参数会覆盖在元素中设置的对应参数值。 在settings元素中设置useGeneratedKeys参数 实际上在settings元素中设置useGeneratedKeys是一个全局参数但是只会对接口映射器产生影响对xml映射器不起效。 settings !-- 允许JDBC支持自动生成主键需要驱动兼容。 如果设置为true则这个设置强制使用自动生成主键尽管一些驱动不能兼容但仍可正常工作比如 Derby。 -- setting nameuseGeneratedKeys valuetrue / /settings此时在接口映射中添加记录之后将返回主键ID。 public interface TestMapper {// 受全局useGeneratedKeys参数控制添加记录之后将返回主键idInsert(insert into test(name,descr,url,create_time,update_time) values(#{name},#{descr},#{url},now(),now()))Integer insertOneTest(Test test); }但是请注意如果此时在接口映射器中又明确设置了useGeneratedKeys参数那么注解映射器中的useGeneratedKeys参数值将覆盖settings元素中设置的全局useGeneratedKeys参数值。 举个例子先在settings元素中设置全局useGeneratedKeys参数值为true再在接口映射器中设置useGeneratedKeys参数值为false添加记录之后将不能返回注解ID。 // 在接口映射器中设置的useGeneratedKeys参数值将会覆盖在settings元素中设置全局useGeneratedKeys参数值 Options(useGeneratedKeys false, keyProperty id, keyColumn id) Insert(insert into test(name,descr,url,create_time,update_time) values(#{name},#{descr},#{url},now(),now())) Integer insertOneTest(Test test);注意项 Mybatis 配置文件配置useGeneratedKeys 参数只针对 insert 语句生效默认为 false。且需要数据库支持自动生成主键 在INSERT语句中我们为可以自动生成auto-generated主键的列 STUD_ID 插入值。我们可以使用useGeneratedKeys和keyProperty属性让数据库生成auto_increment列的值并将生成的值设置到其中一个输入对象属性内如下所示 insert idinsertStudent parameterTypeStudent useGeneratedKeystrue keyPropertystudId INSERT INTO STUDENTS(NAME, EMAIL, PHONE) VALUES(#{name},#{email},#{phone}) /insert 这里STUD_ID列值将会被数据库自动生成(如mysql)并且生成的值会被设置到student对象的studId属性上。 但是有些数据库如Oracle并不支持AUTO_INCREMENT列其使用序列SEQUENCE来生成主键值。假设我们有一个名为my_seq的序列来生成SUTD_ID主键值。使用如下代码来生成主键 drop sequence my_seq; create sequence my_seq; insert idinsertStudent parameterTypeStudent selectKey keyPropertystudId resultTypeint orderBEFORE SELECT my_seq.nextval FROM DUAL /selectKey INSERT INTO STUDENTS(STUD_ID,NAME,EMAIL, PHONE) VALUES(#{studId},#{name},#{email},#{phone}) /insert 这里我们使用了子元素来生成主键值并将值保存到Student对象的studId 属性上。属性order“before”表示MyBatis将取得序列的下一个值作为主键值并且在执行INSERT语句之前将值设置到studId属性上。 注: SelectKey需要注意order属性像MySQL、SQLServer等一类支持自动增长类型的数据库中order需要设置为after才会取到正确的值。 像Oracle这样取序列的情况需要设置为before否则会报错。
http://www.zqtcl.cn/news/623708/

相关文章:

  • 做网站业务提成多少厦门十大装修公司排名榜
  • 为什么用开源建站wordpress rss 插件
  • 语文建设投稿网站南昌做网站的公司多不多
  • 石家庄网站建设的公司功能性质网站
  • 企业网站主页模板装饰公司名字起名大全
  • 马鞍山网站设计价格如何在微信公众号内部做网站
  • 申请网站建设经费的报告生态建设网站
  • 建网站要多少钱用自己的服务器河北工程大学网站开发成本
  • 宁波网站建站公司商务网站模块设计时前台基础设施建设不包括
  • 徐州免费网站制作怎么用阿里云服务器搭建wordpress
  • php猎奇源码 织梦新闻视频图片八卦娱乐趣事资讯门户网站模板html代码表格
  • 南通做网站优化哪家好网页策划书 网站建设定位
  • 防止访问网站文件夹绵阳 网站设计
  • 网页与网站的区别是什么东莞网站公司排名
  • 盐城市城乡和住房建设厅网站wordpress文章订阅
  • 济南网站优化wordpress文件上传到那个文件
  • 外贸网站租用外国服务器好还是自己装一个服务器好高质量外链网站
  • 珠海专门做网站成都到西安
  • 网站做1920px好吗长沙seo优化排名
  • 哈尔滨微信网站开发wordpress 视
  • wordpress 分享封面图片尺寸重庆官网优化乐育公司
  • dede手机网站更新受欢迎的昆明网站建设
  • 网站设计外包合同专做自驾游的网站
  • 网站建设服务预算游戏网站怎么赚钱
  • 怎么做网站关键词视频手机网页前端开发
  • 好网站具备条件网站建设外链
  • 青岛如何建立企业网站企业中国数据域名注册
  • 怎么看网站做的好不好南京h5 网站建设
  • 贵阳微信网站制作下列哪一项不属于电子商务网站建设
  • 有没有做电子名片的网站网络广告怎么投放