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();
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值