Mybatis学习笔记(2)

CRUD(增删改查)操作及配置解析


提示:以下是本篇文章正文内容,下面案例可供参考

一、根据id查询用户

1.在UserMapper中添加对应方法

    //根据ID查询用户
    User getUserById(int id);

2.在UserMapper.xml中添加语句

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

3.UserDaoTest代码如下

    public void getUserById() {
        SqlSession sqlSession = MybatisUtils.getSqlSeesion();
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        User user = mapper.getUserById(1);
        System.out.println(user);
        sqlSession.close(); 
    }

二、删改查操作

1.在UserMapper中添加对应方法

    //    添加一个用户
    int addUser(User user);

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

    //    删除用户
    int deleteUser(User user);

2.在UserMapper.xml中添加语句

    <!--	添加用户信息-->
    <insert id="addUser" parameterType="com.pojo.User">
        insert into laptopmall.user(id, login_name, password, role, real_name, phone, address, email, head_img)
        values (#{id}, #{login_name}, #{password}, #{role}, #{real_name}, #{phone}, #{address}, #{email}, #{head_img});
    </insert>
    <!--    修改用户信息-->
    <update id="updateUser" parameterType="com.pojo.User">
        update laptopmall.user
        set real_name=#{real_name},
            password=#{password}
        where id = #{id};
    </update>
    <!--    删除指定用户-->
    <delete id="deleteUser" parameterType="com.pojo.User">
        delete
        from laptopmall.user
        where id = #{id};
    </delete>

3.UserDaoTest代码如下

    @Test
    public void addUser() {
        SqlSession sqlSession = MybatisUtils.getSqlSeesion();
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        int rs = mapper.addUser(new User(9, "Akatsukizz", "123456", 1, "bsg", "1112312312", "蟀", "123123@qq.com", "abc"));
        if (rs > 0) {
//            如果插入成功则提交事务
            sqlSession.commit();
            System.out.println("插入成功");
        }
        sqlSession.close();
    }

    @Test
    public void updateUser() {
        SqlSession sqlSession = MybatisUtils.getSqlSeesion();
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        User user = mapper.getUserById(9);
        user.setReal_name("bsg");
        user.setPassword("213233");
        int rs = mapper.updateUser(user);
        if (rs > 0) {
            sqlSession.commit();
            System.out.println("更新成功");
        }
        sqlSession.close();
    }
    @Test
    public void deleteUser(){
        SqlSession sqlSession=MybatisUtils.getSqlSeesion();
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        User user=mapper.getUserById(9);
        int rs=mapper.deleteUser(user);
        if (rs > 0) {
            sqlSession.commit();
            System.out.println("删除成功");
        }
        sqlSession.close();
    }

三.通过Map()来进行增删改查操作

Usermapper类:

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

Usermapper.xml:

    <insert id="addUser2" parameterType="map">
        insert into laptopmall.user(id, login_name, password)
        values (#{id}, #{login_name}, #{password})
    </insert>

UserDaoTest:

    @Test
    public void addUser2() {
        SqlSession sqlSession = MybatisUtils.getSqlSeesion();
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        Map<String, Object> map = new HashMap<String, Object>();
        map.put("id", "9");
        map.put("login_name", "芜湖");
        map.put("password", "asdzxc");
        int rs = mapper.addUser2(map);
        if (rs > 0) {
            sqlSession.commit();
            System.out.println("添加成功");
        }
        sqlSession.close();
    }

四.模糊查询

第1种:在Java代码中添加sql通配符
xml:

<select id="selectlike">
	select * from foo where bar like #{value}
</select>

java:

string wildcardname = "%smi%";
list<name> names = mapper.selectlike(wildcardname);

第2种:在sql语句中拼接通配符,但会引起sql注入
xml:

<select id=”selectlike”>
    select * from foo where bar like "%"#{value}"%"
</select>

java:

string wildcardname = "smi";
list<name> names = mapper.selectlike(wildcardname);

五、一些Tips

1. 进行删改查操作时一定要提交事务
2.IDEA的一些便携操作:
CTRL+ALT+L 整理代码
ALT+ENTER 智能辅助(在接口实现类中添加一个方法后,让该接口类也跟着生成,其他方法略)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值