java知识
YKCCCHEN
一个在努力学习的孩子
展开
-
SpringBoot+Mybatis+多类型数据库 实现一个 支持读写分离的动态多数据源
功能不够完善,努力改进 背景 一个通用SQL查询的服务器 通过SQL直接去对应的数据库去查询数据并返回 问题 多种数据库,连接方式不同 SQL对应不同的数据库,每次查询需要更换数据源 解决方式 多数据源管理 数据库存数据库连接方式 server方法或AOP中切换数据源,调用Mapper时自动切换 代码 动态多数据源抽象类 /** * @version 1.0 * @descriptions: 该类是参考了package org.springframework.jdbc.datasource.l原创 2020-08-18 23:48:41 · 734 阅读 · 2 评论 -
PgSQL在使用jdbcTemplate的query方法查询数据库时传入值为空报错
公司开发时遇到的问题,在自己电脑上无法完美还原错误和场景 下面sql代码是入参有时正常查找,无时查找全部数据,在PgSQL数据库上使用该代码,入参为空是会出现错误,错误原因是参数传入null值无法识别该传入类型,oracle和mysql上没有出现该问题 select * from `notice_mail` where ? is null or id = ? 因为当时是动态代码详细处理比较复杂,这里讲解静态解决方法 select * from `notice_mail` where ?::int is n原创 2020-07-02 23:54:40 · 1074 阅读 · 0 评论 -
java类与类的继承中,单例情况下,类的静态代码块,代码块,构造方法 执行情况总结
单一类情况 父类A的代码情况: public class A { public static String a1="测试数据A"; static { System.out.println("这是A的静态代码块"); } { System.out.println("这是A的普通代码块"); } public st原创 2019-03-09 15:28:45 · 214 阅读 · 0 评论 -
观察者模式(一)------从java代码和图去理解
观察者模式 定义 定义对象的一种一对多的依赖关系,所有依赖它的对象会自动更新数据,及在被观察的对象发生改变时,主动告知它的观察者们,更新相应的数据信息,并且是一种松耦合的状态。 图解(UML图网上一大堆这里就放个我自己画的) java代码 接口 /** * 观察者接口 * 给予观察者的一个定义 * @author xiaokun */ public interface IObser...原创 2019-05-27 23:53:41 · 170 阅读 · 0 评论 -
工厂模式(一)-----简单工厂------从java代码和图去理解
简单工厂模式 定义 通过一个Factory类获取在这个类下被定义的所有类,获取的类使用者无法看到如何实例化出来的 生活中举例: 客:我要买宝马!!! 商家:您买哪款??? 客:我买宝马7系!!! 图解(UML图网上一大堆这里就放个我自己画的) java代码 接口 /** * 汽车类 * 工厂模式顶层接口 * 生活中类似于 这款车的品牌是宝马 * @author xiaokun */ p...原创 2019-05-28 13:36:39 · 247 阅读 · 0 评论 -
java死锁位置判断实战
死锁问题 A线程 与B线程互相等待,原因是A线程持有B线程所需要的锁,B线程持有A线程所需要的锁,互相等待,然后无限月读… 然后有时候死锁不易被发现,比如在测试的时候没发生,正式环境等情况出现卡住不运行的情况,需要检测是否是死锁引起,下面将实战演示如何查找问题并定位。 测试代码 class MyTest implements Runnable { String a; String...原创 2019-08-08 20:53:36 · 236 阅读 · 0 评论 -
ThreadPoolExecutor 七大参数讲解与代码验证
我将讲解JUC包下的线程池七大参数,将分为2篇文章进行讲解,这篇文章将介绍前五个比较重要的参数知识。 同时本篇文章不做基础理论介绍。 代码在文末。 线程池 int corePoolSize : 最小线程数 最小存活的线程数,或者说固定线程数,通俗点说就是正常上班有2个人 int maximumPoolSize: 最大线程数 最大线程数,也就是上限线程数,通俗点说就是你再多人加班也只有5...原创 2019-08-11 15:37:44 · 406 阅读 · 0 评论