
ORM框架Mybatis
文章平均质量分 67
ORM框架Mybatis
w_t_y_y
个人在线笔记~,其他博客:https://www.zhihu.com/people/wtyy666
展开
-
Local Cache(二)使用与demo
(1)第一次访问localhost:7777/cacheDemo/user/listByAccount?userAccount=zs从数据库查询。(1)第一次访问localhost:7777/cacheDemo/user/listUsers从数据库查询。(2)再次访问,先命中local cache缓存。(2)再次访问,命中local cache缓存。原创 2024-07-17 18:07:48 · 245 阅读 · 0 评论 -
Local Cache(一)Caffeine Cache介绍
一、原创 2024-07-17 17:09:17 · 592 阅读 · 0 评论 -
spring cache(三)demo
上述代码不支持批量删除缓存,再比如根据key模糊删除等也是不支持的,这种情况需要自定义删除方法。2.1、自定义RedisCache,重写evict方法2.2、自定义RedisCacheManager,使用自定义的RedisCache2.3、在RedisConfig中使用自定义的RedisCacheManager。原创 2024-05-25 14:25:31 · 407 阅读 · 0 评论 -
spring cache(二)集成与使用方法
直接使用@CacheConfig、@Cacheable注解即可。(1)配置文件指定cache类型。(2)配置开启cache。原创 2024-04-25 17:11:01 · 380 阅读 · 0 评论 -
spring cache(一)介绍
项目中使用最多的缓存技术就是Redis,用Redis就可以实现了,为什么需要使用spring cache?先看下我们使用缓存步骤:(1)查寻缓存中是否存在数据,如果存在则直接返回结果(2)如果不存在则查询数据库,查询出结果后将结果存入缓存并返回结果(3)数据更新时,先更新数据库(4)然后更新缓存,或者直接删除缓存可以看到逻辑都差不多,这样就出现大量重复的代码,而且缓存与业务耦合较深。则解决了这个问题,它利用AOP。原创 2024-04-25 16:21:23 · 540 阅读 · 1 评论 -
Mybatis Cache缓存(二)MybatisCache+Redis
前面提到了,使用mybatis cache,一般是结合redis使用。原创 2024-05-25 10:00:15 · 652 阅读 · 0 评论 -
Mybatis Cache缓存(一)介绍与使用方法
一、介绍1、mybatis缓存:二、一级缓存三、二级缓存。原创 2024-02-01 17:22:38 · 1073 阅读 · 0 评论 -
Mybatis中的缓存
spring cache可以与分布式缓存解决方案(如 Redis)结合使用,适合需要跨多个实例共享缓存的应用;local cache 由于数据存储在本地 JVM 中,不支持跨 JVM 共享,适合单实例应用;Local Cache 适合对性能要求极高且不需要分布式缓存的应用,通常用于临时数据存储。spring cache适合需要统一缓存管理、可扩展性和分布式支持的应用;spring的缓存框架,用于mybatis一般结合redis使用;mybatis自带缓存,一般使用redis做缓存;原创 2024-11-04 09:30:23 · 400 阅读 · 0 评论 -
SQL拦截(二)InnerInterceptor
一、介绍。原创 2024-11-04 09:12:19 · 530 阅读 · 0 评论 -
SQL拦截(一)Interceptor
一、介绍。原创 2024-11-04 09:11:47 · 365 阅读 · 0 评论 -
mybatis-plus(二)集成与demo
引入mybatis-plus后,原mybatis逻辑可以正常使用。原创 2024-04-25 13:21:01 · 462 阅读 · 0 评论 -
mybatis-plus(一)介绍
一、介绍。原创 2024-04-25 12:47:55 · 200 阅读 · 0 评论 -
数据库分库分表(七)shardingjdbc读写分离demo
一、读写分离demo:1、数据库准备:这里新建了两个数据库,一主二从每个数据库里面表结构都是一样的,(我这里mysql没有配置主从复制,所以后面的代码演示,从库数据是我手动从主库复制过去的)CREATE TABLE `t_user` ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `user_name` varchar(50) DEFAULT NULL, `age` int(11) DEFAULT NULL, `.原创 2021-12-24 14:40:05 · 1298 阅读 · 0 评论 -
数据库分库分表(六)shardingjdbc垂直分库+水平分库+水平分表demo
即有多个数据库,每个数据库有不同的表,如在前面订单按年分库按月分表的基建上,还有一个user库存放t_user表:1、代码:server.context-path=/shardingserver.port=6666mybatis.mapper-locations=classpath*:Mapper/*Mapper.xml#配置dbcp的数据池,这里只配置必须字段my.pool.url=jdbc:mysql://localhost:3306/sharding-demo?useUnicode原创 2021-12-23 14:34:59 · 961 阅读 · 0 评论 -
数据库分库分表(五)shardingjdbc水平分库+水平分表demo
一、行表达式策略:1、application.properties:server.context-path=/shardingserver.port=7777mybatis.mapper-locations=classpath*:Mapper/*Mapper.xml#配置dbcp的数据池,这里只配置必须字段my.pool.url=jdbc:mysql://localhost:3306/sharding-demo?useUnicode=true&characterEncoding=原创 2021-12-22 15:16:23 · 1233 阅读 · 1 评论 -
数据库分库分表(四)shardingjdbc水平分表demo
一、代码示例:数据库/表创建:system_config只有一张,t_user表进行分表,分别建了t_user_1和t_user_2表CREATE TABLE `system_config` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `config_key` varchar(255) DEFAULT NULL, `cocnfig_value` varchar(255) DEFAULT NULL, `create_time.原创 2021-12-16 17:00:37 · 1707 阅读 · 0 评论 -
数据库分库分表(三)shardingjdbc分片策略
一、原创 2021-12-17 15:40:10 · 3919 阅读 · 1 评论 -
数据库分库分表(二)shardingjdbc配置文件
一、原创 2021-12-07 15:06:20 · 7400 阅读 · 1 评论 -
数据库分库分表(一)数据切片介绍
一、数据切分介绍:关系型数据库本身比较容易成为系统瓶颈,单机存储容量、连接数、处理能力都有限。当单表的数据量达到1000W或100G以后,由于查询维度较多,即使添加从库、优化索引,做很多操作时性能仍下降严重。此时就要考虑对其进行切分了,切分的目的就在于减少数据库的负担,缩短查询时间。数据库分布式核心内容就是数据切分(Sharding),以及切分后对数据的定位、整合。数据切分就是将数据分散存储到多个数据库中,使得单一数据库中的数据量变小,通过扩充主机的数量缓解单一数据库的性能问题,从而达到提升数据库操作性转载 2021-12-07 09:49:14 · 6857 阅读 · 0 评论 -
mybatis应用异常总结
一、新增或更新数据库,字符串含有特殊字符$,会报错:### Error updating database. Cause: java.lang.IllegalArgumentException: Illegal group reference### The error may involve defaultParameterMap### The error occurred while...原创 2019-03-13 16:22:11 · 1811 阅读 · 0 评论 -
mapper对象转换
对象转换原创 2022-10-31 16:27:37 · 734 阅读 · 0 评论 -
PagerHelper做分页查询
以dubbo+mysql为例:前端传入pageIndex和pageSize,后端处理后获取分页需要的两个参数:每页展示数据条数、当前页码:package com.demo.dto;import java.io.Serializable;public class PageParam implements Serializable { private static fina...原创 2020-04-22 16:30:32 · 2170 阅读 · 1 评论 -
Mybatis多数据源(二)demo
一、背景:随着并发量的不断增加,显然单个数据库已经承受不了高并发带来的压力。一个项目使用多个数据库(无论是主从复制- - 读写分离还是分布式数据库结构)的重要性变得越来越明显。传统项目中(个人对传统项目的理解就是所有的业务模块都在一个tomcat中完成,多个相同的tomcat集群也可认为是传统项目)整合多数据源有两种方法:分包和AOP。本人习惯使用分包的方法。如现有三个数据库,一个是mys...原创 2020-04-08 14:42:46 · 496 阅读 · 0 评论 -
Mybatis多数据源(一)介绍
一、介绍。原创 2024-11-04 14:14:14 · 137 阅读 · 0 评论 -
数据库连接池(五)常见问题总结
一、数据库连接超时:1、报错:Caused by: com.mysql.cj.exceptions.CJCommunicationsException: The last packet successfully received from the server was 599,998 milliseconds ago. The last packet sent successfully...原创 2020-05-07 15:35:35 · 1333 阅读 · 0 评论 -
数据库连接池(四)druid
一、druid常用配置:配置 缺省值 说明 name 配置这个属性的意义在于,如果存在多个数据源,监控的时候可以通过名字来区分开来。 如果没有配置,将会生成一个名字,格式是:"DataSource-" + System.identityHashCode(this) jdbcUrl 连接数据库的url,不同数据库不一样。例如: ...原创 2020-05-06 14:46:01 · 366 阅读 · 0 评论 -
数据库连接池(三)dbcp
一、dbcp常用配置详解: 参数 默认值 可选值 格式 说明 username 用户名 password ...原创 2020-05-06 11:26:05 · 279 阅读 · 0 评论 -
数据库连接池(二)c3p0
一、demo:1、pom:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schem...原创 2020-04-30 17:22:36 · 252 阅读 · 0 评论 -
数据库连接池(一)综述
数据库连接池综述原创 2020-04-30 16:51:31 · 140 阅读 · 0 评论 -
Mybatis语法(六)mybatis比较时间
List<MetaServer> selectByCreateTime(@Param("startDay") Date startDay, @Param("endDay") Date endDay);mapper.xml:<select id="selectByCreateTime" resultMap="BaseResultMap"> SELECT...原创 2018-11-06 18:58:59 · 7851 阅读 · 0 评论 -
Mybatis语法(五)mybatis 整型做空判断
数据库整数类型(bit、int、long、tinyint等)映射成java类型后(即使对应java中是Boolean类型),在mybatis的mapper.xml中对该字段做空判断,只和null做比较,不和''做比较,因为mybatis会把0默认转为''。如:private Boolean isWechat;对应的xml应该这样写: <if test="isWechat!=null"> and is_wechat= #{isWechat}原创 2019-04-08 11:08:27 · 1180 阅读 · 0 评论 -
Mybatis语法(四)mysql插入或更新
现有user表,userId为用户id,做为数据表user的主键:由于userId不可以重复,而这里userId直接作为主键。为防止并发操作,插入语句可以这样设计:不存在userId则插入,否则更新:<!--修改或更新--> <insert id="insertOrUpdate" parameterType="com.iflytek.edu.zx.activ...原创 2018-05-31 16:33:27 · 8053 阅读 · 0 评论 -
Mybatis语法(三)Mybatis insert操作 返回插入的那条数据的id
1、useGeneratedKeys="true"可以获取自增长的ID 只支持具有自增长方式的那种数据库(mysql, mssql 等 但 oracle 就不支持了 ),如mysql:现userId为主键,且设置了自增长,现在插入一条数据并且获取这条数据的userId:<insert id="insertAndGetId" useGeneratedKeys="true" keyPr...原创 2018-08-22 10:20:36 · 4974 阅读 · 0 评论 -
Mybatis语法(二)常用标签
一、常用标签:1、if判断2、where 元素知道只有在一个以上的if条件有值的情况下才去插入“WHERE”子句。而且,若最后的内容是“AND”或“OR”开头的,where 元素也知道如何将他们去除。如:<select id="findActiveBlogLike" resultType="Blog"> SELECT * FROM BLOG <where> <if test="state != null"> s原创 2021-07-14 11:02:13 · 1763 阅读 · 0 评论 -
MyBatis语法(一)总述
一、简介MyBatis 是支持普通 SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。Mybatis框架的组成架构图如下:...原创 2017-12-28 11:14:30 · 701 阅读 · 1 评论 -
集成(二)SpringBoot整合Mybatis
一、前言:springboot与mybatis整合及其简单,与传统SSM框架整合少了很多烦人的配置,springboot与mybatis整合只需导入mybatis包,这样springboot就会帮我们自动配置及整合了。不过要先注意几个问题:1、bean注入问题:SpringBoot项目的Bean装配默认规则是根据Application类所在的包位置从上往下扫描!“Application类...原创 2018-07-16 15:59:43 · 460 阅读 · 1 评论 -
集成(一)Spring集成mybatis(SSM)
一、配置文件:1、pom.xml依赖文件:<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.ap原创 2018-01-03 17:03:43 · 238 阅读 · 0 评论 -
Mybatis介绍
一、ORM 介绍1、ORM 背景传统的jdbc编程缺点:(1)工作量大(2)异常捕获和资源关闭麻烦。于是出现了ORM模型,所有的ORM模型都是基于JDBC进行封装的。2、简介:对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象POJO与关系数据库数据的相互映射。ORM框架是连接数据库的桥梁,只要提供了持久化类与表的映射关系,ORM框架在运行时就能参照映射文件的信息,把对象持久化到数据库中。操作实体类就相当于操作数据库表。3、原创 2021-05-21 10:16:08 · 1299 阅读 · 0 评论