当前位置: 首页 > news >正文

劫持别人网站做排名/讯展网站优化推广

劫持别人网站做排名,讯展网站优化推广,中国电信收购腾讯,律师资格证报考条件SpringBootMyBatis配置多数据源 文章目录SpringBootMyBatis配置多数据源前言一、项目搭建1.1 项目结构1.2 相关依赖1.3 排除数据源的自动装配1.4 配置文件 application.yml1.5 数据源配置类1.6 mydb 数据库1.7 mydb2 数据库二、启动项目测试总结前言 说明: 配置两…

SpringBoot+MyBatis配置多数据源

文章目录

  • SpringBoot+MyBatis配置多数据源
    • 前言
    • 一、项目搭建
      • 1.1 项目结构
      • 1.2 相关依赖
      • 1.3 排除数据源的自动装配
      • 1.4 配置文件 application.yml
      • 1.5 数据源配置类
      • 1.6 mydb 数据库
      • 1.7 mydb2 数据库
    • 二、启动项目测试
    • 总结


前言

说明:

  • 配置两个 MySQL 数据库,针对不同数据库中的表进行查询所有的操作

思路:

  • 分包扫描,配置多个数据源。

步骤:

  1. 创建 springboot 项目,引入基本依赖;
  2. 排除数据源的自动装配;
  3. application.yml 配置文件中配置多个数据源;
  4. 定义配置类,一个数据源对应一个配置类;
  5. 编写 实体类、mapper 接口和 xml 进行测试;

一、项目搭建

1.1 项目结构

|_src/main/|_java/com/more/|_config/|_DataSourceOne.java        # 数据源1的相关配置|_DataSourceTwo.java        # 数据源2的相关配置|_domain/|_Account.java|_User.java|_mapper/|_one/|_OneMapper.java|_tow/|_TwoMapper.java|_StartApplication|_resources/                       # 静态资源文件|_mapper/|_one/|_OneMapper.xml|_two/|_TwoMapper.xml|_application.yml

多数据源项目结构

1.2 相关依赖

<dependencies><!-- web 依赖 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!--lombok--><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency><!--mysql--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.38</version></dependency><!--mybatis--><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.1.1</version></dependency><!-- 测试 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId></dependency><!--热部署工具--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><optional>true</optional></dependency>
</dependencies>

1.3 排除数据源的自动装配

@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
public class StartApplication {public static void main(String[] args) {SpringApplication.run(StartApplication.class, args);}
}

1.4 配置文件 application.yml

server:port: 9090# 数据源
datasource:jdbc1:driverClassName: com.mysql.jdbc.Driverjdbc-url: jdbc:mysql://127.0.0.1:3306/mydb?useUnicode=true&characterEncoding=utf8&useSSL=falseusername: rootpassword: rootjdbc2:driverClassName: com.mysql.jdbc.Driverjdbc-url: jdbc:mysql://127.0.0.1:3306/mydb2?useUnicode=true&characterEncoding=utf8&useSSL=falseusername: rootpassword: root
  • 这里需要注意的是 jdbc 连接参数是固定写法

1.5 数据源配置类

主配置数据源(未指定时的默认数据源)

