在使用 SpringBoot 操作数据库时一般都要使用 ORM 框架,目前主流的 ORM 框架有 MyBatis、MyBatis-plus、Jpa 等。
集成 MyBatis 框架
本例中演示如何通过 SpringBoot 集成 MyBatis 框架,更加详细的 MyBatis 技术可以参照----MyBatis 入门到精通系列教程。
引入依赖
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.4.2</version>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.2.2</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.2.9</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
配置选项
server:
port: 8082
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/guanwei?serverTimezone=Asia/Shanghai&useSSL=false&allowPublicKeyRetrieval=true
username: root
password: guanwei
type: com.alibaba.druid.pool.DruidDataSource
application:
name: guanwei
mybatis:
config-location: classpath:/config.xml
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
mapper-locations: classpath:mapper/*.xml
书写代码
没有什么特别需要注意的情况,和过去学习 MyBatis 的写法一致。对于 CRUD 有兴趣的童鞋可以参考 --- MyBatis 入门到精通(三)。
集成 MyBatis-plus 框架
MyBatis-Plus (opens new window)(简称 MP)是一个 MyBatis (opens new window)的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。 官方网址。
1. 只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑。
2. 只需简单配置,即可快速进行 CRUD 操作,从而节省大量时间。
3. 热加载、代码生成、分页、性能分析等功能一应俱全。
引入依赖
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<!--截止目前版本是3.5.2-->
<version>最新版本</version>
</dependency>
配置选项
和 MyBatis 配置一样,如需要引入其他会单独说明。
环境搭建
在 bean、mapper 和 service 中有不同于 MyBatis 的搭建方式。
bean
@Data
public class Emp implements Serializable {
private Integer empNo;
private String ename;
private String job;
private Integer mgr;
private String hireDate;
private Double sal;
private Double comm;
private Integer deptNo;
private Integer empState;
}
mapper
@Mapper
public interface EmpMapper extends BaseMapper<Emp>{
}
service
接口
public interface EmpService extends IService<Emp>{
List<Emp> findAllEmp();
}
实现类
@Service
public class EmpServiceImpl extends ServiceImpl<EmpMapper,Emp> implements EmpService {
}
完成后,就可以通过测试类进行测试。