mybaits操作數據庫主鍵、修改、刪除

5.1. mysql自增主鍵返回
查詢idsql
SELECT LAST_INSERT_ID()
 
通過修改User.xml映射文件,可以將mysql自增主鍵返回:
如下添加selectKey 標籤
<!-- 保存用戶 -->
<insert id="saveUser" parameterType="cn.itcast.mybatis.pojo.User">
    <!-- selectKey 標籤實現主鍵返回 -->
    <!-- keyColumn:主鍵對應的表中的哪一列 -->
    <!-- keyProperty:主鍵對應的pojo中的哪一個屬性 -->
    <!-- order:設置在執行insert語句前執行查詢id的sql,孩紙在執行insert語句之後執行查詢id的sql -->
    <!-- resultType:設置返回的id的類型 -->
    <selectKey keyColumn="id" keyProperty="id" order="AFTER"
       resultType="int">
       SELECT LAST_INSERT_ID()
    </selectKey>
    INSERT INTO `user`
    (username,birthday,sex,address) VALUES
    (#{username},#{birthday},#{sex},#{address})
</insert>
 
LAST_INSERT_ID():mysql的函數,返回auto_increment自增列新記錄id值。
 
5.2. Mysql使用 uuid實現主鍵
需要增加通過select uuid()得到uuid
<!-- 保存用戶 -->
<insert id="saveUser" parameterType="cn.itcast.mybatis.pojo.User">
    <!-- selectKey 標籤實現主鍵返回 -->
    <!-- keyColumn:主鍵對應的表中的哪一列 -->
    <!-- keyProperty:主鍵對應的pojo中的哪一個屬性 -->
    <!-- order:設置在執行insert語句前執行查詢id的sql,孩紙在執行insert語句之後執行查詢id的sql -->
    <!-- resultType:設置返回的id的類型 -->
    <selectKey keyColumn="id" keyProperty="id" order="BEFORE"
       resultType="string">
       SELECT LAST_INSERT_ID()
    </selectKey>
    INSERT INTO `user`
    (username,birthday,sex,address) VALUES
    (#{username},#{birthday},#{sex},#{address})
</insert>
 
注意這裏使用的order是“BEFORE
 
 
5.3. 修改用戶
根據用戶id修改用戶名
使用的sql
UPDATE `user` SET username = '趙雲' WHERE id = 26
5.3.1. 映射文件
User.xml配置文件中添加如下內容:
<!-- 更新用戶 -->
<update id="updateUserById" parameterType="cn.itcast.mybatis.pojo.User">
    UPDATE `user` SET
    username = #{username} WHERE id = #{id}
</update>
 
5.3.2. 測試程序
MybatisTest中添加測試方法如下:
@Test
public void testUpdateUserById() {
    // 4. 創建SqlSession對象
    SqlSession sqlSession = sqlSessionFactory.openSession();
    // 5. 執行SqlSession對象執行更新
    // 創建需要更新的User
    User user = new User();
    user.setId(26);
    user.setUsername("關羽");
    user.setSex("1");
    user.setBirthday(new Date());
    user.setAddress("蜀國");
    sqlSession.update("updateUserById", user);
    // 需要進行事務提交
    sqlSession.commit();
    // 7. 釋放資源
    sqlSession.close();
}
5.4. 刪除用戶
根據用戶id刪除用戶
使用的sql
DELETE FROM `user` WHERE id = 47
5.4.1. 映射文件:
User.xml配置文件中添加如下內容:
    <!-- 刪除用戶 -->
    <delete id="deleteUserById" parameterType="int">
       delete from user where
       id=#{id}
    </delete>
5.4.2. 測試程序:
MybatisTest中添加測試方法如下:
   @Test
    public void testDeleteUserById() {
       // 4. 創建SqlSession對象
       SqlSession sqlSession = sqlSessionFactory.openSession();
       // 5. 執行SqlSession對象執行刪除
       sqlSession.delete("deleteUserById", 48);
       // 需要進行事務提交
       sqlSession.commit();
       // 7. 釋放資源
       sqlSession.close();
    }
發佈了42 篇原創文章 · 獲贊 5 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章