• springboot整合mybatis使用阿里(阿里连接池)和xml方式


    源码地址:https://github.com/wuhongpu/springboot-mybatis.git

    1、在pom文件中引入相关依赖包

    <?xml version="1.0"?>
    <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <modelVersion>4.0.0</modelVersion>
      <groupId>zytl.zytrade.cloud</groupId>
      <artifactId>zytrade-sevice-mobile</artifactId>
      <version>0.0.1-SNAPSHOT</version>
      <name>zytrade-sevice-mobile</name>
      <url>http://maven.apache.org</url>
    <!--引入Springboot依赖包-->
     <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>1.5.6.RELEASE</version>
            <relativePath/> <!-- lookup parent from repository -->
        </parent>
      <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
      </properties>
      <dependencies>
        <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>3.8.1</version>
          <scope>test</scope>
        </dependency>
        <!--eureka依赖-->
        <dependency>
          <groupId>org.springframework.cloud</groupId>
          <artifactId>spring-cloud-starter-eureka</artifactId>
        </dependency>
        <!-- 监控生产环境模块 -->
        <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
         <!--支持Spring依赖包-->
        <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <!--支持springmvc包-->
        <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!--mybatis依赖包-->
        <dependency>
          <groupId>org.mybatis.spring.boot</groupId>
          <artifactId>mybatis-spring-boot-starter</artifactId>
          <version>1.3.0</version>
        </dependency>
        <!-- oracle驱动 -->
        <dependency>
          <groupId>org.oracle</groupId>
          <artifactId>oracle</artifactId>
          <version>11.2</version>
        </dependency>
        <!-- 阿里连接池-->
        <dependency>
          <groupId>com.alibaba</groupId>
          <artifactId>druid</artifactId>
          <version>1.0.18</version>
        </dependency>
        <!-- log4j2 riz日志包-->
         <dependency>
           <groupId>org.springframework.boot</groupId>
           <artifactId>spring-boot-starter-log4j2</artifactId>
         </dependency>
        <!-- gson驱动包-->
        <dependency>
          <groupId>com.alibaba</groupId>
          <artifactId>fastjson</artifactId>
          <version>1.2.16</version>
        </dependency>
      </dependencies>
    
    </project>

    2、配置文件application.yml

    mysql和阿里druid配置
    spring:
      application:
        name: zytrade-sevice-mobile    #指定应用的名称建议使用小写
      datasource:
        type: com.alibaba.druid.pool.DruidDataSource
        url: jdbc:oracle:thin:@192.168.1.98:1521:orcl
        #url: jdbc:mysql://localhost/test?useSSL=false&serverTimezone=UTC
        username: proOne
        password: proOne123
        #username: root
       #password: 123456
        #driver-class-name: com.mysql.jdbc.Driver
        driver-class-name: oracle.jdbc.driver.OracleDriver
        # 下面为连接池的补充设置,应用到上面所有数据源中
        # 初始化大小,最小,最大
        initialSize: 1
        minIdle: 3
        maxActive: 20
        # 配置获取连接等待超时的时间
        maxWait: 60000
        # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
        timeBetweenEvictionRunsMillis: 60000
        # 配置一个连接在池中最小生存的时间,单位是毫秒
        minEvictableIdleTimeMillis: 30000
        #validationQuery: select 'x'
        testWhileIdle: false
        testOnBorrow: false
        testOnReturn: false
        # 打开PSCache,并且指定每个连接上PSCache的大小
        poolPreparedStatements: true
        maxPoolPreparedStatementPerConnectionSize: 20
        # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
        filters: stat,wall,slf4j
        # 通过connectProperties属性来打开mergeSql功能;慢SQL记录
        connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
        # 合并多个DruidDataSource的监控数据
        useGlobalDataSourceStat: true
    
    # mybatis配置
    mybatis:
      mapper-locations: classpath*:/zytrade.service.mobile/*.xml

    3、启动类

    /**
     * @Author: wu
     * @Description:
     * @Date: Create in 11:19 2017/11/8
     * @Modified By:
     */
    @SpringBootApplication
    @EnableAutoConfiguration
    //@EnableDiscoveryClient
    @MapperScan("zytrade.service.mobile.dao")//接口扫描,如果此处不加@MapperScan注解必须在接口类上添加@Mapper注解表明这是一个接口扫描器
    
    
    public class MposApplication { public static void main(String[] args) { SpringApplication.run(MposApplication.class, args); } }

    4、阿里数据池配置类

    package zytrade.service.mobile.config;
    import com.alibaba.druid.pool.DruidDataSource;
    import org.springframework.boot.context.properties.ConfigurationProperties;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;

    import javax.sql.DataSource;

    @Configuration
    public class DruidDataSourceConfiguration { @Bean @ConfigurationProperties(prefix = "spring.datasource") public DataSource druidDataSource() { DruidDataSource druidDataSource = new DruidDataSource(); return druidDataSource; } // @Bean // public HttpMessageConverters fastJsonHttpMessageConverters(){ // FastJsonHttpMessageConverter fastConverter=new FastJsonHttpMessageConverter(); // FastJsonConfig fastJsonConfig=new FastJsonConfig(); // fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat); // fastConverter.setFastJsonConfig(fastJsonConfig); // HttpMessageConverter<?> converter = fastConverter; // return new HttpMessageConverters(converter); // } }

    2、

    package zytrade.service.mobile.config;
    import com.alibaba.druid.support.http.WebStatFilter;
    import javax.servlet.annotation.WebFilter;
    import javax.servlet.annotation.WebInitParam;

    @WebFilter(filterName="druidWebStatFilter",urlPatterns="/*", initParams={ @WebInitParam(name="exclusions",value="*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*")// 忽略资源 } ) public class DruidStatFilter extends WebStatFilter { }

    3

    package zytrade.service.mobile.config;
    import com.alibaba.druid.support.http.StatViewServlet;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.annotation.WebInitParam;
    @WebServlet(urlPatterns = "/druid/*", 
        initParams={
                @WebInitParam(name="allow",value="192.168.16.110,127.0.0.1"),// IP白名单 (没有配置或者为空,则允许所有访问)
                @WebInitParam(name="deny",value="192.168.16.111"),// IP黑名单 (存在共同时,deny优先于allow)
                @WebInitParam(name="loginUsername",value="admin"),// 用户名
                @WebInitParam(name="loginPassword",value="123"),// 密码
                @WebInitParam(name="resetEnable",value="false")// 禁用HTML页面上的“Reset All”功能
        })
    public class DruidStatViewServlet extends StatViewServlet {
        private static final long serialVersionUID = 1L;
        
    }

    5、项目视图

    补充log4j2.xml与 mybatis-conf.xml(mybatis全局配置文件)

    1、log4j2.xml

    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
        <properties>
            <!-- 文件输出格式 -->
            <property name="PATTERN">%d{yyyy-MM-dd HH:mm:ss.SSS} |-%-5level [%thread] %c [%L] -| %msg%n</property>
        </properties>
    
        <appenders>
            <Console name="Console" target="system_out">
                <PatternLayout pattern="${PATTERN}" />
            </Console>
        </appenders>
        <!--配置mybatis日志 -->
        <loggers>
    
            <logger name="log4j.logger.org.mybatis" level="debug"
                additivity="false">
                <appender-ref ref="Console" />
            </logger>
            <logger name="log4j.logger.java.sql" level="debug" additivity="false">
                <appender-ref ref="Console" />
            </logger>
            <logger name="com.demo.mapper" level="debug" />
            <root level="info">
                <appenderref ref="Console" />
            </root>
        </loggers>
    
    </configuration>

    2、 mybatis-conf.xml

    <?xml version="1.0" encoding="utf-8"?>
    <!-- Copyright 2015-2016 the original author or authors. Licensed under the 
        Apache License, Version 2.0 (the "License"); you may not use this file except 
        in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 
        Unless required by applicable law or agreed to in writing, software distributed 
        under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES 
        OR CONDITIONS OF ANY KIND, either express or implied. See the License for 
        the specific language governing permissions and limitations under the License. -->
    <!DOCTYPE configuration
            PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
            "http://mybatis.org/dtd/mybatis-3-config.dtd">
    <configuration>
        <!--设置mybatis日志类型 -->
        <settings>
            <setting name="logImpl" value="LOG4J2" />
            <!--配置的缓存的全局开关。 -->
            <setting name="cacheEnabled" value="true" />
            <!--延迟加载的全局开关。当开启时,所有关联对象都会延迟加载。 特定关联关系中可通过设置fetchType属性来覆盖该项的开关状态。 -->
            <setting name="lazyLoadingEnabled" value="true" />
            <!--当没有为参数提供特定的 JDBC 类型时,为空值指定 JDBC 类型。 某些驱动需要指定列的 JDBC 类型,多数情况直接用一般类型即可,比如 
                NULL、VARCHAR 或 OTHER。 -->
            <setting name="jdbcTypeForNull" value="NULL" />
    
        </settings>
    </configuration>
  • 相关阅读:
    【转】jQuery学习
    Eclipse工作空间的缺省字符编码问题
    BS与CS的区别
    内部类的作用
    test
    Delphi制作关不掉的程序
    屏蔽指定按钮
    实现拖动无标题窗口的5种方法
    Sql服务器及数据库枚举
    Delphi调用SQL分页存储过程实例
  • 原文地址:https://www.cnblogs.com/a8457013/p/7809048.html
Copyright © 2020-2023  润新知