shardingsphere mybatisplus properties和yml配置实现

shardingsphere mybatisplus properties和yml配置实现

目录结构
在这里插入图片描述
model

package com.oujiong.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.util.Date;/*** user表*/
@TableName("user")
@Data
public class User {/*** 主键*/private Long id;/*** 姓名*/private String name;/*** 性别*/private String sex;/*** 年龄*/private Integer age;/****/private Date createTime;/****/private Date updateTime;/*** 是否删除 1删除 0未删除*/private Integer status;public User(Long id, String name, String sex, Integer age) {this.id = id;this.name = name;this.sex = sex;this.age = age;}
}

mapper

package com.oujiong.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.oujiong.entity.User;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/*** @Description: 用户mapper*/
@Mapper
public interface UserMapper extends BaseMapper<User> {/*** 批量插入** @param list 插入集合* @return 插入数量*/int insertForeach(List<User> list);/*** 获取所有用户*/List<User> selectAll();}

servie

package com.oujiong.service;import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.oujiong.entity.User;
import com.oujiong.mapper.UserMapper;
import java.util.List;/*** @Description: 用户相关接口**/
public interface UserService  {/***  获取所有用户信息*/List<User>  list();/***  批量 保存用户信息* @param userVOList*/String  insertForeach(List<User> userVOList);}

seviceImp

package com.oujiong.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.oujiong.entity.User;
import com.oujiong.mapper.UserMapper;
import com.oujiong.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;/*** @author xub* @Description: 用户实现类* @date 2019/8/8 上午9:13*/
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {@Autowiredprivate UserMapper userMapper;@Overridepublic  List<User> list() {List<User> users =new ArrayList<>();User user = this.getById(102);
//        User user = userMapper.selectById(102);users.add(user);
//        List<User> users = userMapper.selectAll();return users;}@Overridepublic String insertForeach(List<User> userList) {for (User user : userList) {user.setCreateTime(new Date());user.setUpdateTime(new Date());user.setStatus(0);}//批量插入数据userMapper.insertForeach(userList);return "保存成功";}
}

Application

package com.oujiong;import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;/*** @Description: 启动类** @author xub* @date 2019/10/08 下午6:33*/
@MapperScan("com.oujiong.mapper.**")
@SpringBootApplication
public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);}}

mapper.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.oujiong.mapper.UserMapper"><resultMap id="BaseResultMap" type="com.oujiong.entity.User"><id column="id" jdbcType="BIGINT" property="id" /><result column="name" jdbcType="VARCHAR" property="name" /><result column="sex" jdbcType="VARCHAR" property="sex" /><result column="age" jdbcType="INTEGER" property="age" /><result column="create_time" jdbcType="TIMESTAMP" property="createTime" /><result column="update_time" jdbcType="TIMESTAMP" property="updateTime" /><result column="status" jdbcType="INTEGER" property="status" /></resultMap><sql id="Base_Column_List">id, name, sex, age, create_time, update_time, status</sql><select id="selectAll"  resultMap="BaseResultMap">select<include refid="Base_Column_List" />from tab_user</select><insert id="insertForeach" parameterType="java.util.List" useGeneratedKeys="false">insert into tab_user (id, name, sex,age, create_time, update_time,status)values<foreach collection="list" item="item" index="index" separator=",">(#{item.id,jdbcType=BIGINT}, #{item.name,jdbcType=VARCHAR}, #{item.sex,jdbcType=VARCHAR},#{item.age,jdbcType=INTEGER}, #{item.createTime,jdbcType=TIMESTAMP}, #{item.updateTime,jdbcType=TIMESTAMP},#{item.status,jdbcType=INTEGER})</foreach></insert>
</mapper>

properties和yml配置 目录结构和java文件配置都一致

properties

