您的位置:首页 > 编程语言 > Java开发

Spring Boot整合Mybatis持久层框架

2019-04-22 14:27 429 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/smallsadsad/article/details/89449401

 

概述

Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。

MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAOs)。

Spring Boot项目创建

官方网页创建:https://start.spring.io/

 

IntelliJ IDEA软件创建:

1.创建一个新项目,spring Initializr 

 

2.选择依赖+SpringBoot版本

3.创建项目

添加Mybatis

1.导入包

[code] <!--mybatis + 分页插件-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.1</version>
</dependency>
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper-spring-boot-starter</artifactId>
<version>1.2.4</version>
</dependency>
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.3</version>
</dependency>
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.5</version>
<scope>compile</scope>
<optional>true</optional>
</dependency>
<!--mybatis-->

2.定义Mapper接口的公共接口

[code]
import tk.mybatis.mapper.common.Mapper;
import tk.mybatis.mapper.common.MySqlMapper;

/**
* 继承自己的MyMapper
*/
public interface MyMapper<T> extends Mapper<T>, MySqlMapper<T> {
//TODO
//FIXME 特别注意,该接口不能被扫描到,否则会出错
}

3.添加配置

[code]mybatis.type-aliases-package=com.ranq.testmodel.mybatis.domain
mybatis.mapper-locations=classpath:mapper/*.xml
mapper.mappers=com.ranq.testmodel.mybatis.MyMapper
mapper.not-empty=false
mapper.identity=ORACLE
pagehelper.helperDialect=oracle
pagehelper.reasonable=true
pagehelper.supportMethodsArguments=true
pagehelper.params=count=countSql

4.编写generatorConfig.xml代码生成器文件

[code]<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">

<generatorConfiguration>
<context id="MysqlContext" targetRuntime="MyBatis3Simple" defaultModelType="flat">
<property name="beginningDelimiter" value="`"/>
<property name="endingDelimiter" value="`"/>

<plugin type="tk.mybatis.mapper.generator.MapperPlugin">
<property name="mappers" value="com.ranq.testmodel.mybatis.MyMapper"/>
</plugin>

<jdbcConnection driverClass="oracle.jdbc.driver.OracleDriver"
connectionURL="jdbc:oracle:thin:@localhost:1521:orcl"
userId="scott"
password="scott">
</jdbcConnection>

<!-- 对于生成的pojo所在包 -->
<javaModelGenerator targetPackage="com.ranq.testmodel.mybatis.domain" targetProject="src/main/java"/>

<!-- 对于生成的mapper所在目录 -->
<sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources"/>

<!-- 配置mapper对应的java映射 -->
<javaClientGenerator targetPackage="com.ranq.testmodel.mybatis.mapper" targetProject="src/main/java" type="XMLMAPPER"/>

<table tableName="dept" schema="scott"></table>
<table tableName="emp" schema="scott"></table>
</context>
</generatorConfiguration>

5.编写执行代码生成器运 3ff7 行Main函数代码

[code]
import org.mybatis.generator.api.MyBatisGenerator;
import org.mybatis.generator.config.Configuration;
import org.mybatis.generator.config.xml.ConfigurationParser;
import org.mybatis.generator.internal.DefaultShellCallback;

import java.io.File;
import java.net.URL;
import java.util.ArrayList;

public class GeneratorDisplay {

public void generator() throws Exception {
URL resource = this.getClass().getClassLoader().getResource("generatorConfig.xml");
ArrayList<String> warnings = new ArrayList<String>();
boolean overwrite = true;
//指定 逆向工程配置文件
File configFile = new File( resource.getFile());
ConfigurationParser cp = new ConfigurationParser(warnings);
Configuration config = cp.parseConfiguration(configFile);
DefaultShellCallback callback = new DefaultShellCallback(overwrite);
MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config,
callback, warnings);
myBatisGenerator.generate(null);

}

public static void main(String[] args) throws Exception {
try {
GeneratorDisplay generatorSqlmap = new GeneratorDisplay();
generatorSqlmap.generator();
} catch (Exception e) {
e.printStackTrace();
}

}
}

6.编写Mybatis扫描配置

[code]@Component
@MapperScan(basePackages = {"com.ranq.testmodel.mybatis.mapper"})
public class MybatisConfig {
}

7.编写Controller

[code]import com.ranq.testmodel.mybatis.mapper.EmpMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/emp")
public class EmpController {
@Autowired
private EmpMapper empMapper;
@GetMapping
public Object list(){
return empMapper.selectAll();
}
}

8.运行

9.访问http://localhost:8080/emp

 

 

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: