mybaits操作數據庫主鍵、修改、刪除
5.1. mysql自增主鍵返回
查詢id的sql
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();
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.