• SpringBoot集成MyBatis


    Druid的优点

     DRUID是阿里巴巴开源平台上一个数据库连接池实现 是Java语言中最好的数据库连接池。它结合了C3P0、DBCP、PROXOOL等DB池的优点,同时加入了日志监控,可以很好的监控DB池连接和SQL的执行情况,可以说是针对监控而生的DB连接池(据说是目前最好的连接池,不知道速度有没有BoneCP快)。Druid能够提供强大的监控和扩展功能

    https://www.cnblogs.com/wuyun-blog/p/5679073.html

    1. 集成 Druid:

    创建项目:

     

    Starter POM(首先导入druid)

    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>druid-spring-boot-starter</artifactId>
        <version>1.1.6</version>
    </dependency>

    application.yml(直接复制修改即可)

    spring:
      datasource:
        druid:
          url: jdbc:mysql://ip:port/dbname?useUnicode=true&characterEncoding=utf-8&useSSL=false
          username: root
          password: 123456
          initial-size: 1
          min-idle: 1
          max-active: 20
          test-on-borrow: true
          driver-class-name: com.mysql.jdbc.Driver

    2. 集成 tk.mybatis

    我们使用 tk.mybatis 简化 mybatis 开发,所以我们在 pom 中仅添加 tk.mybatis 的 starter pom

    Starter POM

    <dependency>
        <groupId>tk.mybatis</groupId>
        <artifactId>mapper-spring-boot-starter</artifactId>
        <version>1.1.5</version>
    </dependency>
     
    <dependency>
        <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.46</version>
    </dependency>

    application.yml(在配置文件中添加mybatis的配置)

    mybatis:
     type-aliases-package: com.suchuanqi.spring.boot.mybatis.domain   
    mapper-locations: classpath:mapper/*.xml 

    创建 MyMapper 通用接口

    package com.suchuanqi.spring.boot.utils;
     
    import tk.mybatis.mapper.common.Mapper;
    import tk.mybatis.mapper.common.MySqlMapper;
     
    /**
     * 自己的 Mapper
     * 特别注意,该接口不能被扫描到,否则会出错所以他不能够和启动springboot的那个类在 同一个包下或者是子包
     * <p>Title: MyMapper</p>
     * <p>Description: </p>
    */
    public interface MyMapper<T> extends Mapper<T>, MySqlMapper<T> {
     
    }

    3集成 PageHelper

    我们使用 PageHelper 做数据库分页插件

    Starter POM

    <dependency>
        <groupId>com.github.pagehelper</groupId>
        <artifactId>pagehelper-spring-boot-starter</artifactId>
        <version>1.2.3</version>
    </dependency>

    4. MyBatis Maven Plugin 自动生成代码

    我们使用 MyBatis 的 Maven 插件来生成数据库访问代码

    POM

    <build>
        <plugins>
            <plugin>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <version>1.3.6</version>
                <configuration>
                    <configurationFile>${basedir}/src/main/resources/generator/generatorConfig.xml</configurationFile>
                    <overwrite>true</overwrite>
                    <verbose>true</verbose>
                </configuration>
                <dependencies>
                    <dependency>
                        <groupId>mysql</groupId>
                        <artifactId>mysql-connector-java</artifactId>
                        <version>${mysql.version}</version>
                    </dependency>
                    <dependency>
                        <groupId>tk.mybatis</groupId>
                        <artifactId>mapper</artifactId>
                        <version>3.4.4</version>
                    </dependency>
                </dependencies>
            </plugin>
        </plugins>
    </build>

    自动生成配置

    在 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>
    
        <properties resource="jdbc.properties"/>
    
    
    
        <context id="Mysql" targetRuntime="MyBatis3Simple" defaultModelType="flat">
    
            <property name="beginningDelimiter" value="`"/>
    
            <property name="endingDelimiter" value="`"/>
    
    
    
            <plugin type="tk.mybatis.mapper.generator.MapperPlugin">
    
                <property name="mappers" value="com.suchuanqi.spring.boot.utils.MyMapper"/>
    
            </plugin>
    
    
    
            <jdbcConnection
    
                    driverClass="${jdbc.driverClass}"
    
                    connectionURL="${jdbc.connectionURL}"
    
                    userId="${jdbc.username}"
    
                    password="${jdbc.password}">
    
            </jdbcConnection>
    
    
    
            <javaModelGenerator targetPackage="com.suchuanqi.spring.boot.mybatis.domain" targetProject="src/main/java"/>
    
    
    
            <sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources"/>
    
    
    
            <javaClientGenerator
    
                    targetPackage="com.suchuanqi.spring.boot.mybatis.mapper"
    
                    targetProject="src/main/java"
    
                    type="XMLMAPPER"/>
    
    
    
            <table tableName="%">
    
                <!-- mysql 配置 -->
    
                <generatedKey column="id" sqlStatement="Mysql" identity="true"/>
    
            </table>
    
        </context>
    
    </generatorConfiguration>

    数据源配置

    在 src/main/resources 目录下创建 jdbc.properties 数据源配置:

    jdbc.driverClass=com.mysql.jdbc.Driver
    jdbc.connectionURL=jdbc:mysql://ip:port/dbname?useUnicode=true&characterEncoding=utf-8&useSSL=false
    jdbc.username=root
    jdbc.password=123456

    生成代码

    mvn mybatis-generator:generate

     

    进行代码测试

    在test的包下进行测试:

     

    注意上图可能会报错是因为我们要在springboot启动的入口哪里要添加一个扫描器进行扫描的注解,如下所所示:

     

  • 相关阅读:
    软件需求阅读笔记二
    寒假小程序开发记录2
    软件需求阅读笔记一
    寒假小程序开发记录1
    软件工程概论课个人总结
    06大道至简阅读笔记
    golang算法——leetcode-46
    实验 5 Spark SQL 编程初级实践
    scala链接数据库Exception in thread "main" java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
    Error:(15, 103) value toDF is not a member of org.apache.spark.rdd.RDD[Employee] .map(attributes => Employee(attributes(0).trim.toInt, attributes(1), attributes(2).trim.toInt)).toDF()
  • 原文地址:https://www.cnblogs.com/chuanqi1995/p/11412145.html
Copyright © 2020-2023  润新知