1 核心概念真实表 物理表。逻辑表 不考虑数据的实际存放位置,将分别存放在不同数据库分片中的数据,仍然使用同一个名称来操作的表结构的名称。这个名称就是逻辑表的表名。数据节点 在分片之后,数据实际存放在某个数据库分片的位置信息。如节点1、节点2。绑定表 指的是分片规则一致的关系表(主表、子表)。子表数据与有关联关系的主表数据,将存储在同一个数据库分片中。可以提
1 使用过程1.1 maven依赖在项目的pom.xml文件中加入以下内容<dependency> <groupId>org.apache.shardingsphere</groupId> <artifactId>sharding-jdbc-core</artifactId> <version>4.1.1</
1 ShardingJDBC 是什么Sharding-JDBC 是 Apache ShardingSphere 生态圈中一款开源的分布式数据库第三方组件。ShardingSphere 由 Sharding-JDBC、Sharding-Proxy 和 Sharding-Sidecar 3款相互独立的产品组成。它们均提供标准化的数据分片、分布式事务和数据库治理功能,适用于 Java 同构、异构语言、容
1 代码生成器简介代码生成器可以自动生成MybatisPlus代码。如果不愿意手动编写和数据表对应的实体类及相关映射文件,MybatisPlus为我们提供了相关的效率提升工具(偷懒神器)——代码生成器,它可以读取数据库中的表信息,生成相应的可以供我们使用 MybatisPlus 代码。与 Mybatis 的代码生成器 Mybatis Generator 二者的区别是:Mybatis Generat
1 为什么需要做注入MybatisPlus的方法是有限的,因为都是继承于 BaseMapper 父接口,这个父接口中的方法,虽然方法丰富,但有时可能无法满足我们更加多样的需求。因此,需要使用SQL注入器来自定义全局方法,将其注入到全局中,这样所有的 Mapper 类都能调用到该方法。以需要创建的方法为 selectAll()为例进行说明。2 创建注入方法类注入方法类,需要继承自 Abst
1 自动填充功能介绍自动填充功能可以在插入或修改时为对象属性自动赋值。之前学习了逻辑删除字段,在向数据库插入数据时,都需要设置 isDeleted=0,这在进行频繁地数据插入时就显得有些繁琐,于是 MybatisPlus 就为我们提供了自动填充的功能。修改实体类,为需要自动填充的字段在注解 @TableField 中添加 fill 属性。@TableLogic @TableField(value
1 逻辑删除的概念逻辑删除不会在数据库中删除数据,只是通过一个字段用来标识被删除的记录,数据仍然保存在数据库中。在实际的工作当中,因为数据非常重要,为了防止因用户误操作删除数据后无法恢复的问题,我们通常不会对数据做物理删除,即将数据从数据库中直接删除。而是多采用逻辑删除的方式,即不会真正在删除库删除数据,而是使用一个字段来标识它已经被删除。如使用 isDeleted 字段标识该条记录是否已经被删除
1 Mybatis插件机制Mybatis插件是对 Executor、StatementHandler、ParameterHandler、ResultSetHandler 这四个接口上的方法进行拦截,利用JDK动态代理机制,为这些接口的实现类创建代理对象,在执行方法时,先去执行代理对象的方法,从而执行自己编写的拦截逻辑。ExecutorMyBatis的内部执行器,负责调用StatementHandl
1 根据ID查询 1.1 在对象中设置ID 首先创建要查询的对象,并通过 set() 方法设置要查询的记录ID。 在控制台输出的SQL语句如下:==> Preparing: SELECT id,username,gendar,remark FROM user WHERE id=?==> Parameters: 12(Integer)<== Columns:
1 向表中插入记录1.1 插入所有列在创建实体对象时,指定所有字段的内容,包括ID列。@Test public void testAddUser(){ User user = new User(20, "成吉思汗", "男", "一代天骄"); boolean res = user.insert(); System.out.println(res); }调用 MyBatis
1 什么是 Active RecordActive Record(活动记录),是一种领域模型模式,特点是一个模型类对应关系型数据库中的一个表,而模型类的一个实例对应表中的一行记录。 在 Active Record 模式中,对象中既有持久存储的数据,也有针对数据的操作,Active Record 模式把数据增删改查的逻辑作为对象的一部分,处理对象的用户知道如何读写数据,提升了开发效率。 其实底层仍然
0 插入数据因之前删除了部分数据,要体现分页查询的效果,最好添加一些数据。1 增加插件在项目中创建一个配置类,在其中增加 MybatisPlus 中用于分页查询的插件,并引入相关类。 因为不同的数据库,用于分页的关键字也有差异,所以需要指定数据库类型:DbType.MYSQL。需要在类及方法上添加注解,否则不会被 SpringBoot 扫描到。类名上添加注解 @Configuration,方法上添
1 插入记录1.1 以普通方式插入记录向 User 表中插入一条记录。 User 表的创建语句可以在这里找到 (SpringBoot 集成 MybatisPlus 一——介绍 )创建一个 User 对象,调用 insert() 方法,即可实现向数据表中插入数据@Test public void addUserTest(){ User user = new User(); user.
1 读写分离1.1 什么是读写分离?将数据库的查询和其他需要使数据库数据发生变化的操作进行分开的操作。基本的原理:让主数据库处理事务性的插入、修改、删除操作;让从数据库处理查询操作。1.2 为什么要做读写分离?在数据库中数据极速增长的情况下,数据库的瓶颈不在于存储,而是计算,即查询。数据量越大,查询的效率越低,对于越复杂的查询语句,其消耗服务器的资源越强,有时甚至不输于死循环。2 读写分离的方案M
1 什么是 MyCat随着互联网的发展,数据的量级也是呈指数式的增长,从GB到TB到PB。传统的关系型数据库已经无法满足快速查询与插入数据的需求。那么如何使用关系型数据库解决海量存储的问题呢?此时就需要建立数据库的集群,那么为了提高查询性能,我们可以将一个数据库的数据分散到不同的数据库中存储,或者在集群中对不同数据做读写分离。于是就需要一个工具来接收程序对数据的请求,同时又能对集群数据库进行管理。
1 Stream 中的串行流和并行流Stream 的串行流1、所有的 Collection 集合都可以通过 Stream 默认方法获取流: list.stream();2、Stream 接口的静态方法 of 可以获取数组对应的流: Stream.of("zhangsan", "lisi", "wangwu", "zhaosi");Stream 的并行流1、并行流是把一个内容分成多个数据块,并用不同
1、流的创建1.1、 使用集合对象的 stream() 方法创建流数组对象,创建流时需要使用 Arrays.stream() 方法;集合类对象,可以在对象后直接使用 .stream() 方法转换为流;Map 对象不能直接转换为流,但是可以对 Map 对象中的 key 、 value、 entrySet 分别转换为流方便后续使用。//数组对象 int[] ints = new int[]{1,3,5
1、介绍Stream流是用于操作数据源如集合、数组等所生成的元素序列;集合是用于存储数据,而流是用于对集合内的数据进行计算。Stream不是数据结构,不会保存数据。Stream不会修改原来的数据源,它会将操作后的数据保存到另外一个新的对象中。Stream是惰性求值,流在中间处理过程中,只是对操作进行了记录,并不会立即执行,需要等到执行终止操作的时候才会进行实际的计算。Stream可以帮助我们更加聚
之前在研究 TCP 通信的双向通信时,客户端和服务端必须交替请求,才能保持正常会话。 现在就来对这个问题进行解决吧。
MyBatisPlus中的 QueryWrapper 对象,可以让用户自由构造SQL查询条件,可以快速上手并且有效提高开发效率。 逻辑条件 或条件语句 且条件语句 in 查询 notin 查询 or and in notin 比较判断 等于 不等于 大于 大于等于 小于 小于等于 between 条件语句 eq ne lt le gt ge between 模糊查询 like notlike 分组
MybatisPlus 是 Mybatis 的升级版本,是对 Mybatis 的简化,因为他们的口号就是“为简化开发而生”。
数据对于我们来说是一项最重要的资产,因为数据丢失带来的损失,对于一家公司来说,有时也是毁灭性的。 那么如何确保数据安全,不因断电或系统故障带来数据丢失呢?
Internet 协议集支持一个无连接的传输协议,该协议称为用户数据报协议(UDP,User Datagram Protocol)。
TCP通信主要用于可靠性数据的传输,在系统间调用或系统内部不同组件间的调用非常普遍。
通过Java中的反射机制,获取类的构造方法并创建该类,获取类的方法及成员变量,并在创建的类中调用该类所属的方法及成员变量。
当我们要获取类的信息及方法,利用Java中的反射机制,便于我们更加灵活的编写代码,可以在程序运行时装配代码,还可以实现动态代理。
1 super访问构造函数在继承中,子类的构造函数必须依赖父类提供的构造函数 super(参数列表) 访问父类的构造函数 super 调用父类的构造函数,必须在子类构造函数的第一行//父类public class Person{ public Person(){}}//子类public class Student extends Person{ public Student(){
1 this 关键字1.1 this 访问本类属性this代表当前对象的一个引用所谓当前对象,指的是调用类中方法或属性的那个对象this只能在方法内部使用,表示对“调用方法的那个对象”的引用this.属性名,表示本对象自己的属性对象的一个属性被方法或构造器的参数屏蔽(同名参数)public class Person{ String name; public Person(String
1 在Java中解析XML文件共有四种方式A、DOM方式解析XML数据树结构,有助于更好地理解、掌握,代码易于编写,在解析过程中树结构是保存在内存中,方便修改B、SAX方式解析采用事件驱动模式,对内存消耗比较小,适用于仅处理xml中的数据时使用C、JDOM方式解析大量采用了 Collections 类D、DOM4J方式解析JDOM的一种智能分支,合并了许多超出基本XML文档表示的功能; 性能优越,
1、启动Jacoco指定需要监测的包名,监测的ip及端口java -javaagent:jacocoagent.jar=includes=com.test.*,output=tcpserver,port=6300,address=localhost,append=false -jar .\JacocoTest-1.0-SNAPSHOT.jar2、执行测试用例3、生成 dump,并重置覆盖率统计指定
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号