tk.mybatis的使用

一、简介

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

我使用的maven依赖如下
    
        tk.mybatis
        mapper-spring-boot-starter
        2.0.3
    

    
        tk.mybatis
        mapper
        4.0.3
    

二、注意

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

tk.mybatis的使用_第1张图片

这里与普通的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 这里给出我的表

tk.mybatis的使用_第2张图片
tk.mybatis的使用_第3张图片

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的类,你只要点(.)一下不就出来一堆方法了吗!

tk.mybatis的使用_第4张图片

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对应上了

tk.mybatis的使用_第5张图片

你可能感兴趣的:(java)