MyBatis
MyBatis 是灵活的 SQL 映射, 不想 Hibrnate 是纯的 ORM, 个人还是比较写 SQL 语句, 不喜欢纯的 ORM.
首先引入 Maven 依赖.
<!-- mybatis -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency>
<!-- mysql -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
添加 mybatis 配置, 包括 DAO, Model, XML映射文件.
在 config 包下边创建一个 MybatisConfig.java
package com.example.demo.config; import org.apache.ibatis.session.SqlSessionFactory; import org.mybatis.spring.SqlSessionFactoryBean; import org.mybatis.spring.annotation.MapperScan; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.core.io.support.PathMatchingResourcePatternResolver; @Configuration @MapperScan("com.example.demo.**.dao") // 扫描DAO public class MybatisConfig { @Autowired private javax.sql.DataSource dataSource; @Bean public SqlSessionFactory sqlSessionFactory() throws Exception { SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean(); sessionFactory.setDataSource(dataSource); sessionFactory.setTypeAliasesPackage("com.example.demo.**.model"); PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver(); sessionFactory.setMapperLocations(resolver.getResources("classpath*:**/sqlmap/*.xml")); return sessionFactory.getObject(); } }
添加数据源, 在 application.yml 中
spring:
datasource:
driverClassName: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/mysql
username: root
password: root
工具生成 Model, DAO, XML
Model = 数据库中的 entity, 也就是数据库中的表.
DAO = Mapper, 对数据库中的持久化操作, 与 XML 相对应. xml(写SQL语句, 有一个id), DAO 针对这个 id 有对应的方法.
Mybatis Generator 和 MyBatis Plus 都可以做到. 我这里边用 MyBatis Plus 来举例: