Java框架學習_Mybatis(三)(增)增加使用者、拿到使用者主鍵
阿新 • • 發佈:2019-01-10
原始碼: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
-->
輸出效果(就可以拿到我們插入的這一個使用者的主鍵了):