- 博客(22)
- 收藏
- 关注
原创 MySQL1--InnoDB和MyISAM区别
InnoDB和MyISAM事务和外键InnoDB支持事务和外键,适合insert或者updateMyISAM不支持事务和外键,适合大量SELECT查询锁机制InnoDB支持行锁MyISAM支持表锁索引结构InnoDB使用聚簇索引,索引和记录一起存储MyISAM使用非聚簇索引,索引和记录分开并发InnoDB可以通过MVCCMyISAM整表锁读写效率低文件InnoDB .frm表结构文件 .idb数据文件 表最大打64TBMyISAM .frm表结构文件 .MYD数据文件 .M
2023-10-12 09:08:41
68
原创 mybatis深度解析4--拿到sql
配置文件如下,springboot只要把插件类注册成bean,mybatis会自动加载,道理和数据源切换成druid是一样的,后面看spring源码的时候可以看看究竟怎么接入的。我们知道Mapper接口的对象是mybatis基于java的动态代理创建出来的,那么这个对象到底怎么用了执行器?4、这个execute执行的就是Configuration中执行器的方法,而执行器可能是代理的或者默认的。如此看来,如果有自定义插件,执行器创建的都是代理对象,自然也会执行我们写的增强逻辑。3、代理对象的方法中写了,
2023-10-11 11:59:30
1188
原创 mybatis深度解析3--拿到Connection
这里小伙伴们就会发现一个问题了,就是数据源策略是Configuration对象中装配的,Configuration对象是被SqlSessionFactory对象长久持有的,我们每次创建会话都是靠SqlSessionFactory对象,如果出现多数据源或者数据源切换的场景要怎么办呢?再看看springboot整合druid的时候是配置文件中有一个type属性,springboot已经帮我们注入好了。这个POOLED是可以换成druid或者其他数据源的,这里写的就是mybatis默认的数据源。
2023-10-09 22:07:56
683
原创 mybatis深度解析2--加载配置文件
这三个类是mybatis写的,但是mybatis使用的是java自带的XPath解析的xml文件,并没有使用dom4j哦。加载到配置文件流之后,SqlSessionFactoryBuilder的调用关系会如下。首先我们自己测试,会是通过如下代码拿到和数据库之间的会话的。
2023-10-09 10:05:31
52
原创 mybatis深度解析1
可以看到,mybatis已经对我们使用类加载器还是类对象去获取流做了适配,不用担心获取流为null的问题啦。如果项目中有依赖mybatis,完全可以使用它去加载简单文件、配置文件之类。
2023-10-08 21:28:18
74
原创 并发和多线程初识
因为abc需要顺序结束,其实我们只使用一个共享变量就可以完成这个操作,但是写起来实际上还是费点脑筋的,为了降低出错的几率,java也给我们提供了一些列工具类,只需要理解api的意思就可以完成上述操作,比如countdowanlatch。两条指令的执行具有逻辑关系或者依赖性,多线程执行时会产生故障,这是操作系统层面的定义,一般说的是线程间通信的所产生的故障。应当需要我们去关注的多线程并发问题的那部分代码,范围越小越好,实际表现就是同步代码块的区域。第二版代码,在同步代码块中wait和notify。
2023-10-06 21:40:06
46
原创 针对Controller的单元自测
依赖:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> <exclusions> <exclusion> <groupI
2021-03-03 17:21:41
195
1
原创 JAVA面试题整理1
面试题整理大部分参考了尚硅谷–周阳的讲解视频,这里是整理文章目录面试题整理**volatile****JMM内存模型****原子类****synchronized****synchronized和Lock的区别****锁升级**手写自旋锁**Lock**公平锁和非公平锁ReentrantLockConditionReentrantReadWriteLock死锁怎么写,场景和原因原因有三**CountDownLatch****CyclicBarrier****Semaphore****虚假唤醒****生产
2021-02-23 00:13:19
2262
原创 JAVA面试题整理1
面试题整理volatile1、线程可见性两个线程修改同一个对象,另一个线程能感知到2、防止指令重排场景:new Object()、懒汉式单例、DCL单线程能确保最终结果和代码执行逻辑是一致的3、不保证原子性一个线程修改对象时,另一个线程也能无阻碍的修改自增++、自减-- 不是原子操作使用技巧:用程序的强逻辑控制多个变量的读写,比如while、if等等JMM内存模型Java Memory Model1、加锁前必须把共享变量写回主内存2、加锁前必须把主内存最新值读取到工作内存3、加
2021-02-23 00:01:16
893
原创 泛型
给函数传递的变量叫做参数,给类传递的变量就是泛型。工作中,我们坑会遇到无法确定传进来的对象的类型的情况,但是对于这些对象,我们可以用统一的处理方式处理它们,于是考虑使用泛型。样例:import java.util.ArrayList;import java.util.Iterator;import java.util.List;public class Luggage<T>...
2020-04-04 17:49:37
137
原创 java枚举类使用策略
使用原因:数据库中往往会定义一些数据字典,来标明某个值代表了什么意思,比如全国23个省,我的某条数据要区分省份,不可能直接存省份名称进去,这样维护性很差,使用1到23的数字表示省份,对应的就会建立一张对应关系的表来维护。在java代码中同样需要这样的对应关系,可能页面需要你返回的文字形式,而数据库需要你存储数字进去。样例:...
2020-04-04 16:44:35
389
原创 修改nginx.conf文件
nginx.conf是只读文件,nginx默认安装路径是 /usr/local/nginx,可以在解压gz包后进入目录使用命令:./configure --prefix=xx/xx/xx进行修改,再执行make & make install安装。进入/usr/local/nginx/conf目录,执行mv nginx.conf my.conf修改名称,就可以修改配置文件了。进入/us...
2020-01-15 04:36:25
3798
原创 SpringBoot结合SpringData Jpa--Example查询
承接上篇博客:https://blog.youkuaiyun.com/qq_33608923/article/details/102840505QueryByExampleExecutor首先,我们使UserRepository继承JpaRepositoryImplementation这个接口:import com.github.jpa.demo.entity.User;import org.spri...
2019-12-17 15:43:37
1064
原创 SpringBoot结合SpringData Jpa--注解部分(三)
SpringBoot结合SpringData Jpa–标签部分(三)承接上篇博客:https://blog.youkuaiyun.com/qq_33608923/article/details/102792383上篇主要讲了@ManyToMany和@OneToOne两个注解,遗留了一个问题,就是在实体关系为一对多或者多对多的时候,hibernate会先执行查询主表信息的一条sql,再根据主表外键查询副表的...
2019-11-04 09:13:18
184
原创 SpringBoot结合SpringData Jpa--注解部分(二)
SpringBoot结合SpringData Jpa–标签部分(二)承接上篇博客:https://blog.youkuaiyun.com/qq_33608923/article/details/102729114上篇主要讲了@OneToMany,这篇把ManyToMany和OneToOne也试一试。首先是@OneToOne,就用User和UserInfo来表示一对一的关系,分别创建者两个实体类:imp...
2019-10-29 17:07:09
185
原创 SpringBoot结合SpringData Jpa--注解部分(一)
SpringBoot结合SpringData Jpa–标签部分(一)承接上篇博客:https://blog.youkuaiyun.com/qq_33608923/article/details/102703848简要说明:SpringData Jpa中有关实体类中的注解都是定义在javax.persistence.*这个包下面的,本篇主要说明的就是这些注解的使用。首先,定义一个User的实体类:@Ta...
2019-10-25 17:26:17
170
原创 tomcat成功启动,控制台报错:Illegal access
tomcat成功启动,控制台报错:Illegal access启动后访问任何url都是404,错误开头如下:Illegal access: this web application instance has been stopped already,Could not load [org.apache.commons.lang3.time.DateFormatUtils]项目是ssm框架的,...
2019-10-25 14:59:44
947
原创 SpringBoot结合SpringJpa学习
**SpringBoot结合SpringJpa学习首先加入pom依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId...
2019-10-23 16:39:47
156
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人