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

邢台wap网站建设费用江阴建设局官方网站

邢台wap网站建设费用,江阴建设局官方网站,淄博品先网络科技有限公司,如皋建设医院网站有些人因为看见所以相信#xff0c;有些人因为相信所以看见 有目录#xff0c;不迷路 前期准备实现演示参考 最近研究了一下多数据源#xff0c;这篇博客讲的是简单模式#xff0c;下篇博客预计写自动切换模式 前期准备 本篇博客基于SpringBoot整合MyBatis-plus#xff0…有些人因为看见所以相信有些人因为相信所以看见 有目录不迷路 前期准备实现演示参考 最近研究了一下多数据源这篇博客讲的是简单模式下篇博客预计写自动切换模式 前期准备 本篇博客基于SpringBoot整合MyBatis-plus如果有不懂这个的 可以查看我的这篇博客快速CRUD的秘诀之SpringBoot整合MyBatis-Plus 为了实现效果先在本地的mysql库里面创建两个数据库 然后在两个数据库里面分别创建同样的users表但是插入不同的数据 mydb的数据 mydb2的数据 实现 1.在pom.xml中引入多数据源的依赖dynamic-datasource-spring-boot-starter !-- 多数据切换所需依赖 -- dependencygroupIdcom.baomidou/groupIdartifactIddynamic-datasource-spring-boot-starter/artifactIdversion3.0.0/version /dependency2.在application.yml配置文件中配置多数据源 sever:# 端口port: 8080# 配置数据源 spring:datasource:dynamic:primary: master #设置默认的数据源或者数据源组,默认值即为masterstrict: false #严格匹配数据源,默认false. true未匹配到指定数据源时抛异常,false使用默认数据源datasource:master:# 数据库路径jdbc:mysql://localhost:3306/mydb 的缩写,并配置时区url: jdbc:mysql:///mydb?serverTimezoneGMT%2B8username: rootpassword: 123456driver-class-name: com.mysql.cj.jdbc.Driver # 3.2.0开始支持SPI可省略此配置slave:url: jdbc:mysql:///mydb2?serverTimezoneGMT%2B8username: rootpassword: 123456driver-class-name: com.mysql.cj.jdbc.Driver# 打印MyBatis SQL 日志 logging:level:com.guqueyue.test.dao: debug # 写接口的包名注意 这里数据源的名字可以自定义什么master、slave都可以随意命名。这里可以根据格式自行添加数据源的个数并且支持多种数据库如oracle、达梦等。此处为了演示方便都使用了mysql数据库。 3.编写代码 3.1.在持久层中查找users表的数据并使用 DS注解切换数据源 package com.guqueyue.test.dao;import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.guqueyue.test.entity.User; import org.apache.ibatis.annotations.Select;import java.util.List;/*** Author: guqueyue* Description: 映射接口UserMapper* Date: 2023/12/19**/ public interface UserMapper extends BaseMapperUser {DS(master) // 默认为主数据源其实可以省略Select(select * from users)ListUser selectUserList();DS(slave) // 切换为slave数据源Select(select * from users)ListUser selectUserListBySlave();}注意: DS注解不止可以用在持久层可以用在任意的类和方法上。DS注解作用在方法上的优先级 类。 也就是说可以在类上加一个DS注解默认一个该类的数据源如 DS(master) 再在具体的方法上加一个DS注解做个性化指定如 DS(slave)效果等同 /*** Author: guqueyue* Description: 映射接口UserMapper* Date: 2023/12/19**/ DS(master) // 默认为主数据源其实可以省略 public interface UserMapper extends BaseMapperUser {Select(select * from users)ListUser selectUserList();DS(slave) // 切换为slave数据源Select(select * from users)ListUser selectUserListBySlave();}3.2.创建service接口 package com.guqueyue.test.service;import com.baomidou.mybatisplus.extension.service.IService; import com.guqueyue.test.entity.User;import java.util.List;/*** Author: guqueyue* Description: 用户service接口* Date: 2023/12/19**/ public interface IUserService extends IServiceUser {ListUser selectUserList(String type); }3.3.创建service实现类并调用持久层接口根据传入的参数切换不同的方法 package com.guqueyue.test.service.impl;import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.guqueyue.test.dao.UserMapper; import com.guqueyue.test.entity.User; import com.guqueyue.test.service.IUserService; import org.springframework.stereotype.Service;import javax.annotation.Resource; import java.util.List;/*** Author: guqueyue* Description: 用户实现类* Date: 2023/12/19**/ Service public class UserServiceImpl extends ServiceImplUserMapper, User implements IUserService {Resourceprivate UserMapper userMapper;Overridepublic ListUser selectUserList(String type) {// do something: 此处可根据实际情况进行业务选择如根据当前登录的用户信息来选择不同的数据库// 此处为了方便演示直接用前端传入的type来判断return slave.equals(type) ? userMapper.selectUserListBySlave(): userMapper.selectUserList();} }3.4.编写控制层代码 package com.guqueyue.test.controller;import com.guqueyue.test.entity.User; import com.guqueyue.test.service.IUserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;import java.util.List;/*** Author: guqueyue* Description: 用户控制层* Date: 2023/12/19**/ RestController RequestMapping(/user) public class UserController {Autowiredprivate IUserService userService;/*** 查询用户列表* return*/RequestMapping(/list)public ListUser userList(String type) {System.out.println(接收到的数据源类型为 type);return userService.selectUserList(type);} }演示 代码编写好了我们就可以启动项目了 控制台显示项目启动成功后 在浏览器输入http://localhost:8080/user/list?typemaster返回 在浏览器输入http://localhost:8080/user/list?typeslave则返回 功能实现。 参考 具体实现可以参考官方文档多数据源 完结撒花
http://www.pierceye.com/news/489848/

相关文章:

  • 网站建设的实验步骤wordpress linux 建站教程
  • 哪个网站专门做邮轮旅游的加拿大28平台微信
  • 网站设置的用途wordpress 5.1 运行环境
  • 中小企业服务中心网站建设网站域名中文后缀
  • 龙武工会网站怎么做5173游戏交易网站源码
  • 网站建设设计时代创信好海南城乡和住房建设厅网站
  • 大连最好的做网站的公司崇义做网站
  • 圣弘建设股份有限公司网站上海图文设计有限公司
  • gta5资产网站正在建设零基础自学设计
  • 深圳专业制作网站公司吗网站信息化建设报送
  • 苏州网站建设运营推广网站一年多少钱?
  • WordPress国外主机湖北短视频seo营销
  • 南通网站建设电话设计一个网站要多少钱
  • 好的模板网站建设网站规划 时间
  • 昆明seocn整站优化网站建设如何报价
  • 网页设计模板免费网站WordPress生成网站地图
  • 做网站 侵权做外贸怎么看外国网站
  • 网站建设知识点的总结普通网站建设是什么
  • 杭州网站建设费用多少合肥高新城建设计院网站
  • 炫酷特效网站asa8.4 做网站映射
  • 郑州租赁房网站建设九江快乐城
  • 手机网站建站教育模板微信网站 教程
  • 网站的结构犀牛云做网站多少钱
  • 网站服务器用什么配置公司网站建设的视频教程
  • idea做网站网络营销与网站推广的区别
  • 建一家网站多少钱微信小程序在哪里查找
  • 东阳网站推广英文网站源码下载
  • 介绍湛江网站高端网站建设网站定制
  • 网站的特征包括哪些方面wordpress缓存插件 w3
  • 东莞专业网站营销wordpress新建页面模板