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

怎么看一个网站有没有做301/怎么做好网站搜索引擎优化

怎么看一个网站有没有做301,怎么做好网站搜索引擎优化,网站开发用技术,怎么做新网站的推广目录 前言导入依赖坐标创建mysql/oracle数据源配置类MySQLDataSourceConfigOracleDataSourceConfig application.yml配置文件配置mysql/oracle数据源编写Mapper接口编写Book实体类编写测试类 前言 springboot整合mybatis配置多数据源,可以都是mysql数据源&#xff…

目录

  • 前言
  • 导入依赖坐标
  • 创建mysql/oracle数据源配置类
    • MySQLDataSourceConfig
    • OracleDataSourceConfig
  • application.yml配置文件配置mysql/oracle数据源
  • 编写Mapper接口
  • 编写Book实体类
  • 编写测试类

前言

springboot整合mybatis配置多数据源,可以都是mysql数据源,也可以都是oracle数据源,也可以mysql/oracle数据源都有,下面是配置多数据源的步骤(不局限与某一类数据库),之前配过都是oracle数据源的配置,下面是验证这个想法的实现,实现效果后,好像也可以同时配MongoDB、Redis等其他的数据源配置,但是好像也没碰到有人在一个项目里面这么干过…要么都是mysql数据源要么都是oracle数据源。

导入依赖坐标

<dependencies><!--springboot起步依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId><version>${spring-boot.version}</version></dependency><!-- spring-boot-starter-web  --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!--单元测试 包含junit-jupiter--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><!--springboot整合mybatis --><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>${mybatis.version}</version></dependency><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter-test</artifactId><version>${mybatis.version}</version><scope>test</scope></dependency><!--添加tk.mybatis用于对单表进行处理--><dependency><groupId>tk.mybatis</groupId><artifactId>mapper-spring-boot-starter</artifactId><version>${tk.mybatis.version}</version></dependency><!-- oracle驱动 --><dependency><groupId>com.oracle.database.jdbc</groupId><artifactId>ojdbc8</artifactId><version>${oracle.version}</version></dependency><!-- mysql驱动 --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>${mysql.version}</version></dependency><!-- alibaba/druid --><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>${druid.version}</version></dependency><!--c3p0连接池--><dependency><groupId>com.mchange</groupId><artifactId>c3p0</artifactId><version>${c3p0.version}</version></dependency>
</dependencies>

创建mysql/oracle数据源配置类

MySQLDataSourceConfig

@Configuration
@MapperScan(basePackages = "com.example.dao.mysql", sqlSessionFactoryRef = "mysqlSessionFactory")
public class MySQLDataSourceConfig {@Primary // 表示这个数据源是默认数据源, 这个注解必须要加,因为不加的话spring将分不清楚那个为主数据源(默认数据源)@Bean("mysqlDataSource")//方式一:@ConfigurationProperties(prefix = "spring.datasource.mysql")@ConfigurationProperties(prefix = "spring.datasource.mysql") //读取application.yml中的配置参数映射成为一个对象public DataSource getMysqlDataSource() {return DataSourceBuilder.create().build();}//方式二:@Value注解方法 set方法注入yml数据源属性/*@Value("${spring.datasource.mysql.driver-class-name}")String driverClass;@Value("${spring.datasource.mysql.jdbc-url}")String url;@Value("${spring.datasource.mysql.username}")String userName;@Value("${spring.datasource.mysql.password}")String passWord;@Bean(name = "mysqlDataSource")@ConfigurationProperties("spring.datasource.mysql")public DataSource masterDataSource(){DriverManagerDataSource dataSource = new DriverManagerDataSource();dataSource.setDriverClass(driverClass);dataSource.setJdbcUrl(url);dataSource.setUser(userName);dataSource.setPassword(passWord);return dataSource;}*/@Primary@Bean("mysqlSessionFactory")public SqlSessionFactory mysqlSessionFactory(@Qualifier("mysqlDataSource") DataSource dataSource) throws Exception {SqlSessionFactoryBean bean = new SqlSessionFactoryBean();bean.setDataSource(dataSource);// mapper的xml形式文件位置必须要配置,不然将报错:no statement (这种错误也可能是mapper的xml中,namespace与项目的路径不一致导致)bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath*:mapper/mysql/*.xml")); // 持久化.xml文件的地址return bean.getObject();}@Primary@Bean("mysqlSessionTemplate")public SqlSessionTemplate mysqlSessionTemplate(@Qualifier("mysqlSessionFactory") SqlSessionFactory sqlSessionFactory) {return new SqlSessionTemplate(sqlSessionFactory);}
}

OracleDataSourceConfig

