tk.mybatis的使用

一、简介

tk.mybatis可以节省程序员的大部分时间,对于程序员来说关于一张表的操作无非就是增删改查,tk.mybatis提供了一些基本操作的SQL语句,比如说按表的主键查询、删除等基本操作。我们接下来就来介绍一些tk.mybatis的简单使用吧。
我使用的maven依赖如下
    <dependency>
        <groupId>tk.mybatis</groupId>
        <artifactId>mapper-spring-boot-starter</artifactId>
        <version>2.0.3</version>
    </dependency>

    <dependency>
        <groupId>tk.mybatis</groupId>
        <artifactId>mapper</artifactId>
        <version>4.0.3</version>
    </dependency>

二、注意

我使用的SpringBoot,因为使用了tk.mybatis,所以在SpringBoot启动类XXXApplication类里要使用tk.mybatis的@MapperScan,如下图所示

在这里插入图片描述

这里与普通的mybatis不同,一定要记得修改!!!

三、使用( 我这里使用的springboot+mybatis,反正就是Dao层、Service层、Controller层的操作,我就不详细解释了)

1.Entity层
1.1这里我随便写一个User类,使用tkmybaist时要给实体类注解,比如说@Table就是表名,@Id就是主键,@Column就是列。
这里值得注意的是表的列名和类的字段名的对比,比如说我表的字段名是user_id,那么映射成类的字段应该是userId,符合驼峰命名法!
import javax.persistence.Column;
import javax.persistence.Id;
import javax.persistence.Table;

@Table(name = "user")
public class User {
    @Id
    private Integer userId;

    @Column
    private String username;

    @Column
    private String password;


    public Integer getUserId() {
        return userId;
    }

    public void setUserId(Integer userId) {
        this.userId = userId;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
}
1.2 这里给出我的表

在这里插入图片描述
在这里插入图片描述

2.Dao层
2.1 这里我们要写一个BaseMapper来继承tk.mybatis提供的各种接口
import tk.mybatis.mapper.common.ConditionMapper;
import tk.mybatis.mapper.common.ExampleMapper;
import tk.mybatis.mapper.common.IdsMapper;
import tk.mybatis.mapper.common.MySqlMapper;

public interface BaseMapper<T> extends  tk.mybatis.mapper.common.BaseMapper<T>, MySqlMapper<T>, IdsMapper<T>, ConditionMapper<T>, ExampleMapper<T> {
}
2.2 然后让你写的Dao接口继承这个接口
import java.util.List;


public interface UserDao extends BaseMapper<User> {
    public User queryUserById(Integer id);
}
2.3 我这里为了方便解耦,所以写了DaoImpl,其实也可以不写
这里要用组合,不能用继承,不然你就要自己实现tk.mybatis提供的各种方法!!!
import org.springframework.stereotype.Component;


import javax.annotation.Resource;
import java.util.List;

@Component
public class UserDaoImpl{
    @Resource
    private UserDao userDao;

    public User queryUserById(Integer id){
        return userDao.selectByPrimaryKey(id);
    }
}
2.4 你看,我根本不要自己去实现,继承BaseMapper的类,你只要点(.)一下不就出来一堆方法了吗!

在这里插入图片描述

3.Service层
3.1 写个服务层接口
import java.util.List;

public interface UserService {

    public User queryUserById(Integer id);

}
3.2 再写个实现类
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;

@Service
public class UserServiceImpl implements UserService {
    @Resource
    private UserDaoImpl userDaoImpl;
   
    @Override
    public User queryUserById(Integer id) {
        return userDaoImpl.queryUserById(id);
    }
}
4.Controller层
4.1随手写个Controller类
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.annotation.Resource;
import java.util.List;

@Controller
public class UserController {
    @Resource
    private UserServiceImpl userService;

    @ResponseBody
    @RequestMapping("queryUserById")
    public User getUserById(Integer id){
        return userService.queryUserById(id);
    }
}
5 运行
5.1 我这里使用火狐浏览器(别问我为什么,因为他看JSON好看)
仔细看一下是不是表的user_id和类的userId对应上了

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值