zoukankan      html  css  js  c++  java
  • springboot-2-整合myBatis及druid连接池

    整合mybatis

    1、引入mybatis的maven包

      <!-- Spring Boot Mybatis 依赖 -->
            <dependency>
                <groupId>org.mybatis.spring.boot</groupId>
                <artifactId>mybatis-spring-boot-starter</artifactId>
                <version>${mybatis-spring-boot}</version>
            </dependency>
    
            <!-- MySQL 连接驱动依赖 -->
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>${mysql-connector}</version>
            </dependency>
            <!-- 数据库连接池 -->
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>druid</artifactId>
                <version>1.0.5</version>
            </dependency>

    2、application.properties配置

    server.port=8089
    server.servlet.context-path=/first
    spring.profiles.active=dev
    
    #mybatis
    mybatis.typeAliasesPackage=com.example.springboot1.dao
    mybatis.mapperLocations=classpath:mapper/*.xml
    spring.datasource.url=jdbc:mysql://10.6.80.147:3306/j_test?useUnicode=true&characterEncoding=utf8
    spring.datasource.username=root
    spring.datasource.password=skSB@123456
    spring.datasource.driver-class-name=com.mysql.jdbc.Driver
    spring.datasource.max-idle=10
    spring.datasource.max-wait=10000
    spring.datasource.min-idle=5
    spring.datasource.initial-size=5

    3、mybatis配置文件

    mybatis-config.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE configuration
            PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
            "http://mybatis.org/dtd/mybatis-3-config.dtd">
    
    <configuration>
        <properties>
            <property name="dialect" value="mysql" />
        </properties>
        <settings>
            <!-- 这个配置使全局的映射器启用或禁用缓存。系统默认值是true,设置只是为了展示出来 -->
            <setting name="cacheEnabled" value="true" />
            <!-- 全局启用或禁用延迟加载。当禁用时,所有关联对象都会即时加载。 系统默认值是true,设置只是为了展示出来 -->
            <setting name="lazyLoadingEnabled" value="true" />
            <!-- 允许或不允许多种结果集从一个单独的语句中返回(需要适合的驱动)。 系统默认值是true,设置只是为了展示出来 -->
            <setting name="multipleResultSetsEnabled" value="true" />
            <!--使用列标签代替列名。不同的驱动在这方便表现不同。参考驱动文档或充分测试两种方法来决定所使用的驱动。 系统默认值是true,设置只是为了展示出来 -->
            <setting name="useColumnLabel" value="true" />
            <!--允许 JDBC 支持生成的键。需要适合的驱动。如果设置为 true 则这个设置强制生成的键被使用,尽管一些驱动拒绝兼容但仍然有效(比如
                Derby)。 系统默认值是false,设置只是为了展示出来 -->
            <setting name="useGeneratedKeys" value="false" />
            <!--配置默认的执行器。SIMPLE 执行器没有什么特别之处。REUSE 执行器重用预处理语句。BATCH 执行器重用语句和批量更新 系统默认值是SIMPLE,设置只是为了展示出来 -->
            <setting name="defaultExecutorType" value="SIMPLE" />
            <!--设置超时时间,它决定驱动等待一个数据库响应的时间。 系统默认值是null,设置只是为了展示出来 -->
            <setting name="defaultStatementTimeout" value="25000" />
        </settings>
        <plugins>
            <plugin interceptor="com.github.pagehelper.PageHelper">
                <property name="dialect" value="mysql" />
                <property name="offsetAsPageNum" value="true" />
                <property name="rowBoundsWithCount" value="true" />
                <property name="pageSizeZero" value="true" />
                <property name="reasonable" value="true" />
            </plugin>
        </plugins>
    </configuration>

    4、配置mapper扫描器

    springboot只需,在启动类上加注解

    @SpringBootApplication
    @MapperScan("com.example.springboot1.dao")
    @EnableCaching
    public class Springboot1Application {
    
        public static void main(String[] args) {
            SpringApplication.run(Springboot1Application.class, args);
        }
    
    }

    到这里配置就全部完成了,可以开始使用了

    5、dao层

    这里dao层我们就不用了传统的xml映射的方式了。用一下mybatis提供的@Mapper注解,这使得我们可以不用去写烦人的xml了。

    @Mapper
    @Component
    public interface StudentMapper {
        @Select("select * from student where name = #{name}")
        public Student find(String name);
    }
  • 相关阅读:
    JSP详细解析
    JSP详细解析
    JAVA设计模式之单例模式
    JAVA设计模式之单例模式
    SQLite – GLOB子句
    HEXO进阶打赏
    python常用模块
    猫头鹰的深夜翻译:核心JAVA并发一
    标准规范
    题解 P1951 【收费站_NOI导刊2009提高(2)】
  • 原文地址:https://www.cnblogs.com/yinjing/p/11166556.html
Copyright © 2011-2022 走看看