Mybatis-Plus的配置
1.Maven插件
velocity-engine-core是mybatis-plus自动生成代码所依赖的模板(不用自动生成代码功能可不用)
<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.0.6</version> </dependency> <dependency> <groupId>org.apache.velocity</groupId> <artifactId>velocity-engine-core</artifactId> <version>2.2</version> <a>本文来源gao*daima.com搞@代#码&网6</a> </dependency>
2.application.properties配置
和普通mysql配置相同,没有额外配置
#mysql 连接配置 spring.datasource.url=jdbc:mysql://localhost:3306/mybatis?useSSL=false&serverTimezone=UTC spring.datasource.username=root spring.datasource.password=password spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
3.Mapper相关注解
@MapperScan中直接mapper文件所在的package
@SpringBootApplication @EnableTransactionManagement @EnableEurekaClient @MapperScan("com.example.demo.dao") public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } }
4.创建数据库表
略
5.创建JavaBean(推荐使用Lombok插件方式) – Model层
@Data @TableName("area") @ToString(callSuper=true, includeFieldNames=true) @AllArgsConstructor @NoArgsConstructor public class Area implements Serializable{ private static final long serialVersionUID = 1L; private String id; private String name; private int sort; }
6.创建Mapper – DAO层
只有自定义SQL时,mapper中才有内容, 使用mybatis-plus自带CRUD语句或者构造器拼接语句时, mapper通常为空
public interface AreaMapper extends BaseMapper<Area> { //通过mybatis-plus提供的注解,直接自定义SQL @Select("select name from area where sort > ${sort}") List<String> getBySort2(@Param("sort")int sort); }
8.创建逻辑接口 – Service层
public interface IAreaService { public Area getById(String id); public List<Area> selectAll(); public int updateByPrimaryKeySelective(Area record); public int deleteByPrimaryKey(String id); public int insertSelective(Area record); public List<Area> getBySort(); public List<String> getBySort2(int sort); }
9.创建逻辑类 – Service层
Mybatis-Plus使用SQL的3种常见方法:
a. 使用mybatis-plus自带CRUD方法: 直接用mapper的自带方法
b. 使用mybatis-plus提供的条件构造器,拼接where条件
c. 使用@Select,@Update等注解, 自己写SQL+参数
@Service public class AreaServiceImpl implements IAreaService { @Autowired public AreaMapper areaMapper; //使用mybatis-plus自带CRUD方法 @Override public Area getById(String id) { return areaMapper.selectById(id); } @Override public List<Area> selectAll() { return areaMapper.selectList(null); } @Override @Transactional public int updateByPrimaryKeySelective(Area record) { return areaMapper.updateById(record); } @Override public int deleteByPrimaryKey(String id) { return areaMapper.deleteById(id); } @Override public int insertSelective(Area record) { return areaMapper.insert(record); } //使用mybatis-plus提供的条件构造器,拼接条件 @Override public List<Area> getBySort(){ QueryWrapper<Area> queryWrapper = new QueryWrapper<>(); queryWrapper.lambda().gt(Area::getSort, 40) .lt(Area::getSort, 80); return areaMapper.selectList(queryWrapper); } //通过mybatis-plus提供的注解,直接自定义SQL(定义在mapper中) @Override public List<String> getBySort2(int sort){ return areaMapper.getBySort2(sort); } }