美文网首页
tomcat配置数据源

tomcat配置数据源

作者: sunpy | 来源:发表于2022-12-19 11:35 被阅读0次

springboot不使用内置tomcat

由于不打算使用springboot内置的tomcat,所以先移除springboot内置tomcat。

  • 修改打包形式
<packaging>war</packaging>
  • 移除嵌入的tomcat插件
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <!-- 移除嵌入式tomcat插件 -->
    <exclusions>
        <exclusion>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
        </exclusion>
    </exclusions>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-tomcat</artifactId>
    <scope>provided</scope>
</dependency>
  • 继承SpringBootServletInitializer重写configure方法
@SpringBootApplication
public class ExportApplication extends SpringBootServletInitializer {
    public static void main(String[] args) {
        SpringApplication.run(ExportApplication.class, args);
    }

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        return builder.sources(this.getClass());
    }
}

tomcat配置数据源

  • 配置tomcat/conf/server.xml文件
<Service name="Catalina">
    <Context path="jdbc/1" reloadable="true"></Context>
    <Context path="druid/1" reloadable="true"></Context>
  • 配置tomcat/conf/context.xml文件
<Context>

    <!-- Default set of monitored resources. If one of these changes, the    -->
    <!-- web application will be reloaded.                                   -->
    <WatchedResource>WEB-INF/web.xml</WatchedResource>
    <WatchedResource>WEB-INF/tomcat-web.xml</WatchedResource>
    <WatchedResource>${catalina.base}/conf/web.xml</WatchedResource>
    <Resource name="jdbc/1"      
        auth="Container"  
        type="javax.sql.DataSource"  
        driverClassName="com.mysql.cj.jdbc.Driver"  
        url="jdbc:mysql://IP1:3390/education"  
        username="root"  
        password="pwd1"   
    /> 
    <Resource name="druid/1"   
        factory="com.alibaba.druid.pool.DruidDataSourceFactory"
        auth="Container"  
        type="javax.sql.DataSource"  
        driverClassName="com.mysql.cj.jdbc.Driver"  
        url="jdbc:mysql://IP2:3379/education"  
        username="root"  
        password="pwd2"   
    /> 
</Context>
  • tomcat的lib下加入数据库驱动
    mysql-connector-java-8.0.29.jar
    druid-1.2.5.jar

springboot2.x使用jndi单数据源,整合mybatisplus查询数据库

  • 导包
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <exclusions>
        <!-- 使用JNDI,则使用默认使用DBCP连接池,故排除Hikari连接池 -->
        <exclusion>
            <groupId>com.zaxxer</groupId>
            <artifactId>HikariCP</artifactId>
        </exclusion>
    </exclusions>
</dependency>

<dependency>
    <groupId>org.apache.velocity</groupId>
    <artifactId>velocity-engine-core</artifactId>
</dependency>

<dependency>
    <groupId>org.freemarker</groupId>
    <artifactId>freemarker</artifactId>
</dependency>
  • application.yml配置
spring:
  datasource:
    jndi-name: jdbc/1
mybatis-plus:
  # xml文件路径
  mapper-locations: classpath:mapper/*.xml
  # 实体类路径
  type-aliases-package: com.sunpy.simpleweb.po
  configuration:
    # 驼峰转换
    map-underscore-to-camel-case: true
    # 是否开启缓存
    cache-enabled: false
    # 打印sql
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
  # 全局配置
  global-config:
    # 数据库字段驼峰下划线转换
    db-column-underline: true
  • 查询数据库
@GetMapping("/index")
public ResultModel<Object> index() {
    ResultModel<Object> resultModel = new ResultModel<>();
    resultModel.setMsg(enterpriseParamModel.getEnv());
    resultModel.setTime(TimeUtil.getNowTime());
    QueryWrapper qw = new QueryWrapper<>();
    List<Teacher> teacherList = teacherMapper.selectList(qw);
    resultModel.setRes(teacherList);
    return resultModel;
}

springboot2.x使用jndi多数据源,整合mybatisplus查询数据库

  • 导包
<!-- mybatis-plus 多数据源 -->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
    <version>3.6.0</version>
</dependency>
  • application.yml文件
spring:
  datasource:
    dynamic:
      datasource:
        master:
          jndi-name: jdbc/1
        slave:
          jndi-name: druid/1
mybatis-plus:
  # xml文件路径
  mapper-locations: classpath:mapper/*.xml
  # 实体类路径
  type-aliases-package: com.sunpy.simpleweb.po
  configuration:
    # 驼峰转换
    map-underscore-to-camel-case: true
    # 是否开启缓存
    cache-enabled: false
    # 打印sql
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
  # 全局配置
  global-config:
    # 数据库字段驼峰下划线转换
    db-column-underline: true

切换druid查询数据库:

@DS("slave")
@GetMapping("/index2")
public ResultModel<Object> index2() {
    ResultModel<Object> resultModel = new ResultModel<>();
    resultModel.setMsg(enterpriseParamModel.getEnv() + " druid/1");
    resultModel.setTime(TimeUtil.getNowTime());
    QueryWrapper qw = new QueryWrapper<>();
    List<Teacher> teacherList = teacherMapper.selectList(qw);
    resultModel.setRes(teacherList);
    return resultModel;
}

参考


https://blog.csdn.net/qq_42499737/article/details/118635728

相关文章

网友评论

      本文标题:tomcat配置数据源

      本文链接:https://www.haomeiwen.com/subject/qnceqdtx.html