日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mybatis框架入门程序:演示通过mybatis实现数据库的插入操作中实现返回结果的获取...

發(fā)布時(shí)間:2025/3/16 数据库 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mybatis框架入门程序:演示通过mybatis实现数据库的插入操作中实现返回结果的获取... 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

  

1.mybatis實(shí)現(xiàn)數(shù)據(jù)庫的插入操作可以查看https://www.cnblogs.com/wyhluckdog/p/10149895.html這篇博文,這里面的插入操作沒有返回結(jié)果,所以這篇博文就實(shí)現(xiàn)插入的返回。

2. 有兩個(gè)方式可以獲取返回結(jié)果:

  (1)主鍵是自增類型的;

  (2)主鍵是字符串類型的;

3. 自增主鍵返回

  通過修改User.xml映射文件,可以將mysql自增主鍵返回:

<!-- 自增主鍵返回 --><insert id="insertUser" parameterType="com.huida.po.User"><!-- selectKey將主鍵返回,需要再返回 --><!-- keyProperty:將返回的主鍵放入傳入?yún)?shù)的id中保存。也就是最后的結(jié)果通過id保存起來order:當(dāng)前函數(shù)相對(duì)于insert語句的執(zhí)行順序,在insert前執(zhí)行的是before,在insert之后執(zhí)行的是afterresultType:id的類型--><selectKey keyProperty="id" order="AFTER" resultType="java.lang.Integer">select LAST_INSERT_ID()</selectKey>insert into user(username,birthday,sex,address) values(#{username},#{birthday},#{sex},#{address});</insert>

  keyProperty:將返回的主鍵放入傳入?yún)?shù)的id中保存。也就是最后的結(jié)果通過id保存起來

  order:當(dāng)前函數(shù)相對(duì)于insert語句的執(zhí)行順序,在insert前執(zhí)行的是before,在insert之后執(zhí)行的是after。

  resultType:id的類型

  LAST_INSERT_ID():mysql的函數(shù),返回auto_increment自增列新記錄id值。

4.使用uuid實(shí)現(xiàn)返回之間(當(dāng)主鍵是字符串的時(shí)候使用這種方式)

  通過select uuid()得到uuid的值

<insert id="insertUser" parameterType="cn.huida.mybatis.po.User"><selectKey resultType="java.lang.String" order="BEFORE" keyProperty="id">select uuid()</selectKey>insert into user(id,username,birthday,sex,address) values(#{id},#{username},#{birthday},#{sex},#{address}) </insert>

  注意這里使用的order是“BEFORE

5.測(cè)試代碼(針對(duì)的是主鍵是自增類型的):

@Testpublic void testInsertUser() throws Exception{//通過流將核心配置文件讀取進(jìn)來InputStream inputStream=Resources.getResourceAsStream("config/SqlMapConfig.xml");//通過核心配置文件輸入流來創(chuàng)建工廠SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(inputStream);//通過工廠創(chuàng)建sessionSqlSession openSession=factory.openSession();//插入一條記錄User user=new User();user.setUsername("aaa");user.setBirthday(new Date());user.setSex("1");user.setAddress("qhd");System.out.println("--------------"+user.getId());int id=openSession.insert("test.insertUser", user);//一定要提交事務(wù),做查找的時(shí)候可以不用提交事務(wù),但是增刪改必須要提交事務(wù)。//提交事務(wù) mybatis會(huì)自動(dòng)開啟事務(wù),但是它不知道何時(shí)提交,需要手動(dòng)提交事務(wù) openSession.commit();System.out.println(user);//關(guān)閉資源 openSession.close();//factory沒有close(),因?yàn)閟ession關(guān)閉之后,factory也就關(guān)閉了。}

  這里要注意的是insert返回結(jié)果存到id中,id通過事務(wù)的提交傳到user中,從而使user中的id值為數(shù)據(jù)庫插入后的最后的id值。我們要想查看返回的主鍵值不能直接輸出insert返回的id值,而是通過User來查看。

6.單元測(cè)試的執(zhí)行結(jié)果:

可以看到我們的id值現(xiàn)在是32。

?

轉(zhuǎn)載于:https://www.cnblogs.com/wyhluckdog/p/10150222.html

總結(jié)

以上是生活随笔為你收集整理的mybatis框架入门程序:演示通过mybatis实现数据库的插入操作中实现返回结果的获取...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。