千家信息网

如何编写mybatis-plus、hikariCP动态数据源

发表于:2024-12-13 作者:千家信息网编辑
千家信息网最后更新 2024年12月13日,本篇内容主要讲解"如何编写mybatis-plus、hikariCP动态数据源",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"如何编写mybatis-plu
千家信息网最后更新 2024年12月13日如何编写mybatis-plus、hikariCP动态数据源

本篇内容主要讲解"如何编写mybatis-plus、hikariCP动态数据源",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"如何编写mybatis-plus、hikariCP动态数据源"吧!

最近的项目使用多数据源,于是想起之前mybatis-plus系列的dynamic-datasource-springboot-starter 由于springboot2.x使用hikari作为默认数据库连接池,就是用springboot2.X+mybatis-plus3.x+dynamic-datasource-springboot-starter3.0.0进行了集成,代码如下 MybatisConfiguration.java

package com.share.config;import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;@Configurationpublic class MybatisConfiguration {    /**     * 分页插件注册     * @return     */    @Bean    public PaginationInterceptor paginationInterceptor() {        return new PaginationInterceptor();    }}

BaseEntity.java

package com.share.domain;import com.baomidou.mybatisplus.annotation.IdType;import com.baomidou.mybatisplus.annotation.TableField;import com.baomidou.mybatisplus.annotation.TableId;import lombok.Data;import java.io.Serializable;import java.util.Date;@Datapublic class BaseEntity implements Serializable {    private static final long serialVersionUID = 5741450406019549099L;    @TableId(type = IdType.AUTO)    private Long id;    @TableField(value = "create_time")    private Date createTime;    @TableField(value = "update_time")    private Date updateTime;    @TableField(value = "delete_time")    private Date deleteTime;}

User.java

package com.share.domain;import com.baomidou.mybatisplus.annotation.TableField;import com.baomidou.mybatisplus.annotation.TableLogic;import com.baomidou.mybatisplus.annotation.TableName;import com.baomidou.mybatisplus.annotation.Version;import lombok.Data;import java.util.Date;@Data@TableName(value ="user")public class User extends BaseEntity {    @Version    private Integer version;    private String username;    private String nickname;    private String password;    private String email;    private String phone;    private Integer age;    private Integer gender;    private Integer status;    @TableField(value = "last_login_time")    private Date lastLoginTime;    @TableLogic(value = "0", delval = "1")    private Integer del;}

UserMapper.java

package com.share.mapper;import com.baomidou.mybatisplus.core.mapper.BaseMapper;import com.share.domain.User; /**- @desc:- @author:caifan- @date:2020/3/15- /public interface UserMapper extends BaseMapper {}

UserRest.java

package com.share.rest;import com.share.domain.User;import com.share.service.UserService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.http.MediaType;import org.springframework.web.bind.annotation.RequestBody;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import org.springframework.web.bind.annotation.RestController;import java.util.Date;@RestController@RequestMapping("/rest/user")public class UserRest {    @Autowired    private UserService userService;@RequestMapping(value = "/save1", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)public void save1(@RequestBody User user) {    if (null == user.getUpdateTime()) {        user.setUpdateTime(new Date());    }    userService.saveUser1(user);}@RequestMapping(value = "/save2", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)public void save2(@RequestBody User user) {    if (null == user.getUpdateTime()) {        user.setUpdateTime(new Date());    }    userService.saveUser2(user);}}

UserService.java

package com.share.service;  import com.baomidou.dynamic.datasource.annotation.DS;  import com.share.domain.User;  import com.share.mapper.UserMapper;  import org.springframework.stereotype.Service;  import org.springframework.transaction.annotation.Transactional;  import javax.annotation.Resource; @Service @Transactional @DS("ds1") public class UserService {     @Resource     private UserMapper userMapper;     public void saveUser1(User user) {         userMapper.insert(user);     }         public User findById(Long id) {         return userMapper.selectById(id);     }         @DS("ds2")     public void saveUser2(User user) {         userMapper.insert(user);     } }

MybatisApplication.java

 package com.share; import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication @MapperScan(value = {"com.share.mapper"}) public class MybatisApplication {     public static void main(String[] args) {         SpringApplication.run(MybatisApplication.class, args);     } }

配置文件application.properties

server.port=9001mybatis-plus.global-config.db-config.id-type=automybatis-plus.global-config.db-config.logic-delete-field=delmybatis-plus.global-config.db-config.logic-delete-value=1mybatis-plus.global-config.db-config.logic-not-delete-value=0mybatis-plus.global-config.db-config.field-strategy=not_emptyspring.datasource.dynamic.primary=ds1spring.datasource.dynamic.datasource.ds1.username=rootspring.datasource.dynamic.datasource.ds1.password=123456spring.datasource.dynamic.datasource.ds1.url=jdbc:mysql://localhost:3306/demo_ds_0spring.datasource.dynamic.datasource.ds1.driver-class-name=com.mysql.jdbc.Driver#动态数据源配置spring.datasource.dynamic.datasource.ds1.hikari.jdbc-url=jdbc:mysql://localhost:3306/demo_ds_0spring.datasource.dynamic.datasource.ds1.hikari.driver-class-name=com.mysql.jdbc.Driverspring.datasource.dynamic.datasource.ds1.hikari.username=rootspring.datasource.dynamic.datasource.ds1.hikari.password=123456spring.datasource.dynamic.datasource.ds1.hikari.connection-test-query=select 1 from dualspring.datasource.dynamic.datasource.ds1.hikari.is-auto-commit=truespring.datasource.dynamic.datasource.ds2.username=rootspring.datasource.dynamic.datasource.ds2.password=123456spring.datasource.dynamic.datasource.ds2.url=jdbc:mysql://localhost:3306/demo_ds_1spring.datasource.dynamic.datasource.ds2.driver-class-name=com.mysql.jdbc.Driverspring.datasource.dynamic.datasource.ds2.hikari.jdbc-url=jdbc:mysql://localhost:3306/demo_ds_1spring.datasource.dynamic.datasource.ds2.hikari.driver-class-name=com.mysql.jdbc.Driverspring.datasource.dynamic.datasource.ds2.hikari.username=rootspring.datasource.dynamic.datasource.ds2.hikari.password=123456

到此,相信大家对"如何编写mybatis-plus、hikariCP动态数据源"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

数据 数据源 动态 内容 学习 配置 实用 更深 代码 兴趣 实用性 实际 就是 插件 操作简单 数据库 文件 方法 更多 朋友 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 数字社区用的是什么数据库 访问服务器失败请检查网络后重试 网络安全廉政风险有哪些 电脑和服务器通过什么口连接 dde分布式数据库原理 在哪新开一家软件开发公司好 长沙网络技术学院 自动化软件开发好找工作吗 松江区数据网络技术报价 电算化不能登录到服务器 网络安全平台的作用是什么 电力管理信息系统数据库 手机老是弹出服务器怎么删除 做android的软件开发 数据库数据怎么显示中文 腾讯云服务器怎么下载mysql 新城区网络安全集中宣传 泰安联想服务器代理零售 分布式数据库是什么的产物 梦幻新诛仙笑傲江湖服务器 多盟智胜网络技术怎么样 王者荣耀Q区的所有服务器 安徽发布微博网络安全宣传 服务器的管理后台 软件开发人员数目 mocha2019显示不能连接媒体服务器 广西柳州网络安全宣传 dev c 软件开发 echo服务器 网络安全渗透工程师培训教材
0