Mybatis学习之增、删、改、查(CRUD)

博主目前大三,一个编程菜鸟,写博客是为了记录自己的学习成长
如果文章有错误的地方,请指正!我们大家一起学习一起进步


注意本文所用的实例是基于以下文章,如有需要可以先去阅读。
Mybatis学习之第一个mybatis程序

前言

MyBatis 是一款优秀的支持定制化 SQL、存储过程以及高级映射的持久层框架。开发人员可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs映射成数据库中的记录,使得java操作数据库变得更加方便。


一、MyBatis select标签

在 MyBatis 中,select 标签是最常用也是功能最强大的 SQL 语言,用于执行查询操作。
select 示例语句如下。
要求:根据需id查询用户
我们首先在UserMapper接口添加getUserById()方法。
在这里插入图片描述
接着在UserMapper.xml中添加Select语句

<select id="getUserById" parameterType="int" resultType="asia.xiaojiang.pojo.User">
   select * from  user where id= #{id}
</select>

以上是一个 id 为 getUserById 的映射语句,参数类型为 string,返回结果类型为 User。
#{},相当于告诉 MyBatis 生成 PreparedStatement 参数。对于 JDBC,该参数会被标识为“?”。以上 SQL 语句可以使用 JDBC 实现

String sql = "select * from  user where id= ?";
PreparedStatement ps = conn.prepareStatement(sql);
 ps.setInt(1,id);(1,id);

以下是select标签常用属性
在这里插入图片描述
在test目录中测试

    @Test
    public void TestGetUserById(){
        SqlSession sqlSession = MybatisUtils.getSqlSession();
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        User user = mapper.getUserById(2);
        System.out.println(user);
        sqlSession.close();
    }

结果如下
在这里插入图片描述


二、MyBatis insert标签

我们首先在UserMapper接口添加方法。

   //    插入用户
    int addUser(User use);

接着在UserMapper.xml中添加insert语句

<!--    插入用户#{id},#{name},#{pwd}要与User里的对应-->
    <insert id="addUser" parameterType="asia.xiaojiang.pojo.User" >
        insert into user(id,name,pwd) value (#{id},#{name},#{pwd})
    </insert>

以下是Insert, Update 和 Delete 的属性
在这里插入图片描述在这里插入图片描述
在test目录中测试

    @Test
    public void addUser(){
        SqlSession sqlSession = MybatisUtils.getSqlSession();
        UserMapper user = sqlSession.getMapper(UserMapper.class);
        int rs = user.addUser(new User(4, "xiaojiang", "123"));

        if (rs >0) {
            System.out.println("提交成功");
        }
//        增、删、改需要提交事务
        sqlSession.commit();
        sqlSession.close();
    }

注意
Insert, Update 和 Delete要提交事务,数据库才能真的更改数据。

三、MyBatis update标签


我们首先在UserMapper接口添加方法。

 //    修改用户
    int updateUser(User user);

接着在UserMapper.xml中添加update语句

<<!--    修改-->
    <update id="updateUser" parameterType="asia.xiaojiang.pojo.User">
        UPDATE user set name =#{name},pwd =#{pwd} where id = #{id}
    </update>

在test目录中测试

   @Test
    public void updateUser(){
        SqlSession sqlSession = MybatisUtils.getSqlSession();
        UserMapper updateUser = sqlSession.getMapper(UserMapper.class);
        int rs  = updateUser.updateUser(new User(1, "姜", "888881"));
        if (rs >0) {
            System.out.println("修改成功 ");
        }
        sqlSession.commit();
        sqlSession.close();
    }

四、MyBatis delete标签


我们首先在UserMapper接口添加方法。

   //    删除
    int deleteUser(int id);

接着在UserMapper.xml中添加delete语句

<!--    删除-->
    <delete id="deleteUser" parameterType="int">
        delete from user where id=#{id}
    </delete>

在test目录中测试

  @Test
    public void deleteUser(){
        SqlSession sqlSession = MybatisUtils.getSqlSession();
        UserMapper deleteUser = sqlSession.getMapper(UserMapper.class);
        int i = deleteUser.deleteUser(4);
        sqlSession.commit();
        sqlSession.close();
    }


五、MyBatis Map使用

以插入数据为例
我们首先在UserMapper接口添加方法。

  int addUser1(Map<String,Object> map);

接着在UserMapper.xml中添加insert语句

<insert id="addUser1" parameterType="map" >
    insert into user(id,name,pwd) value (#{userid},#{username},#{userpwd})
</insert>

在test目录中测试

  @Test
    public void addUserMap(){
        SqlSession sqlSession = MybatisUtils.getSqlSession();
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        Map<String, Object> map = new HashMap<String,Object>();
        map.put("userid",5);
        map.put("username","哈哈哈");

        mapper.addUser1(map);
        sqlSession.commit();
        sqlSession.close();
    }

结束!!!

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xiaojiang满眼星辰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值