server.port=8088#指定mybatis信息
mybatis.config-location=classpath:mybatis-config.xml## 一个实体类对应多张表,覆盖
spring.main.allow-bean-definition-overriding=true#数据库
spring.shardingsphere.datasource.names=master0,slave0spring.shardingsphere.datasource.master0.type=com.alibaba.druid.pool.DruidDataSource
spring.shardingsphere.datasource.master0.driver-class-name=com.mysql.jdbc.Driver
spring.shardingsphere.datasource.master0.url=jdbc:mysql://139.155.6.193:3306/sharding_test_1?characterEncoding=utf-8
spring.shardingsphere.datasource.master0.username=root
spring.shardingsphere.datasource.master0.password=MyNewPass4!spring.shardingsphere.datasource.slave0.type=com.alibaba.druid.pool.DruidDataSource
spring.shardingsphere.datasource.slave0.driver-class-name=com.mysql.jdbc.Driver
spring.shardingsphere.datasource.slave0.url=jdbc:mysql://139.155.6.193:3306/sharding_test_2?characterEncoding=utf-8
spring.shardingsphere.datasource.slave0.username=root
spring.shardingsphere.datasource.slave0.password=MyNewPass4!#数据分表规则
#指定所需分的表(spring.shardingsphere.sharding.tables.user注意user)
spring.shardingsphere.sharding.tables.user.actual-data-nodes=master0.tab_user$->{0..1}
#指定主键
spring.shardingsphere.sharding.tables.user.table-strategy.inline.sharding-column=id
#分表规则为主键除以2取模
spring.shardingsphere.sharding.tables.user.table-strategy.inline.algorithm-expression=tab_user$->{id % 2}# 读写分离
spring.shardingsphere.masterslave.load-balance-algorithm-type=round_robin
spring.shardingsphere.masterslave.name=ms
#这里配置读写分离的时候一定要记得添加主库的数据源名称 这里为master0
spring.shardingsphere.sharding.master-slave-rules.master0.master-data-source-name=master0
spring.shardingsphere.sharding.master-slave-rules.master0.slave-data-source-names=slave0#spring.shardingsphere.sharding.binding-tables[0]=user
#spring.shardingsphere.mode.type=Memory
#spring.shardingsphere.mode.repository.type=File
#spring.shardingsphere.mode.overwrite=true#打印sql
spring.shardingsphere.props.sql.show=true

spring.shardingsphere.sharding.tables.user注意user与实体类、xml相对应

在这里插入图片描述

yml

#服务器设置
server:port: 8090spring:# 文件上传需要main:allow-bean-definition-overriding: trueshardingsphere:#    数据库名称datasource:names: master0,slave0master0:type: com.alibaba.druid.pool.DruidDataSourcedriver-class-name: com.mysql.jdbc.Driverurl: jdbc:mysql://139.155.6.193:3306/sharding_test_1?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8username: rootpassword: MyNewPass4!slave0:type: com.alibaba.druid.pool.DruidDataSourcedriver-class-name: com.mysql.jdbc.Driverurl: jdbc:mysql://139.155.6.193:3306/sharding_test_2?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8username: rootpassword: MyNewPass4!#      配置主从规则# ====================== ↓↓↓↓↓↓ 读写分离配置 ↓↓↓↓↓↓ ======================master-slave-rules:master0:# 主库masterDataSourceName: master0# 从库slaveDataSourceNames:- slave0# 从库查询数据的负载均衡算法 目前有2种算法 round_robin(轮询)和 random(随机)# 算法接口 org.apache.shardingsphere.spi.masterslave.MasterSlaveLoadBalanceAlgorithm# 实现类 RandomMasterSlaveLoadBalanceAlgorithm 和 RoundRobinMasterSlaveLoadBalanceAlgorithmloadBalanceAlgorithmType: ROUND_ROBIN#  配置分片规则sharding:tables:user:logicTable: tab_useractual-data-nodes: master0.tab_user$->{0..1}
#          database-strategy:
#            inline:
#              sharding-column: id
#              algorithm-expression: master0table-strategy:inline:sharding-column: idalgorithm-expression: tab_user$->{id % 2}props:sql:show: true                                          # 打印SQL

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/22539.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

开发工具VSCODE的使用记录

vscode简介 Visual Studio Code&#xff08;简称“VS Code” [1] &#xff09;是Microsoft在2015年4月30日Build开发者大会上正式宣布一个运行于 Mac OS X、Windows和 Linux 之上的&#xff0c;针对于编写现代Web和云应用的跨平台源代码编辑器&#xff0c; [2] 可在桌面上运行…

