0
点赞
收藏
分享

微信扫一扫

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

祈澈菇凉 2022-05-03 阅读 38

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拼接中使用通配符
需要注意注入问题

举报

相关推荐

0 条评论