mybatis入門:
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAzNvwVZ2x2bzNXak9CX90TQNNkRrFlQKBTSvwFbslmZvwFMwQzLcVmepNHdu9mZvwFVywUNMZTY18CX052bm9CX10kaNBTUE10MFpHW4Z0MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2LcRHelR3LcJzLctmch1mclRXY39TMycTMyITMwIDNxgDM4EDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
“#{}” 和“${}”的差別
mybatis基礎入門“#{}” 和“${}”的差別
Mapper代理的四個條件:
Mybatis分别向MySQL和Oracle中插入資料傳回主鍵問題總結
一.MYSQL:
1、在映射檔案中配置(本例中是user.xml檔案):
注:方法一,必須是在能夠支援主鍵自增的資料庫
通過修改sql映射檔案,可以将mysql自增主鍵傳回:
添加selectKey實作将主鍵傳回
keyProperty:傳回的主鍵存儲在pojo中的哪個屬性
order:selectKey的執行順序,是相對與insert語句來說,由于mysql的自增原理執行完insert語句之後才将主鍵生成,是以這裡selectKey的執行順序為after
resultType:傳回的主鍵是什麼類型
LAST_INSERT_ID():是mysql的函數,傳回auto_increment自增列新記錄id值。
2、在資料庫連接配接資訊屬性檔案中配置(db.properties):
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql:///mybatis?characterEncoding=utf-
jdbc.username=root
jdbc.password=root
3、編寫測試代碼
@Test
public void addUser(){
SqlSession session = sqlSessionFactory.openSession();
User user = new User();
user.setUsername("張三");
user.setBirthday(new Date());
user.setAddress("北京");
user.setSex("1");
session.insert("addUser", user);
if (i>){
System.out.println(user.getId());
}
// mysql 是預設不送出的, 必須手動的送出,否則就會復原
session.commit();
session.close();
}
補:5.7.4Mysql使用 uuid實作主鍵
<insert id="insertUser" parameterType="cn.itcast.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”
需要增加通過select uuid()得到uuid值