python详解(8)——进阶(2):初步算法

目录 &#x1f3c6;一、前言 &#x1f3c6;二、时间复杂度 &#x1f3c6;三、递推 &#x1f6a9;1.简介 &#x1f6a9;2.爬楼梯 &#x1f6a9;3、猴子吃桃 &#x1f3c6;四、递归 &#x1f6a9;1、简介 &#x1f6a9;2、递归求斐波那契数列 &#x1f6a9;3、递归求阶乘 &#x…

“开放合作 共享未来”华秋联手伙伴共创硬件生态,助力物联网硬件加速创新

2023年7月11日&#xff0c;华秋携产品与方案亮相慕尼黑上海电子展&#xff08;electronica China&#xff09;&#xff0c;并与5家生态伙伴签署硬件生态共创战略协议&#xff0c;通过“硬件软件供应链”的合作模式&#xff0c;发挥各自行业优势&#xff0c;共同推动电子产业的创…

springboot时间管理系统

通过前面的功能分析可以将时间管理系统的功能分为管理员&#xff0c;用户两个部门&#xff0c;系统的主要功能包括首页&#xff0c;个人中心&#xff0c;系统公告管理&#xff0c;用户管理&#xff0c;时间分类管理&#xff0c;事件数据管理&#xff0c;目标数据管理&#xff0…

k8s 持久化存储

我们继续来查看 k8s 的卷&#xff0c;上一次我们分享了将磁盘挂载到容器中&#xff0c;empyDir 和 gitRepo 都是会随着 pod 的启动而创建&#xff0c;随着 pod 的删除而销毁 那么我们或许会有这样的需求&#xff0c;期望在 pod 上面读取节点的文件或者使用节点的文件系统来访问…

uniapp下上传图片后图片裁剪加图片旋转,支持H5和app

效果图 代码如下 <template><view class"container" v-show"isShow"><view><view class"cropper-content"><view v-if"isShowImg" class"uni-corpper":style"width: cropperInitW px;he…

Docker 安装 Nacos 单节点

Docker 安装 Nacos 单节点 1 搜索 Nacos2 下载 Nacos3 安装 Nacos Nacos&#xff08;中文名“云注册中心和配置中心”&#xff09;是一个用于动态服务发现、配置管理和服务管理的开源项目&#xff0c;它由阿里巴巴集团开发并开源。Nacos提供了一种简单而强大的方式来实现微服务…

【力扣JavaScript】1047. 删除字符串中的所有相邻重复项

/*** param {string} s* return {string}*/ var removeDuplicates function(s) {let stack[];for(i of s){let prevstack.pop();if(prev!i){stack.push(prev);stack.push(i);}}return stack.join(); };

no-unused-vars

找到 package.json 在rules输入 "no-unused-vars":"off"

PADS Logic怎么显示与隐藏元件的管脚编号和管脚名称

在绘制原理图元件的时候&#xff0c;有时管脚数量过多&#xff0c;管脚编号会显的特别密。既可以选择隐藏管脚编号&#xff0c;显示主要目的就是分辨出信号管脚。 第一步&#xff1a;在创建元件界面&#xff0c;执行菜单命令设置-显示颜色&#xff0c;如图1所示 图1 显示颜色选…

InsCode Stable Diffusion使用教程【InsCode Stable Diffusion美图活动一期】

记录一下如何使用 InsCode Stable Diffusion 进行 AI 绘图以及使用感受。 一、背景介绍 目前市面上比较权威&#xff0c;并能用于工作中的 AI 绘画软件其实就两款。一个叫 Midjourney&#xff08;简称 MJ&#xff09;&#xff0c;另一个叫 Stable Diffusion&#xff08;简称 …

EMQ 联合英特尔、云轴科技 ZStack 推出泛工业物联网联合解决方案

近日,EMQ 携手英特尔与云轴科技 ZStack 推出泛工业物联网联合解决方案,基于云原生超融合,在挖掘生产数据价值的同时有效降低综合建设成本,为用户提供一站式数据链路及 IT 基础设施解决方案。 工业能耗大户面临的关键挑战 工业正迈入一个全新的物联网时代,海量数据计算需求涌现…