摘要:
一、初始化SqlSessionFactory 核心流程 核心使用到了SqlSessionFactoryBean的afterPropertiesSet、getObject方法 afterPropertiesSet:用于初始化并封装数据 getObject:用于注入DefaultSqlSessionFa 阅读全文
摘要:
dubbo消费者捕获异常最佳实践 dubbo一共会抛出两种异常,一个是RpcException,另外一个是RuntimeException。所以消费者在调用dubbo接口要留意 捕获一个Exception异常 try { return userClient.getOrderById(userInfo 阅读全文
摘要:
IO流 概念梳理 字节流:是让计算机读写的,让计算机理解的内容,JAVA中的Byte等同于计算机中的字节 字符流:是让人读懂的,需要指定的编码格式将字节转为字符 编码:将字符通过指定的编码格式转为字节 解码:将字节通过指定的编码格式转为字符 Java中字节流、字符流的超类 InputStream、O 阅读全文
摘要:
SPI机制认识 1.java SPI机制 java SPI机制(service provider interface) jdk内置的服务提供发现机制,可以启用框架扩展或替换组件,主要思想是将装配的控制权移到程序之外 通俗的讲就是:为某个接口自动找到实现类并初始化。 使用: 定义接口 编写实现类实现接 阅读全文
摘要:
接口幂等 防重:防重设计主要为了避免产生重复数据 接口幂等性:除了防止产生重复数据,还要求执行多次与执行一次产生的影响是一样的 重复提交是造成的原因 幂等性是要保证的结果 针对操作 查询、删除具有幂等性 新增、修改不具有幂等性 update操作 1.如果只是单纯的更新数据,比如:update use 阅读全文
摘要:
减少了jdbc驱动与数据库服务器之间的网络传输开销 使用batch前:执行一条sql就要进行一次网络IO开销,还要等待服务器响应结束后才能提交下一条sql。预编译n次,设置参数n次,执行n次 使用batch之后:客户端的多条sql是一起提交给服务器的,一次batch只涉及到一次网络传输开销。预编译一 阅读全文
摘要:
三范式理解 第一范式:所有列原子不可分 第二范式:一行数据要有一个唯一标识该行的字段(比如主键) 第三范式:要求表中每列都和主键列直接相关 常用函数 IFNULL(exp1,exp2)、IF(exp1,exp2,exp3)、ISNULL(exp) SELECT employee_id, -- 1.判 阅读全文
摘要:
找到提交到远程库的编号xx 在idea terminal中使用以下命令,退回到指定的版本号 git reset --soft 编号xxx 提示: --soft 会保留指定版本下的代码到暂存区 --hard 指定版本本地库下的代码会丢失 然后使用以下命令强制推送到远程库,注意强制推送会导致指定版本后的 阅读全文
摘要:
并行一定比串行执行的速度快吗? 不一定 这是因为线程创建、销毁会消耗CPU,有可能创建销毁的时间超过了计算本身时间(虽然都在使用线程池) 同时也存在上下文切换的开销,需要保护现场与恢复现场,消耗CPU资源 线程本身也占用内存,一个线程占用1MB 一个系统内线程资源是有限的 为什么要需要多线程? 1. 阅读全文
摘要:
将一次性查询改为通过分片、异步优化 in子查询 集合数据分片是将数据按指定大小进行分组,像java中使用guava或hutool工具的partition进行分组,然后分批处理或者获取数据,in子查询会通过创建临时表,不易将大量数据放入in子查询中 案例:分片+异步操作 @Test void test 阅读全文