import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.jdbc.DataSourceBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;import javax.sql.DataSource;@Configuration
@MapperScan(basePackages = "com.more.mapper.one", sqlSessionFactoryRef = "factoryOne")
public class DataSourceOne {/*@Primary 表示主数据源,未指定使用哪个数据源时默认使用@ConfigurationProperties 表示从配置文件中获取值, prefix 表示前缀匹配*//*** 注入 数据源1*/@Bean(name = "DataSource1")@Primary@ConfigurationProperties(prefix = "datasource.jdbc1")public DataSource getDateSource1() {return DataSourceBuilder.create().build();}/*** 注入 mybatis 的 sqlSessionFactory* 设置 数据源 与 xml 路径*/@Bean(name = "factoryOne")@Primarypublic SqlSessionFactory test1SqlSessionFactory(@Qualifier("DataSource1") DataSource datasource) throws Exception {SqlSessionFactoryBean bean = new SqlSessionFactoryBean();// 设置数据源bean.setDataSource(datasource);// 设置 mybatis 的 xml 所在位置bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mapper/one/*.xml"));return bean.getObject();}
}

第二个数据源

import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.jdbc.DataSourceBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;import javax.sql.DataSource;@Configuration
@MapperScan(basePackages = "com.more.mapper.two", sqlSessionFactoryRef = "factoryTwo")
public class DataSourceTwo {/*** 创建数据源*/@Bean(name = "DataSource2")@ConfigurationProperties(prefix = "datasource.jdbc2")public DataSource getDateSource1() {return DataSourceBuilder.create().build();}/*** 创建 mybatis 的 sqlSessionFactory*/@Bean(name = "factoryTwo")public SqlSessionFactory test1SqlSessionFactory(@Qualifier("DataSource2") DataSource datasource) throws Exception {SqlSessionFactoryBean bean = new SqlSessionFactoryBean();bean.setDataSource(datasource);bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mapper/two/*.xml"));return bean.getObject();}
}

1.6 mydb 数据库

实体类,对应 mydb.user

import lombok.Data;@Data
public class User {private int id;private String username;private String password;
}

mapper 接口定义:

package com.more.mapper.one;import com.more.domain.User;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;import java.util.List;@Repository
@Mapper
public interface OneMapper {List<User> findAll();
}

xml 映射配置:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.more.mapper.one.OneMapper"><resultMap id="map" type="com.more.domain.User"><id column="id" property="id"/><result column="username" property="username"/><result column="password" property="password"/></resultMap><select id="findAll" resultMap="map">select * from my_user</select></mapper>

1.7 mydb2 数据库

实体类,对应 mydb2.account 表:

import lombok.Data;@Data
public class Account {private int id;private String accName;private String accPsw;
}

mapper 接口定义:

package com.more.mapper.two;import com.more.domain.Account;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;import java.util.List;@Repository
@Mapper
public interface TwoMapper {List<Account> getAll();
}

xml 映射配置:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.more.mapper.two.TwoMapper"><resultMap id="map" type="com.more.domain.Account"><id column="id" property="id"/><result column="account_name" property="accName"/><result column="account_psw" property="accPsw"/></resultMap><select id="getAll" resultMap="map">select * from my_account</select>
</mapper>

二、启动项目测试

import com.more.domain.Account;
import com.more.domain.User;
import com.more.mapper.one.OneMapper;
import com.more.mapper.two.TwoMapper;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;import java.util.List;@SpringBootTest
public class BaseApplicationTest {@AutowiredOneMapper oneMapper;@AutowiredTwoMapper twoMapper;@Testpublic void test() {List<User> all = oneMapper.findAll();all.forEach(System.out::println);List<Account> all2 = twoMapper.getAll();all2.forEach(System.out::println);}
}

总结

  • 实现思路:通过不同数据源扫描不同 Mapper 包实现。
  • MyBatis多数据源配置时需要排除排除数据源的自动装配:@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
  • 自定义数据源的配置类,并在配置类中指定 Mapper 接口及 Mapper 映射文件的扫描路径。
http://www.jmfq.cn/news/5232601.html

相关文章:

  • 网站删除模块/全球中文网站排名
  • discuz 做的网站/关键词查询
  • 用户访问域名劫持网站/淄博搜索引擎优化
  • 朝阳周边网站建设/seo权重优化
  • 高端奶茶加盟网站建设/2021最火营销方案
  • 建设网站时以什么为导向/如何推广自己的产品
  • 鹤山做网站公司/四川seo技术培训
  • 秦皇岛市网站制作公司/百度建站官网
  • 爱做网站/网站收录查询网
  • seo网站推广的主要目的是什么/怎么关键词优化网站
  • 网站开发项目经验总结教训/seo关键词
  • 中国网站建设公司/廊坊网站建设优化
  • 物业公司网站模板/产品宣传推广方式有哪些
  • 网站开发是什么职业/长沙seo外包
  • 网站空间是服务器吗/自媒体平台排名
  • 网站外链建设的八大基本准则/打开百度一下搜索
  • html购物网站源代码/googleplay官网
  • 国内永久免费域名申请网站/小江seo
  • 安阳+网站建设/搜索引擎优化教程
  • 动漫视频网站模板/网络营销公司哪家可靠
  • 百度怎么收录自己的网站/网络竞价托管公司
  • wordpress轻量主题/东莞seo建站投放
  • 一键搭建网站系统/seo是哪个英文的简写
  • 灵山网站建设/优化什么意思
  • 南宁软件优化网站建设/济南网络推广公司电话
  • 怎么查看网站日志/网站域名查询系统
  • 滁州住房与城乡建设官网/潍坊自动seo
  • 钟祥网站开发/个人博客网站模板
  • 网站直播怎么做的/百度文库个人登录入口
  • 网站建设转正申请报告/搜索引擎排名机制