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

中建建筑网站有趣的编程代码

中建建筑网站,有趣的编程代码,国外seo比较好的博客网站,优化方案英语必修一答案有些人因为看见所以相信#xff0c;有些人因为相信所以看见 有目录#xff0c;不迷路 前期准备实现演示代码地址参考 最近研究了一下多数据源#xff0c;这篇博客讲的是简单模式#xff0c;下篇博客预计写自动切换模式 前期准备 本篇博客基于SpringBoot整合MyBatis-plus有些人因为相信所以看见 有目录不迷路 前期准备实现演示代码地址参考 最近研究了一下多数据源这篇博客讲的是简单模式下篇博客预计写自动切换模式 前期准备 本篇博客基于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则返回 功能实现。 代码地址 本文代码已开源 git clone https://gitee.com/guqueyue/my-blog-demo.git请切换到gitee分支然后查看dynamicDataSourceSimple模块即可 参考 具体实现可以参考官方文档多数据源 完结撒花
http://www.w-s-a.com/news/732921/

相关文章:

  • 建设视频网站需要什么知识辽阳建设网站
  • 提供o2o网站建设打扑克网站推广软件
  • 制作简单门户网站步骤中国建设局网站查询
  • 漳州专业网站建设网站建设的面试要求
  • 有哪些网站是封面型汕头网站上排名
  • 自动优化网站软件没有了做的新网站做百度推广怎么弄
  • 高陵县建设局网站商标查询网站
  • 郑州建设网站哪家好东莞网络公司排行榜
  • 成都网站开发费用做行程的网站
  • 做地铁建设的公司网站手机网站首页布局设计
  • 福建亨立建设集团有限公司网站搜狗网页游戏大厅
  • 设计网站musil访问量大的网站选择多少流量的服务器何时
  • 公司网站包括哪些内容新网站怎样做外链
  • 淘宝宝贝链接怎么做相关网站广州好蜘蛛网站建设
  • 长春网站制作网页博山区住房和城乡建设局网站
  • 云南大学网站建设解析到网站怎样做
  • 网站维护的要求包括锦溪网站建设
  • 金站网.营销型网站学校安全教育网站建设
  • 临沂市建设局网站公示军事新闻头条2023
  • 购物网网站建设lamp 做网站
  • 做网站网站庄家html5网站开发技术
  • 无锡门户网站制作电话广告设计公司的未来
  • 白云区专业网站建设网页设计模拟试题答案
  • 毕业设计网站代做多少钱制作旅游网站设计概述
  • 网站开发维护运维无人在线电视剧免费观看
  • 电子商务网站建设开题报告展馆网站建设
  • 门户网站建设的背景和意义手机网站前
  • 国内免费视频素材无水印素材网站国家最新消息
  • 襄阳seo站内优化学做网站论坛教程
  • 文明网站建设情况报告wordpress伪静态配置