Mybatis基础增删改查实现、Map参数、模糊查询

本文详细介绍了如何使用MyBatis进行CRUD操作,包括选择查询、插入、更新和删除,并展示了如何通过接口方法、Mapper XML文件和测试用例实现这些操作。同时,讲解了使用Map作为参数进行操作的方法,以及如何处理模糊查询中的通配符注入问题。
摘要由CSDN通过智能技术生成

CRUD增删改查

select

<select id="getUserList" resultType="com.lms.pojo.User">
        select * from mysql.user
</select>

选择、查询语句:
键值对含义:
id:对应方法名
resultType:返回值类型
parameterType:参数类型

编写:
①编写接口方法

User getUserById(int id);

②编写mapper内的sql语句
注:若方法参数为类,由#{}传入的值可以直接对应类成员名称

    <select id="getUserById" resultType="com.lms.pojo.User" parameterType="int">
        select * from mysql.user where id = #{id};
    </select>

③测试

@Test
    public void getById() {
        //获得SqlSession对象
        SqlSession sqlSession = MybatisUtils.getSqlSession();
        //执行SQL
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);

        User user = mapper.getUserById(1);
        System.out.println(user);
        //关闭SqlSession
        sqlSession.close();
    }

insert

    <insert id="addUser" parameterType="com.lms.pojo.User">
        insert into mysql.user (id, name, pwd) values (#{id},#{name},#{pwd});
    </insert>

update

    <update id="updateUser" parameterType="com.lms.pojo.User">
        update mysql.user set name=#{name},pwd=#{pwd} where id = #{id};
    </update>

delete

    <delete id="deleteUser" parameterType="int">
        delete from mysql.user where id=#{id};
    </delete>

注意:增删改需要进行事务提交才能真正修改数据库。

		//提交事务
        sqlSession.commit();

Map

当实体类、数据库表的字段或参数过多,考虑使用Map
使用:
①接口方法

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

②Mapper:

    <insert id="addUserByMap" parameterType="map">
        insert into mysql.user (id, name, pwd) values (#{userId},#{userName},#{password});
    </insert>

③测试:

@Test
    public void InsertUserByMap() {
        SqlSession sqlSession = MybatisUtils.getSqlSession();

        UserMapper mapper = sqlSession.getMapper(UserMapper.class);

        HashMap<String, Object> map = new HashMap<String, Object>();
        map.put("userId", 3);
        map.put("password", 12345);
        map.put("userName", "san");
        mapper.addUserByMap(map);

        sqlSession.commit();

        sqlSession.close();
    }

Map传递参数:名称和Map的键对应取出即可。
对象传递参数:需要和类成员名称对应。
只有一个基本类型参数:可以直接用任何名称都可取。

模糊查询

①java代码执行时,传递通配符% %
②在sql拼接中使用通配符
需要注意注入问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

魔幻音

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

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

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

打赏作者

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

抵扣说明:

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

余额充值