
Database
HealerJean.
欢迎大家加我为好友,一起探讨代码的乐趣
展开
-
MybatisPlus数据库加解密
前言Github:https://github.com/HealerJean博客:http://blog.healerjean.com为了保护用户隐私,我们需要对数据库用户关键数据,入库加密,取出来解密。为了我们系统自身的安全数据库连接用户名和密码都要加解密1、数据库连接加解密1.1、数据库连接配置####################################### DB...原创 2020-04-10 17:14:27 · 11896 阅读 · 9 评论 -
分库分表之_分库分表 + 复杂查询
前言Github:https://github.com/HealerJean博客:http://blog.healerjean.com代码配置暂时和和分库分表之_分库分表相同。但是为了测试下面的join查询将user表的数量调整到了和company表的数量一致,以及给company添加了一个新的字段ref_user_id1、开始Demo1.1、hlj-08-sharding_db_t...原创 2020-04-01 19:28:16 · 4114 阅读 · 0 评论 -
分库分表之_分库分表+读写分离
前言Github:https://github.com/HealerJean博客:http://blog.healerjean.com1、开始Demo1.1、hlj-07-sharding_db_table-read_write.sqldrop database if exists ds_0;create database ds_0 character set 'utf8' coll...原创 2020-04-01 19:22:45 · 496 阅读 · 0 评论 -
分库分表之_分库分表
前言Github:https://github.com/HealerJean博客:http://blog.healerjean.com1、开始Demo1.1、hlj-06-sharding_db_table.sqldrop database if exists ds_0;create database ds_0 character set 'utf8' collate 'utf8_g...原创 2020-04-01 19:22:11 · 398 阅读 · 0 评论 -
分库分表之_只分表不分库 + 读写分离
前言Github:https://github.com/HealerJean博客:http://blog.healerjean.com1、开始Demo1.1、hlj-05-sharding_table-read_write.sqldrop database if exists ds_0;create database ds_0 character set 'utf8' collate...原创 2020-04-01 19:21:46 · 1021 阅读 · 0 评论 -
分库分表之_只分表不分库
前言Github:https://github.com/HealerJean博客:http://blog.healerjean.com1、开始Demo1.1、hlj-04-sharding-table.sqldrop database if exists ds_0;create database ds_0 character set 'utf8' collate 'utf8_gene...原创 2020-04-01 19:20:53 · 1842 阅读 · 0 评论 -
分库分表之_垂直拆分(不同的表在不同的库中)
前言Github:https://github.com/HealerJean博客:http://blog.healerjean.com1、开始Demo1.1、hlj-02-vertical_shard.sqldrop database if exists ds_0;create database ds_0 character set 'utf8' collate 'utf8_gene...原创 2020-04-01 19:19:39 · 1712 阅读 · 0 评论 -
分库分表之_读写分离
前言Github:https://github.com/HealerJean博客:http://blog.healerjean.com前言Github:https://github.com/HealerJean博客:http://blog.healerjean.com1、开始Demo1.1、hlj-01-read-write.sqldrop database if exists d...原创 2020-04-01 19:19:04 · 332 阅读 · 0 评论 -
分库分表解释以及问题出现
前言博主github博主个人博客http://blog.healerjean.com1、解释我们知道互联网是由非常庞大的用户组成,所以肯定有非常绝大的请求,这些请求又会产生非常巨大的信息存储在数据库中,由于数据量非常巨大,单个数据库的表示很难容纳所有数据,所以就有了分库分表的需求。 对于数据的拆分主要有两个方面 :垂直拆分和水平拆分1.1、垂直拆分垂直拆分: 根据业务的维度,将...原创 2020-04-01 19:18:18 · 2525 阅读 · 0 评论 -
ShardingSphere和MybatisPlus版本问题
Github:https://github.com/HealerJean博客:http://blog.healerjean.com错误来源我使用的ShardingSphere和MybatisPlus做的分库分表,当版本分表为如下的时候没有任何问题<!--mybatis-plus--><dependency> <groupId>com.baomi...原创 2020-04-01 15:45:27 · 5811 阅读 · 4 评论 -
SpringBoot整合Mybatis-Plus
前言博主github博主个人博客http://blog.healerjean.com1、SpringBoot整合Mybatis-Plus1.1、依赖1.1.1、mybatis-plus依赖<!--mybatis-plus--><mybatis-plus-boot-starter.version>3.3.1.tmp</mybatis-plus-boot-s...原创 2020-03-10 10:30:49 · 535 阅读 · 0 评论 -
SpringBoot使用java_jar启动Mybatis无法识别实体类别名的解决
前言博主github博主个人博客http://blog.healerjean.com恶心到吐血,找一天错误了,恶心啊。一直在找代码问题,快下班了,看到了一位大神的博客,解决了问题 ,真的快抑郁了大神博客 https://blog.youkuaiyun.com/rainbow702/article/details/632557361、报错信息 ...] org.hibernate.jp...原创 2020-01-14 17:49:09 · 1427 阅读 · 0 评论 -
sql大全_长期更新
1、Mybatis和Hibernate1.1、获取结果为list<map<String,Object>>1.1.1、mybatis解释1、返回类型必须是java.util.HashMap2、map中的value 必须是Objecrt1.1.1.1、mapper接口**public interface HealerJeanMapper { L...原创 2019-11-19 21:09:37 · 1577 阅读 · 0 评论 -
3、多数据源配置的的问题和使用
前言在3月份和4月份的时候我们分别用自定义注解aop和事物注解解决了多数据源,但是在使用过程中出现了很多的问题,下面将一些新手不知道的问题做一个简单的讲解1、多数据源混使用注解的方式可以扫描不同数据库但是使用的是同一个mapper、repository、实体,而且可以分别操作各自的数据库,但是不能联合同时操作多个数据库2、如果是事物注解,则不可以扫描同一个mapper、...原创 2018-07-17 15:49:35 · 817 阅读 · 0 评论 -
Hibernate缓存
前言博主github博主个人博客http://blog.healerjean.com1、hibernate get/load1.1、get方法:首先在session缓存中查找,然后在二级缓存中查找,还没有就查询数据库,数据库中没有就返回null1.2、load方法:根据是否懒加载分情况讨论1.2.1、若为true1、先在Session缓存中查找,看看该id对应的对象是否存在2、...原创 2019-03-11 15:33:16 · 666 阅读 · 0 评论 -
Mysql索引的数据结构
前言博主github博主个人博客http://blog.healerjean.comInnoDB是Mysql的默认存储引擎(Mysql5.5.5之前是MyISAM,文档)我们知道,数据库查询是数据库的最主要功能之一。我们都希望查询数据的速度能尽可能的快,因此数据库系统的设计者会从查询算法的角度进行优化。最基本的查询算法当然是顺序查找(linear search),这种复杂度为O(n)的算...原创 2019-03-11 15:32:31 · 297 阅读 · 0 评论 -
Mysql数据库字段设计
前言博主github博主个人博客http://blog.healerjean.com@Id@GeneratedValue(strategy = GenerationType.IDENTITY)private Long id;private Long adminId; //创建者idprivate String userName ; //新客户名称【id】邮箱private B...原创 2019-04-25 16:38:12 · 1811 阅读 · 0 评论 -
Mysql中解释Explain 详解
前言博主github博主个人博客http://blog.healerjean.com优化神器 Explain 使用分析create table d001_index( id bigint(16) unsigned NOT NULL AUTO_INCREMENT primary key , name varchar(128) DEFAULT NULL, age bi...原创 2019-05-09 11:18:35 · 2764 阅读 · 0 评论 -
Mybatis中mapper继承
前言博主github博主个人博客http://blog.healerjean.com1、mapper1.1、父mapperpublic interface FatherMapper { DemoEntity findById1(); DemoEntity extendMethod();}1.2、子mapperpublic interface SonMappe...原创 2019-05-15 15:11:13 · 10478 阅读 · 0 评论 -
Mybatis和Jpa的扫描配置
前言博主github博主个人博客http://blog.healerjean.com1、mybatis配置1.1、扫描Pojo和Example、mapper.java和mapper.xml <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> ...原创 2019-06-14 17:02:48 · 1739 阅读 · 0 评论 -
2、springBoot集成mybatis分页插件PageHelper
前言 PageHelper是一款非常好用的分页插件,它和Mybatis工作在一起,可以大幅提升开发效率。PageHelper是通过Mybatis的拦截器插件原理实现的。 1、导入依赖<!--分页插件--><dependency> <groupId>com.github.pagehelper</groupId>...原创 2018-04-27 17:36:13 · 338 阅读 · 0 评论 -
1、SpringBoot继承mybatis实现类似JPA方法
前言主要是使用到了逆向工程(和之前逆向工程有点区别 ,就是不需要生成exmaple类)和插件tk.mybatis 1、依赖如下<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w...原创 2018-04-27 17:35:06 · 2096 阅读 · 0 评论 -
hibernate编辑实体日期的更新问题
前言对于刚刚接触hibernate的开发者来说,它确实是一个伟大的东西,但如果针对修改不太明白的话,那确实挺伤的。首先修改是根据id查找到实体。然后和保存一样,也是用save进行存储。针对一些cdate创建日期,udate更新日期。我们希望创建日期只在添加是实体的时候创建,但是修改实体的时候cdate不发生改变,但是udate是在每次更新实体的时候改变,包括添加实体的时候。好了废话,不多说。开始吧!原创 2018-03-13 21:44:53 · 1428 阅读 · 0 评论 -
分库分表解释以及问题出现
前言博主github博主个人博客http://blog.healerjean.com1、解释我们知道互联网是由非常庞大的用户组成,所以肯定有非常绝大的请求,这些请求又会产生非常巨大的信息存储在数据库中,由于数据量非常巨大,单个数据库的表示很难容纳所有数据,所以就有了分库分表的需求。 对于数据的拆分主要有两个方面 :垂直拆分和水平拆分1.1、垂直拆分垂直拆分: 根据业务的维度,将原...原创 2019-09-29 14:23:05 · 304 阅读 · 0 评论 -
Mysql存储过程_函数等
前言博主github博主个人博客http://blog.healerjean.com2、mysql的变量(上面没有declare会报错)可能会发现直接set 变量名=值;也可以定义“用户变量”;但这是一种不好的行为【这种行为忽略了各自变量的功能】,因为不知道会不会跟系统变量冲突(系统变量,不能随便定义名字,否则会报错)),所以最好用户变量加上@,系统变量加上@@2.1、系统变量(不能随...原创 2019-03-11 15:33:03 · 210 阅读 · 0 评论 -
Mysql存储过程调用
前言博主github博主个人博客http://blog.healerjean.com准备数据CREATE TABLE `demo_entity` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `name` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL, `age` bigint(20) DEF...原创 2019-03-11 15:33:09 · 5699 阅读 · 0 评论 -
mysql索引的新手入门详解
前言如果是小白的话,我觉得看到这篇文章一定会对博主赞赏有加,因为实在是太好了,没错,博主就是要让你喜欢上。1、索引索引是表的目录,在查找内容之前可以先在目录中查找索引位置,以此快速定位查询数据。对于索引,会保存在额外的文件中。 2、索引,是数据库中专门用于帮助用户快速查询数据的一种数据结构。类似于字典中的目录,查找字典内容时可以根据目录查找到数据的存放位置,然后直接获取即...原创 2018-07-27 17:16:59 · 43747 阅读 · 16 评论 -
mysql添加备注信息
前言这连天有人问我一些mysql的备注信息,不得已还是写一遍博客吧1、创建表的时候,添加表名备注和字段备注CREATE TABLE `healerjean_comment` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `name` varchar(32) NOT NULL COMMENT '名字备注', `emai...原创 2018-07-27 16:16:51 · 30027 阅读 · 0 评论 -
JAVA一次性读取Mysql几十万条大数据的处理
前言不用说也知道,一次性读取出那么大的数据是疯了吗,虚拟机能承受的聊那么大的对象吗?,所以我们需要分批进行读取。下面是使用fenduan 每1万条进行一次读取执行 public void keyToVolumn() { log.info("开始进行转移"); Long count = couponTaoKeDataMapper.cou...原创 2018-07-26 19:02:01 · 26882 阅读 · 1 评论 -
利用另一张表update更新字段_insert语句使用另一张表数据
前言1、insert语句1、Insert into 语句形式为:Insert into Table2(field1,field2,...) select value1,value2,... from Table1要求目标表Table2必须存在,由于目标表Table2已经存在,所以我们除了插入源表Table1的字段外,还可以插入常量。示例如下:举例:Inser...原创 2018-07-26 15:35:50 · 4442 阅读 · 0 评论 -
SpringBoot独立事物控制以及异常问题
前言再myfalse github中有spring控制的独立事物,这里是springBoot我们用下注解采用的独立事物1、新开启一个事物@Transactional(propagation = Propagation.REQUIRES_NEW, rollbackFor = Exception.class)public void keyTransactional(Cou...原创 2018-07-17 16:49:25 · 544 阅读 · 0 评论 -
数据库卡死_一张表卡死其他表正常
前言博主在使用使用大量定时器任务对数据库操作的时候,中间接到一个任务,需要直接对库里的字段进行修改,随性使用了一个alter table name drop column 命令结果卡主了。卡主不要看,我们可以使用命令来看看到底是哪个操作卡主了,然后将它kill掉1、开始接近,命令查看select id, db, user, host, command, time, ...原创 2018-07-17 16:01:24 · 8735 阅读 · 1 评论 -
mysql关于日期的一些常见使用
前言1、date_format多个条件分组,通过传入的日期,以及自身的tpe,activityId进行分组date_format(passTime,'%Y-%m-%d %H:%i:%S')SELECT date_format(passTime,'%Y-%m-%d'),type ,activityId, sum(ifnull(settleMoney,0)) a...原创 2018-06-08 12:01:09 · 373 阅读 · 0 评论 -
mysql存储表情符号报错
前言博主再开发微信公众号获取用户姓名的时候,出现了很大的问题,一开始只是设计的数据库的编码为UTF-8,但是在当用户的nickName设置为表情的符号的时候就会出错, utf8最大的一个特点,就是它是一种变长的编码方式。它可以使用1~4个字节表示一个符号,根据不同的符号而变化字节长度。其中Emoji表情是4个字节,而MySql的utf8编码最多3个字节,所以导致了数据插不进去。...原创 2018-06-07 16:06:29 · 10193 阅读 · 6 评论 -
2、多数据源配置之自定义注解aop拦截进行配置
前言其实这里可以使用很多库的,但是我这里却只用了2个库,一个库one作为默认库,另一个库作为指定库,当然one库也可以指定。先提供给类注解,如果方法上有注解则先看方法里面的1、自定义注解package com.hlj.many.datasourse.data;/** * @Description 自定义注解 * @Date 2018/4/24 下午6:09...原创 2018-04-27 17:39:47 · 320 阅读 · 0 评论 -
1、多数据源配置之Transactional注解不同的事务管理器控制
前言1、一定注意是maven项目,在添加mybatis的Resource中扫描classpath的过程中可能会报错,所以需要加入2、这里和我后面一章介绍的差不多,但是需要在使用中注意的是,我们的实体类,尽量不要放到一起,尽管可以使用。1、因为加入我们的实体类放到一起。很容易混淆不同数据库的表2、如果是springBoot关于hibernate自动生成表则可能在每个数据源...原创 2018-04-27 17:39:12 · 4582 阅读 · 5 评论 -
excel数据制导入数据库
前言如果开发多的朋友们肯定经理过,将excel导入数据中。没错,可能第一眼想到的是管理工具,我也是,那又怎么样。管理工具即使好用。万一不好使呢(可怜的博士mac上的就不好使了)1、打开excel数据2、随便找一列,(最好是和第一行对齐)1、在第一格输入="insert into thisIdfaflag(idfa) values('"&A1&...原创 2018-03-27 11:37:08 · 215 阅读 · 0 评论 -
Mysql乐观锁和悲观锁
前言https://blog.youkuaiyun.com/xz0125pr/article/details/51698507 https://www.cnblogs.com/laoyeye/p/8097684.html1、不使用锁会产生的问题1.1、 丢失更新:一个事务的更新覆盖了其它事务的更新结果,就是所谓的更新丢失。例如:用户A把值从6改为2,用户B把值从2改为6...原创 2018-09-16 17:50:11 · 199 阅读 · 0 评论 -
Mysql事物隔离级别
前言事务的并发问题1、脏读:事务A读取了事务B更新的数据,然后B回滚操作,那么A读取到的数据是脏数据,举例:当一个事务读取其它完成一半事务的记录时,就会发生脏读取。例如:用户A,B看到的值都是6,用户B把值改为2,用户A读到的值仍为6。2、不可重复读:事务 A 多次读取同一数据,事务 B 在事务A多次读取的过程中,对数据作了更新并提交,导致事务A多次...原创 2018-09-17 14:13:12 · 217 阅读 · 0 评论 -
Mysql中Update和Delete返回值的问题
前言我们都知道update和delete语句返回的是我们修改的行数,那么在jpa和mybatis中是如果实现的呢,请看下面当然我们也可以设置为void,这是无所谓的,因为有了返回值(int ,Integer都可以),我不要也可以啊,这与我们自己的业务逻辑有关系1、jpapublic interface DemoEntityRepository extends CrudRepositor...原创 2019-01-09 17:12:00 · 14717 阅读 · 1 评论