MyBatis+Plus接触案例(实现CRUD)

这一篇文章主要写实现增删改查的基本方法.

在这个框架里, 方法放在controller文件中, 相当于servlet; mapper 相当于dao的实现类; 而sql语句放在mappers文件夹的xml文件之中;

连接关系上, 参考上面的"MyBatis的处理流程图". 用文字表述如下:

(一)  controller类

controller文件中, 通过 Autowired标签将mapper实体化, 从而能够使用dao中封装的方法来实现功能.

注意

@RestController

@Slf4j

两个标签不能少.

​
@RestController
@Slf4j
​
public class TestController {
​
    @Autowired(required = false)
    private UserDAO dao;
    
    @RequestMapping("/login")
    public String login(String userName,String password){
        User login = dao.login(userName, password);
        if (login != null){
            return "登录成功!";
        }else {
            return "登录失败!";
        }
    }
    
       @RequestMapping("/insertUser")
    public int insertUser(){
        int count = dao.insert(new User(3L,"tom2","123"));
        return count;
    }
​
    @RequestMapping("/showAllUser")
    public List<User> showAllUser(){
        List<User> users = dao.selectList(null);
        return users;
    }
​
    @RequestMapping("/select")
    public User t4(){
        User user = dao.selectById("1");
        return user;
    }
​
    @RequestMapping("/update")
    public int t5(){
        int mark = dao.updateById(new User(2L, "mark", "123"));
        return mark;
    }
    @RequestMapping("/deleteIds")
    public int t6(){
        int i = dao.deleteBatchIds(Arrays.asList(4L, 5L, 6L));
        return i;
    }
    @RequestMapping("/deleteByid")
    public int t7(){
        int count = dao.deleteById(2L);
        return count;
    }
}

一次删除多个内容, 使用dao.deleteBatchIds(Arrays.asList())方法.

(二)  dao类

dao文件在这里是一个interface接口, 继承了BaseMapper<实体类> 类, dao文件中放定义的方法.

那么会有一个疑问, 方法中的 具体内容我们没有写, 但是功能却能实现?

其实我们还需要写sql语句. 但实际上想要实现的功能, 除了sql语句外, 就是对结果进行模板化的判断. 在这个企业级框架中, 这些都被处理了, 于是我们只需要写"sql语句", "方法的壳儿", 并搭建起来调用方法的结构就可以了.

package demo.dao;
​
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import demo.entity.User;
​
public interface UserDAO extends BaseMapper<User> {
    public User login(String userName,String password);
    public int addUser(User user);
    public int updateUser(User user);
}

(三) dao和xml文件的连接

在这个框架中, sql语句写在xml文件里, 文件命名例如UserMapper.xml, 在这里进行sql语句和方法所传参数的拼接.

注意: namespace属性定位dao类的相对位置; 方法的返回值如果是实体类, 需要手动写实体类的位置, 即 resultType属性.

<!--以下是UserMapper.xml的具体内容-->
​
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
​
<mapper namespace="demo.dao.UserDAO">
    <select id="login" resultType="demo.entity.User">
        select * from t_user where user_name = #{userName} and password = #{password}
    </select>
​
    <insert id="addUser">
        insert into t_user (id,user_name,password) values(#{id},#{userName},#{password})
    </insert>
    <update id="updateUser">
        update t_user set user_name=#{userName}, password = #{password} where id =#{id};
    </update>
    
    <delete>
    
    </delete>
</mapper>

其中 id="" 的部分, 是 与dao中的方法进行的匹配.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值