天天看點

mybatis基礎入門“#{}” 和“${}”的差別

mybatis入門:

mybatis基礎入門“#{}” 和“${}”的差別

“#{}” 和“${}”的差別

mybatis基礎入門“#{}” 和“${}”的差別

mybatis基礎入門“#{}” 和“${}”的差別

Mapper代理的四個條件:

mybatis基礎入門“#{}” 和“${}”的差別
mybatis基礎入門“#{}” 和“${}”的差別
mybatis基礎入門“#{}” 和“${}”的差別

Mybatis分别向MySQL和Oracle中插入資料傳回主鍵問題總結

一.MYSQL:

1、在映射檔案中配置(本例中是user.xml檔案):

注:方法一,必須是在能夠支援主鍵自增的資料庫

mybatis基礎入門“#{}” 和“${}”的差別

通過修改sql映射檔案,可以将mysql自增主鍵傳回:

mybatis基礎入門“#{}” 和“${}”的差別

添加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值

繼續閱讀