• Spring Boot 整合 MyBatis


    前言

    现在业界比较流行的数据操作层框架 MyBatis,下面就讲解下 Springboot 如何整合 MyBatis,这里使用的是xml配置SQL而不是用注解。主要是 SQL 和业务代码应该隔离,方便和 DBA 校对 SQL。

    我的Git

    https://github.com/JasperZXY/TestSpringCloud/tree/master/boot-feature

    由于我很多功能放在同一个项目里面,所以代码看起来没有那么清晰,不过将就看还是可以的。

    我的项目结构

    src/
     +- main/
         +- java/
            +- zxy.demo.springboot.mybatis
    			 +- entity
    		     +- dao
    		     +- web
    		     |- MainApplicion.java
         +- resources/
    			 +- mapper
    			 |- application.properties
             
    

    数据库准备

    数据库用的是MySQL

    CREATE DATABASE test_spring_boot;
    
    CREATE TABLE `user` (
      `id` int(11) NOT NULL COMMENT '主键',
      `name` varchar(64) NOT NULL COMMENT '姓名',
      `birthday` date DEFAULT NULL COMMENT '生日',
      `address` varchar(256) DEFAULT NULL COMMENT '地址',
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    

    mybatis-generator

    如果没有mybatis-generator,可以下载一个。
    mybatis-generator的下载地址

    使用mybatis-generator工具生成相关文件,实体对象、dao接口、xml文件。

    pom.xml

    添加必要的依赖

    <properties>
    	<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    	<java.version>1.8</java.version>
    	<mybatis-spring-boot.version>1.2.0</mybatis-spring-boot.version>
    	<mysql-connector.version>5.1.39</mysql-connector.version>
    </properties>
    
    <dependencies>
    	<dependency>
    		<groupId>org.springframework.boot</groupId>
    		<artifactId>spring-boot-starter-web</artifactId>
    	</dependency>
    	<dependency>
    		<groupId>org.mybatis.spring.boot</groupId>
    		<artifactId>mybatis-spring-boot-starter</artifactId>
    		<version>${mybatis-spring-boot.version}</version>
    	</dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>${mysql-connector.version}</version>
        </dependency>
    </dependencies>
    

    application.properties

    打开 application.properties 文件, 修改相应的数据源配置,比如数据源地址、账号、密码等,如下

    spring.datasource.url=jdbc:mysql://localhost:3306/test_spring_boot?useUnicode=true&characterEncoding=utf8
    spring.datasource.username=root
    spring.datasource.password=123456
    spring.datasource.driver-class-name=com.mysql.jdbc.Driver
    mybatis.typeAliasesPackage=zxy.demo.springboot.boot_feature.entity
    mybatis.mapperLocations=classpath:mapper/*.xml
    

    注意根据自己的实现项目目录进行相应的修改。

    • mybatis.typeAliasesPackage:为实体对象所在的包,跟数据库表一一对应
    • mybatis.mapperLocations:mapper文件的位置

    dao

    需要配置dao文件,也即操作数据表的接口。

    通过@MapperScan注解进行dao文件的扫描,如下

    // MyBatis 支持
    @MapperScan("zxy.demo.springboot.mybatis.dao")
    @SpringBootApplication
    public class MainApplicion {
    
    	public static void main(String[] args) throws Exception {
    		SpringApplication.run(MainApplicion.class, args);
    	}
    
    }
    

    controller

    @RequestMapping("user")
    @RestController
    public class UserController {
    	@Autowired
    	private UserMapper userMapper;
    	
    	@GetMapping("/list/all")
    	public Object listAll() {
    		return userMapper.selectByExample(new UserExample());
    	}
    
    }
    

    运行

    右键运行 Application 应用启动类的 main 函数,然后在浏览器访问即可看到数据。

    http://localhost:8080/user/list/all
    
    [
    	{
    		id: 1,
    		name: "张三",
    		birthday: 1491667200000,
    		address: "深圳"
    	}
    ]
    

    与SpringMVC整合MyBatis的区别

    SpringMVC是通过xml进行配置,通过配置DataSource、SqlSessionFactoryBean、MapperScannerConfigurer来完成MyBatis的整合。
    而SpringBoot是通过application.properties配置数据源、实体bean包名、mapper文件位置和@MapperScan注解来配置扫描的dao路径,从而实现MyBatis的整合。

  • 相关阅读:
    java第一章到第四章
    Linux Foundation Secure Boot System Released
    linux下avr单片机开发:中断服务程序
    【LeetCode】Binary Tree Level Order Traversal II
    java 学习笔记4
    动手写快排
    [置顶] 在Ubuntu下实现一个简单的Web服务器
    mahout算法源码分析之Collaborative Filtering with ALS-WR (四)评价和推荐
    hdu 4758 Walk Through Squares
    MediaInfo源代码分析 2:API函数
  • 原文地址:https://www.cnblogs.com/powercto/p/6717874.html
Copyright © 2020-2023  润新知