zoukankan      html  css  js  c++  java
  • Spring Boot Mybatis整合

            Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。

    特点

    1. 轻松创建独立的Spring应用程序
    2. 嵌入的Tomcat、jetty等web容器,无需部署WAR文件
    3. 提供一系列的“starter” 来简化的Maven配置
    4. 开箱即用,尽可能自动配置Spring

    环境搭建

    用IDEA创建一个新项目File-->New Project-->Spring Initializr

    Next-->填写Group和Artifact

    Next-->选择项目需要的依赖

    Next-->填写完项目名称和选择项目位置之后点击Finish

    等待编译完成,运行,出现如下图说明搭建成功

    完善一下目录结构:

    创建一个Hello World Controller作为项目的入口

    1 @Controller
    2 @EnableAutoConfiguration
    3 public class HelloWorld {
    4     @RequestMapping("/")
    5     @ResponseBody
    6     String home(){
    7         return "Hello World!";
    8     }
    9 }

    运行http://localhost:8080/出现

    JDBC连接数据库

    项目不使用application.properties文件 而使用更加简洁的application.yml文件: 
    将原有的resource文件夹下的application.properties文件删除,创建一个新的application.yml配置文件, 
    文件的内容如下:

    server:
        port: 9091
    spring:
        datasource:
            url: jdbc:mysql://127.0.0.1:3306/test?useSSL=false&characterEncoding=UTF-8
            password: root
            username: root
            driver-class-name: com.mysql.jdbc.Driver
            type: com.alibaba.druid.pool.DruidDataSource
    mybatis:
        type-aliases-package: com.example.demo.model
        mapper-locations: classpath:mappers/*.xml
    application.yml

    pom.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
    
        <groupId>com.example</groupId>
        <artifactId>springbootdemo</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <packaging>jar</packaging>
    
        <name>springbootdemo</name>
        <description>Demo project for Spring Boot</description>
    
        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.0.3.RELEASE</version>
            <relativePath/> <!-- lookup parent from repository -->
        </parent>
    
        <properties>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
            <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
            <java.version>1.8</java.version>
        </properties>
    
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-aop</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-jdbc</artifactId>
            </dependency>
            <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>1.3.2</version>
            </dependency>
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>druid</artifactId>
                <version>1.1.8</version>
            </dependency>
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>fastjson</artifactId>
                <version>1.2.47</version>
            </dependency>
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <scope>runtime</scope>
            </dependency>
            <!--Mybatis逆向生成 -->
            <dependency>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <version>1.3.5</version>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
            </dependency>
        </dependencies>
    
        <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
    
            </plugins>
        </build>
    
    
    </project>
    pom.xml

    使用mybatis generator 自动生成代码:/src/main/resources/generator/generatorConfig.xml

    <?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="DB2Tables" targetRuntime="MyBatis3">
            <commentGenerator>
                <property name="suppressAllComments" value="true"/>
            </commentGenerator>
    
            <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                            connectionURL="jdbc:mysql://127.0.0.1:3306/test?useSSL=false&amp;characterEncoding=UTF-8"
                            userId="root"
                            password="root">
            </jdbcConnection>
    
            <!-- 实体类生成位置 -->
            <javaModelGenerator targetPackage="com.example.demo.model" targetProject=".srcmainjava">
                <property name="enableSubPackages" value="true" />
                <property name="trimStrings" value="true" />
            </javaModelGenerator>
    
            <!-- Mappers 文件生成位置 -->
            <sqlMapGenerator targetPackage="mappers"  targetProject=".srcmain
    esources">
                <property name="enableSubPackages" value="true" />
            </sqlMapGenerator>
    
            <!-- 接口生成位置 -->
            <javaClientGenerator type="XMLMAPPER" targetPackage="com.example.demo.mapper"  targetProject=".srcmainjava">
                <property name="enableSubPackages" value="true" />
            </javaClientGenerator>
    
            <!-- 生成表目录 -->
    
            <table tableName="ie_green_indexsystemtable" schema="ie_green_indexsystemtable" domainObjectName="GreenIndexSystem" enableUpdateByExample="false" enableSelectByExample="false" enableDeleteByExample="false" enableCountByExample="false" enableUpdateByPrimaryKey="false"
            enableDeleteByPrimaryKey="false" enableInsert="false">
            </table>
        </context>
    </generatorConfiguration>
    generatorConfig.xml

    Mybatisgenerator

    public class MybatisGenerator {
        public static void main(String[] args) throws Exception{
            generator("D:\springbootdemo\src\main\resources\generator\generatorConfig.xml");
        }
    
        public static void generator(String path) throws Exception{
            List<String> warnings = new ArrayList<String>();
            boolean overwrite = true;
            File configFile = new File(path);
            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);
        }
    }
    MybatisGenerator

    运行Mybatisgenerator

    项目启动类

    @SpringBootApplication
    @MapperScan("com.example.demo.mapper")
    public class SpringbootdemoApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(SpringbootdemoApplication.class, args);
        }
    
    }

    Mapper

    public interface GreenIndexSystemMapper {
        GreenIndexSystem selectByPrimaryKey(Integer id);
        List<GreenIndexSystem> selectAll();
    }

    映射文件Mapper.xml

      <select id="selectAll" resultMap="BaseResultMap">
        select
        <include refid="Base_Column_List" />
        from ie_green_indexsystemtable
      </select>

    Service

    public interface GreenIndexService {
        List<GreenIndexSystem> selectAll();
    }

    ServiceImpl

    @Service(value = "greenService")
    public class GreenIndexServiceImpl implements GreenIndexService {
        @Autowired
        private GreenIndexSystemMapper greenIndexSystemMapper;
    
        @Override
        public List<GreenIndexSystem> selectAll() {
            return greenIndexSystemMapper.selectAll();
        }
    }

    Controller

    @RestController
    @RequestMapping("/green/")
    public class GreenIndexController {
        @Autowired
        private GreenIndexService greenService;
    
    
    @RequestMapping("getinfo")
    public List<GreenIndexSystem> getGreenAll(){return greenService.selectAll();}
    }

    运行启动类查询到结果

  • 相关阅读:
    redis 操作使用
    sublime 设置像IDE一样的 ctrl+鼠标左键 跳转到定义方法
    tensorflow进阶篇-5(反向传播2)
    tensorflow进阶篇-5(反向传播1)
    Linux后台进程管理以及ctrl+z(挂起)、ctrl+c(中断)、ctrl+(退出)和ctrl+d(EOF)的区别(转)
    mysql基础知识(3)
    mysql基础知识(2)
    tensorflow进阶篇-4(损失函数3)
    tensorflow进阶篇-4(损失函数2)
    mysql基础知识(1)
  • 原文地址:https://www.cnblogs.com/zqyw/p/9200543.html
Copyright © 2011-2022 走看看