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

02 MyBatis & Druid_java

 

工具生成 Model, DAO, XML

Model = 数据库中的 entity, 也就是数据库中的表.

DAO = Mapper, 对数据库中的持久化操作, 与 XML 相对应. xml(写SQL语句, 有一个id), DAO 针对这个 id 有对应的方法.

Mybatis Generator 和 MyBatis Plus 都可以做到. 我这里边用 MyBatis Plus 来举例: