- 目录结构
application.properties文件 (sql8以上驱动要有cj,url要有时区)
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/mybatis_plus?serverTimezone=GMT%2B8&characterEncoding=utf-8
spring.datasource.username=root
spring.datasource.password=
#mybatis日志
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
mapper文件文件 (只需要继承BaseMapper即可)
package com.yixuan.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yixuan.entity.User;
public interface Mapper extends BaseMapper<User> {
}
DemoApplication文件(mapperScan用来扫描mapper,给spring管理)
package com.yixuan.demo;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
@MapperScan("com.yixuan.mapper")
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
User对象文件 (@Data 来自lombok,可以直接生成get,set方法)
package com.yixuan.entity;
import lombok.Data;
@Data
public class User {
private Long id;
private String name;
private Integer age;
private String email;
}
测试文件 (@Resource 按照名称来匹配,@Autowired 默认按照类型来匹配,跟着lamda表达式)
package com.yixuan.demo;
import com.yixuan.entity.User;
import com.yixuan.mapper.Mapper;
import org.apache.ibatis.logging.stdout.StdOutImpl;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import javax.annotation.Resource;
import java.util.List;
@SpringBootTest
class DemoApplicationTests {
@Resource
Mapper mapper;
@Test
void contextLoads() {
List<User> users = mapper.selectList(null);
users.forEach( System.out::println);
}
}
运行截图 (添加了sql日志,可以看到sql执行过程,更好的了解由来)
说明:与spring boot整理mybatis有以下优点:
1、省去了Mapper.xml文件。
2、省去了写sql,复杂情况下还是省略不了。
总而言之,代码简化了很多,相比之下mybatis plus还有很多优点,可以看我的其他博客。