mybatis框架入门程序:演示通过mybatis实现数据库的插入操作中实现返回结果的获取...
1.mybatis實現數據庫的插入操作可以查看https://www.cnblogs.com/wyhluckdog/p/10149895.html這篇博文,這里面的插入操作沒有返回結果,所以這篇博文就實現插入的返回。
2. 有兩個方式可以獲取返回結果:
(1)主鍵是自增類型的;
(2)主鍵是字符串類型的;
3. 自增主鍵返回
通過修改User.xml映射文件,可以將mysql自增主鍵返回:
<!-- 自增主鍵返回 --><insert id="insertUser" parameterType="com.huida.po.User"><!-- selectKey將主鍵返回,需要再返回 --><!-- keyProperty:將返回的主鍵放入傳入參數的id中保存。也就是最后的結果通過id保存起來order:當前函數相對于insert語句的執行順序,在insert前執行的是before,在insert之后執行的是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:將返回的主鍵放入傳入參數的id中保存。也就是最后的結果通過id保存起來
order:當前函數相對于insert語句的執行順序,在insert前執行的是before,在insert之后執行的是after。
resultType:id的類型
LAST_INSERT_ID():是mysql的函數,返回auto_increment自增列新記錄id值。
4.使用uuid實現返回之間(當主鍵是字符串的時候使用這種方式)
通過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.測試代碼(針對的是主鍵是自增類型的):
@Testpublic void testInsertUser() throws Exception{//通過流將核心配置文件讀取進來InputStream inputStream=Resources.getResourceAsStream("config/SqlMapConfig.xml");//通過核心配置文件輸入流來創建工廠SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(inputStream);//通過工廠創建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);//一定要提交事務,做查找的時候可以不用提交事務,但是增刪改必須要提交事務。//提交事務 mybatis會自動開啟事務,但是它不知道何時提交,需要手動提交事務 openSession.commit();System.out.println(user);//關閉資源 openSession.close();//factory沒有close(),因為session關閉之后,factory也就關閉了。}這里要注意的是insert返回結果存到id中,id通過事務的提交傳到user中,從而使user中的id值為數據庫插入后的最后的id值。我們要想查看返回的主鍵值不能直接輸出insert返回的id值,而是通過User來查看。
6.單元測試的執行結果:
可以看到我們的id值現在是32。
?
轉載于:https://www.cnblogs.com/wyhluckdog/p/10150222.html
總結
以上是生活随笔為你收集整理的mybatis框架入门程序:演示通过mybatis实现数据库的插入操作中实现返回结果的获取...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 从 Netflix 到 Spring C
- 下一篇: 以 B 站为例,聊聊站内消息系统的设计