Mybatis中对数据库的增删改查

由于前文已经介绍过Mybatis的环境搭建了,在这里就不再赘述了。还未搭建的朋友参考-创建第一个Mybatis工程

基本步骤

在接口(UserMapper.class)中新增接口方法 --> 配置映射文件(UserMapper.xml)

增删改查(单参数)

标签的属性

属性id对应接口中的方法名称
parameterType表示参数的类型,需要使用全限定名
resultType表示返回值类型,使用全限定名

新增

UserMapper.class

先在接口中新增方法,参数为User, 返回值为int

    //新增
    public int addUser(User user);

UserMapper.xml

配置文件中新增的标签为insert ,中间为sql语句。#{xxx} 表示从参数中取值,当参数类型为对象时,则会取对象中的相关属性
如此语句中的 #{id} ,表示 user.id

    <!-- 新增 需要提交事务 -->
    <insert id="addUser" parameterType="com.test.pojo.User">
        insert into user(id , name , pw) values(#{id} , #{name} , #{pw})
    </insert>

测试代码

由于后面几个的测试代码都差不多,就不再贴测试代码了。

    //新增的单元测试
    @Test
    public void testForAdd() {
        //获取SqlSession
        SqlSession sqlSession = MybatisUtil.getSqlSession();
        //获取接口实例
        UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
        //插入操作 并且返回操作是否成功的标识
        int result = userMapper.addUser(new User(1008 , "赵六" , "qwer"));
        if (result > 0) {
            System.out.println("插入成功。");
            //需要提交 删除 新增 更新数据都需要
            sqlSession.commit();
        }
        //关闭sqlSession
        sqlSession.close();
    }

删除

UserMapper.class

    //删除某条数据
    public int deleteUser(int id);

UserMapper.xml

配置文件中新增的标签为delete

    <!-- 更新 需要提交事务 -->
    <delete id="deleteUser" parameterType="int">
        delete from user where id=#{id}
    </delete>

更新

UserMapper.class

    //更新数据
    public int updateUser(User user);

UserMapper.xml

配置文件中新增的标签为update

    <!-- 更新 需要提交事务 -->
    <update id="updateUser" parameterType="com.test.pojo.User">
        update user set name=#{name},pw=#{pw} where id=#{id}
    </update>

查询

UserMapper.class

    //指定查询
    public User getUserById(int id);

UserMapper.xml

配置文件中新增的标签为select

    <!-- 带参数的指定查询 -->
    <select id="getUserById" parameterType="int" resultType="com.test.pojo.User">
        select * from user where id = #{id}
    </select>

多参数查询及模糊查询

可以发现我们的parameterType只能是一个参数,那当我们一个查询需要多个参数时呢?

多参数查询

比如我们要查询id为1001, 并且名字为张三的人。我们这个时候的参数类型可以填map 。使用键值对传递多个参数给xml

UserMapper.class

方法参数为Map

    //多参数查询
    public User getUserParams(Map<String , Object> map);

UserMapper.xml

配置文件中新增的标签为select,参数类型填Map

    <!-- 多参数查询 -->
    <select id="getUserParams" resultType="com.test.pojo.User" parameterType="map">
        select * from user where id = #{id} and name = #{name}
    </select>

测试代码

    //多参数测试
    @Test
    public void testForParams() {
        SqlSession sqlSession = MybatisUtil.getSqlSession();
        UserMapper userMapper = sqlSession.getMapper(UserMapper.class);

        //构建参数集合的Map 键需要与#{xxx} 一一对应
        Map<String , Object> paramsMap = new HashMap<String , Object>();
        paramsMap.put("id" , 1001);
        paramsMap.put("name" , "张三");

        User user = userMapper.getUserParams(paramsMap);
        System.out.println(user.toString());
        sqlSession.close();
    }

模糊查询

方法参数为Map

    //按照名字的模糊查询
    public List<User> getUserNameLike(Map<String , Object> map);

UserMapper.xml

配置文件中新增的标签为select,参数类型填Map

    <!-- 模糊查询 使用concat函数拼接 %xx% ,使用单引号 -->
    <select id="getUserNameLike" resultType="com.test.pojo.User" parameterType="map">
        select * from user where name like concat('%',#{name},'%')
    </select>

数据库里面的数据

在这里插入图片描述

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值