本篇在【8】Spring Boot系列之Mybatis 基础修改
(1)pom.xml 添加通用 mapper 依赖
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper-spring-boot-starter</artifactId>
<version>2.0.4</version>
</dependency>
(2)application.properties 添加配置
#mapper配置
#mappers 多个接口时逗号隔开
#mapper.mappers=tk.mybatis.springboot.util.MyMapper
mapper.mappers=com.example.demo.framework.base.dao.MyMapper
mapper.not-empty=false
mapper.identity=MYSQL
(3)启动类添加 @MapperScan 注解的引用包需要更改:
原先为:import org.mybatis.spring.annotation.MapperScan;
更改为:import tk.mybatis.spring.annotation.MapperScan;
@SpringBootApplication
@MapperScan("com.example.demo.dao")
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
(4)MyMapper.java, (2)中使用的 mapper.mappers 值,也可直接使用 tk.mybatis.springboot.util.MyMapper,则不需该类
package com.example.demo.framework.base.dao;
import tk.mybatis.mapper.common.ConditionMapper;
import tk.mybatis.mapper.common.Mapper;
import tk.mybatis.mapper.common.MySqlMapper;
public interface MyMapper<T> extends Mapper<T>, MySqlMapper<T>, ConditionMapper<T>{
}
UserModel.java 需要修改,如下所示
(5)UserModel.java
//不写@Table注解,默认表名为 user_model(驼峰形式)
package com.example.demo.model;
import javax.persistence.Column;
import javax.persistence.Table;
@Table(name = "t_user")
public class UserModel {
//不写,会默认字段名为 user_id
@Column(name="userId")
private Integer userId;
@Column(name="userName")
private String userName;
@Column(name="password")
private String password;
@Column(name="phone")
private String phone;
//省略getter和setter
}
(6)UserDao.java 修改为如下
package com.example.demo.dao;
import com.example.demo.framework.base.dao.MyMapper;
import com.example.demo.model.UserModel;
public interface UserDao extends MyMapper<UserModel>{
//不需写如下方法了,当然,如果需要写特殊的SQL,通用mapper中不存在,则依然需要写方法
//int insert(UserModel record);
//List<UserModel> selectUsers();
}
(7) UserMapper.xml 文件可以删除(除非需要特殊SQL,和UserDao.java 结合使用)。
注意:如果需要自定义SQL,则 UserMapper.xml 中的 id 不能与通用 mapper的方法相同,否则报错。(如 第【8】篇文章 insert 就重复了,必须删除,selectUsers 可以保留)
UserService.java 不需修改。
(8)UserServiceImpl.java
package com.example.demo.service.impl;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.example.demo.dao.UserDao;
import com.example.demo.model.UserModel;
import com.example.demo.service.UserService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
@Service(value = "userService")
public class UserServiceImpl implements UserService {
@Autowired
private UserDao userDao;
@Override
public int addUser(UserModel user) {
//使用的是通用Mapper的insert方法
return userDao.insert(user);
}
/**
* pageNum 开始页数
* pageSize 每页显示的数据条数
*/
@Override
public PageInfo<UserModel> findAllUser(int pageNum, int pageSize) {
PageHelper.startPage(pageNum, pageSize);
//使用通用Mapper的 selectAll 方法
List<UserModel> userModel = userDao.selectAll();
PageInfo<UserModel> result = new PageInfo<UserModel>(userModel);
return result;
}
}