1. 程式人生 > >Java框架學習_Mybatis(三)(增)增加使用者、拿到使用者主鍵

Java框架學習_Mybatis(三)(增)增加使用者、拿到使用者主鍵

原始碼:MybatisDemo增刪改查


1、增加使用者:
增加使用者是需要相資料庫提交的,所以增加了session.commit()語句,使用insert標籤

還是先修改user.xml,在後面增加語句

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<!-- 名稱空間,用於隔離sql語句,後續會有重要作用 -->
<mapper namespace="user"> <!-- id:sql語句的唯一標識 parameterType:入參的資料型別 resultType:返回結果的資料型別 #{}:佔位符,相當於?,裡面的東西隨便寫 ${value}:普通資料型別必須是value --> <insert id="MybatisInsert" parameterType="cn.nupt.pojo.User" > INSERT INTO `mybatis`.`user` ( `username`, `birthday`, `sex`, `address` ) VALUES ( #{username}, #{birthday}, #{sex}, #{address} ) ; </
insert
>
</mapper>

然後編寫測試類MybatisInsert:

package cn.nupt.mybatis.test;

import java.util.Date;

import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.junit.Test;

import cn.nupt.mybatis.utils.SqlSessionFactoryUtils;
import cn.nupt.
pojo.User; public class MybatisInsert { @Test public void testInsert() { SqlSessionFactory sessionFactory = SqlSessionFactoryUtils.getSqlSessionFactory(); SqlSession session = sessionFactory.openSession(); // String username, String sex, Date birthday, String address User user = new User(null, "吳彥祖", "男", new Date(), "南京"); session.insert("MybatisInsert", user); session.commit();//需要提交,也可以自動提交sessionFactory.openSession(true); session.close(); } }

2、拿到使用者主鍵:

有的時候級聯sql語句需要拿到自增的主鍵,比如id等等,前面我們設定的主鍵是null,但是輸出的時候需要拿到主鍵

方法:修改一下user.xml,在insert下面增加selectKey

<insert id="MybatisInsert" parameterType="cn.nupt.pojo.User" >

<!-- 
selectKey:主鍵返回
keyProperty:user中的主鍵
resultType:主鍵的資料型別
order:指定selectKey何時執行 
-->

<selectKey keyProperty="id" resultType="int" order="AFTER">
	select last_insert_id()
</selectKey>

或者,更簡單點的,直接在insert標籤上面加(這兩個是衝突的,上面的設定了,這個就沒用了):

<insert id="MybatisInsert" parameterType="cn.nupt.pojo.User"  useGeneratedKeys="true" keyProperty="id">


<!-- 
useGeneratedKeys:使用自增
keyProperty:配套使用,這裡是user的主鍵,就是id 
-->

輸出效果(就可以拿到我們插入的這一個使用者的主鍵了):
在這裡插入圖片描述