@Configuration
@MapperScan(basePackages = "com.example.dao.oracle", sqlSessionFactoryRef = "oracleSessionFactory")
public class OracleDataSourceConfig {@Bean("oracleDataSource")@ConfigurationProperties(prefix = "spring.datasource.oracle") //读取application.yml中的配置参数映射成为一个对象public DataSource getOracleDataSource() {return DataSourceBuilder.create().build();}@Bean("oracleSessionFactory")public SqlSessionFactory oracleSessionFactory(@Qualifier("oracleDataSource") DataSource dataSource) throws Exception {SqlSessionFactoryBean bean = new SqlSessionFactoryBean();bean.setDataSource(dataSource);// mapper的xml形式文件位置必须要配置,不然将报错:no statement (这种错误也可能是mapper的xml中,namespace与项目的路径不一致导致)bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath*:mapper/oracle/*.xml")); // 持久化.xml文件的地址return bean.getObject();}@Bean("oracleSessionTemplate")public SqlSessionTemplate oracleSessionTemplate(@Qualifier("oracleSessionFactory") SqlSessionFactory sqlSessionFactory) {return new SqlSessionTemplate(sqlSessionFactory);}

application.yml配置文件配置mysql/oracle数据源

spring:# 配置数据源datasource:#单一数据源配置driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://rhel:3306/note_bootusername: rootpassword: Redhat1#多数据源配置mysql:driver-class-name: com.mysql.cj.jdbc.Driverjdbc-url: jdbc:mysql://rhel:3306/note_bootusername: rootpassword: Redhat1oracle:driver-class-name: oracle.jdbc.OracleDriverjdbc-url: jdbc:oracle:thin:@//rhel:1521/orclusername: testdbpassword: oraclepasshikari:connection-timeout: 3000idle-timeout: 60000maximum-pool-size: 50minimum-idle: 5connection-test-query: select 1 from dualvalidation-timeout: 2000

编写Mapper接口

在这里插入图片描述

//BookDao里面都是两个简单查询测试方法,注解实现...
//mysql数据库测试
public Book getById(Integer id);
//oracle数据库测试
public Book findById(Integer id);

编写Book实体类

public class Book {private Integer id;private String name;private String type;private String description;//get/set方法省略...
}

编写测试类

public class MybatisDemo {@Autowiredprivate BookDao bookDao;@Autowiredprivate BookDao1 bookDao1;@Autowiredprivate BookDao2 bookDao2;@Testvoid test() {//原始配置,单一数据库查询Book book = bookDao.getById(1);System.out.println(book);//多数据源配置 mysql查询Book book1 = bookDao1.getById(1);System.out.println(book1);//多数据源配置 oracle查询Book book2 = bookDao2.findById(1);System.out.println(book2);}
}

效果图:
在这里插入图片描述

相关文章:

springboot整合mybatis配置多数据源(mysql/oracle)

目录 前言导入依赖坐标创建mysql/oracle数据源配置类MySQLDataSourceConfigOracleDataSourceConfig application.yml配置文件配置mysql/oracle数据源编写Mapper接口编写Book实体类编写测试类 前言 springboot整合mybatis配置多数据源&#xff0c;可以都是mysql数据源&#xff…...

练习项目后端代码解析切面篇(Aspect)

前言 之前注解篇时我说&#xff0c;通常情况下一个自定义注解一般对应一个切面&#xff0c;虽然项目里的切面和注解个数相同&#xff0c;但是好像有一个名字看起来并不对应&#xff0c;无所谓&#xff0c;先看了再说。 ExceptionLogAspect切面 我在里面做了具体注释&#x…...

TypeScript常见面试题第六节

题目二十六:TypeScript 中的装饰器? 一、讲解视频 TS面试题二十六:TypeScript 中的可选链? 二、题目解析 本题目考察可选链的相关知识,可选链是比较新的一个语法,是一种访问嵌套对象属性的安全的方式。即使中间的属性不存在,也不会出现错误。如果可选链 ?. 前面的值为…...

LeetCode 面试经典150题 228.汇总区间

题目&#xff1a; 给定一个 无重复元素 的 有序 整数数组 nums 。 返回 恰好覆盖数组中所有数字 的 最小有序 区间范围列表 。也就是说&#xff0c;nums 的每个元素都恰好被某个区间范围所覆盖&#xff0c;并且不存在属于某个范围但不属于 nums 的数字 x 。 列表中的每个区…...

大数据分析入门10分钟快速了解SQL

SQL是什么&#xff1f; SQL全称Structured Query Language(结构化查询语言”) 为什么要用SQL&#xff1f; SQL通用 常见的表格分析操作&#xff0c;Excel也能做&#xff0c;为什么不用呢&#xff1f; 因为处理上亿行大数据时&#xff0c;Excel并不够用。 而常见的大数据引…...

设置多用户远程登录windows server服务器

##设置多用户远程登录windows server服务器 ###1、远程登录windows server 2016 运行—>mstsc—>远程IP地址—>用户和密码 2、远程windows服务器设置多用户策略 运行—>gpedit.msc->计算机配置—管理模板—windows组件—远程桌面服务—远程桌面会话主机----连…...

一文了解栈

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、栈是什么&#xff1f;二、栈的实现思路1.顺序表实现2.单链表实现3.双向链表实现 三、接口函数的实现1.栈的定义2.栈的初始化3.栈的销毁4.入栈5.出栈6.返回栈…...

C语言----汉诺塔问题

1.什么是汉诺塔问题 简单来说&#xff0c;就是有三个柱子&#xff0c;分别为A柱&#xff0c;B柱&#xff0c;C柱。其中A柱从上往下存放着从小到大的圆盘&#xff0c;我们需要借助B柱和C柱&#xff0c;将A柱上的所有圆盘转移到C柱上&#xff0c;并且一次只能移动一个圆盘&#…...

Python中驼峰命名法和下划线命名法相互转换的实战代码

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…...

【hackmyvm】vivifytech靶机

渗透思路 信息收集端口扫描端口服务信息目录扫描爆破hydra--sshgit提权 信息收集 ┌──(kali㉿kali)-[~] └─$ fping -ag 192.168.9.0/24 2>/dev/null 192.168.9.119 --主机 192.168.9.164 --靶机个人习惯&#xff0c;也方便后续操作&#xff0c;将IP地址赋值给一个变…...

纯血鸿蒙APP实战开发——手写绘制及保存图片

介绍 本示例使用drawing库的Pen和Path结合NodeContainer组件实现手写绘制功能。手写板上完成绘制后&#xff0c;通过调用image库的packToFile和packing接口将手写板的绘制内容保存为图片&#xff0c;并将图片文件保存在应用沙箱路径中。 效果图预览 使用说明 在虚线区域手写…...

在什么情况下表单会被重复提交?如何避免?

表单被重复提交是Web应用中常见的问题&#xff0c;通常在用户提交表单后点击按钮多次&#xff0c;或在表单提交后刷新页面时发生。这可能导致数据的重复处理&#xff0c;比如重复记录或订单。 何时会发生表单重复提交&#xff1f; 用户多次点击提交按钮&#xff1a;在网络延迟…...

JavaScript 中的 Class 类

&#x1f525; 个人主页&#xff1a;空白诗 文章目录 &#x1f525; 引言&#x1f3af; 基础知识&#x1f3d7;️ 构造函数 (Constructor)&#x1f510; 私有字段 (Private Fields)&#x1f510; 私有方法 (Private Methods)&#x1f9ec; 继承 (Inheritance)&#x1f4e6; 静态…...

python实验三 实现UDP协议、TCP协议进行服务器端与客户端的交互

实验三 实验题目 1、请利用生成器构造一下求阶乘的函数Factorial()&#xff0c;定义一个函数m()&#xff0c;在m()中调用生成器Factorial()生成小于100的阶乘序列存入集合s中&#xff0c;输出s。 【代码】 def factorial():n1f1while 1:​ f * n​ yield (f)​ n1…...

ServiceNow 研究:通过RAG减少结构化输出中的幻觉

论文地址&#xff1a;https://arxiv.org/pdf/2404.08189 原文地址&#xff1a;rag-hallucination-structure-research-by-servicenow 在灾难性遗忘和模型漂移中&#xff0c;幻觉仍然是一个挑战。 2024 年 4 月 18 日 灾难性遗忘&#xff1a; 这是在序列学习或连续学习环境中出现…...

ADS基础教程10-多态性(动态模型选择)

目录 一、多态性定义二、操作步骤&#xff11;.模型建立&#xff12;.模型选择&#xff13;.执行仿真 一、多态性定义 ADS中支持一个Symbol中&#xff0c;可以同时存在多个子图。在仿真时可以动态选择不同的子图继续宁仿真。 二、操作步骤 &#xff11;.模型建立 在上一章A…...

代码随想录第四十六天|单词拆分

题目链接&#xff1a;. - 力扣&#xff08;LeetCode&#xff09;...

RabbitMQ的介绍和使用

1.同步通讯和异步通讯 举个例子&#xff0c;同步通讯就像是在打电话&#xff0c;因此它时效性较强&#xff0c;可以立即得到结果&#xff0c;但如果你正在和一个MM打电话&#xff0c;其他MM找你的话&#xff0c;你们之间是不能进行消息的传递和响应的 异步通讯就像是微信&#…...

前端get请求日期类型参数向后端传参失败

1、背景 get请求&#xff0c;通过url上传参&#xff0c;因此日期类型是string类型数据 2、异常信息 nested exception is org.springframework.core.convert.ConversionFailedException: Failed to convert from type [java.lang.String] to type [java.time.LocalDate] for…...

【docker 】 push 镜像提示:denied: requested access to the resource is denied

往 Docker Registry &#xff08;私服&#xff09;push 镜像提示&#xff1a;denied: requested access to the resource is denied 镜像push 语法&#xff1a;docker push <registry-host>:<registry-port>/<repository>:<tag> docker push 192.16…...

浏览器各类好用插件使用及常见问题(技巧)总结

目录 Vimium C快捷键问题为什么Vimium C - 全键盘操作浏览器插件在百度页面中, x ,o,f等快捷键不起作用如何使用viminum c插件进行自定义快捷键?vimucm 为什么在浏览器首页时快捷键不起作用? 网页截图问题firefox 网页截图使用 idm问题浏览器点击idm 不下载? 待续、更新中 V…...

Python批量计算多张遥感影像的NDVI

本文介绍基于Python中的gdal模块&#xff0c;批量基于大量多波段遥感影像文件&#xff0c;计算其每1景图像各自的NDVI数值&#xff0c;并将多景结果依次保存为栅格文件的方法。 如下图所示&#xff0c;现在有大量.tif格式的遥感影像文件&#xff0c;其中均含有红光波段与近红外…...

6.k8s中的secrets资源

一、Secret secrets资源&#xff0c;类似于configmap资源&#xff0c;只是secrets资源是用来传递重要的信息的&#xff1b; secret资源就是将value的值使用base64编译后传输&#xff0c;当pod引用secret后&#xff0c;k8s会自动将其base64的编码&#xff0c;反编译回正常的字符…...

git 更换远程仓库地址三种方法总结

git 更换远程仓库地址三种方法总结 一、前言 由于私服的 gitlab 的地址变更&#xff0c;导致部分项目代码提交不上去&#xff0c;需要修改远端仓地址。 其它需要修改远程仓地址的情况如&#xff1a;切换git clone 协议由ssh变为https。 二、环境 windows 10git version 2.3…...

快速找出存(不存在)在某个(或多个)文件的文件夹

首先&#xff0c;需要用到的这个工具&#xff1a; 度娘网盘 提取码&#xff1a;qwu2 蓝奏云 提取码&#xff1a;2r1z 想要找出有下面这个文件存在的文件夹 切换到批量文件复制版块&#xff0c;快捷键Ctrl5 右侧&#xff0c;搜索添加 选定范围&#xff0c;勾选搜索文件夹、包…...

Linux USB转串口设备路径的查找方法

1、USB转串口设备 USB转串口设备是在嵌入式软件开发过程中经常要使用的&#xff0c;常常用于对接各种各样的串口设备。如果一台linux主机上使用多个usb转串口设备时&#xff0c;应用程序中就需要知道自己操作的是哪个串口设备。串口设备在系统上电时&#xff0c;由于驱动加载的…...

【初阶数据结构】单链表之环形链表

目录标题 前言环形链表的约瑟夫问题环形链表环形链表|| 前言 前面我们已经学习了关于单链表的一些基本东西&#xff0c;今天我们来学习单链表的一个拓展——环形链表&#xff0c;我们将用力扣和牛客网上的三道题目来分析讲解环形链表问题。 环形链表的约瑟夫问题 我们首先来看…...

【积分,微分,导数,偏导数公式推导】

1. 积分 积分是微积分的一个分支&#xff0c;用于计算曲边梯形的面积或者变速直线运动的总距离等。积分分为不定积分和定积分。 不定积分&#xff1a;给出一个函数&#xff0c;求出其所有可能的原函数。定积分&#xff1a;计算一个函数在特定区间上的积分。 2. 微分 微分是…...

java:递归实现的案例

//求第20个月兔子的对数 //每个月兔子对数&#xff1a;1&#xff0c;1&#xff0c;2&#xff0c;3&#xff0c;5&#xff0c;8 public class Test {//求第20个月兔子的对数//每个月兔子对数&#xff1a;1&#xff0c;1&#xff0c;2&#xff0c;3&#xff0c;5&#xff0c;8pu…...

Arxml文件解析03- 自动驾驶Radar服务radar_svc.arxml

<AR-PACKAGES><AR-PACKAGE><SHORT-NAME>bosch</SHORT-NAME><AR-PACKAGES>...</AR-PACKAGES>...