<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[bobo306的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/bobo306</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; bobo306]]></copyright><item><title><![CDATA[达梦数据库批量入库communication error问题解决]]></title><link>https://blog.youkuaiyun.com/bobo306/article/details/131263323</link><guid>https://blog.youkuaiyun.com/bobo306/article/details/131263323</guid><author>bobo306</author><pubDate>Sat, 17 Jun 2023 18:44:45 +0800</pubDate><description><![CDATA[达梦8，hibernate+jpa数据批量入库是报错communication error，以为是数据量太大或者数据库连接池超了，尝试了数据批量提交和一条一条提交还是不能解决问题。后来将实体类字段从float改成double，数据库字段从numberic改成double后解决问题。]]></description><category></category></item><item><title><![CDATA[Jpa 自定义返回实体报错]]></title><link>https://blog.youkuaiyun.com/bobo306/article/details/124065895</link><guid>https://blog.youkuaiyun.com/bobo306/article/details/124065895</guid><author>bobo306</author><pubDate>Sat, 09 Apr 2022 19:08:56 +0800</pubDate><description><![CDATA[通过非原生sql启动项目报错：


    @Query(value = "SELECT new cn.piesat.dataview.api.server.vo.ProductCountVO(t.productId , count(t.productId)) from ScheculeSinkDataRecord t where t.productId in ?1 GROUP BY t.productId")
    List&lt;ProductCountVO&gt; countProductIds(S]]></description><category></category></item><item><title><![CDATA[InnoDB和MyISAM]]></title><link>https://blog.youkuaiyun.com/bobo306/article/details/122481858</link><guid>https://blog.youkuaiyun.com/bobo306/article/details/122481858</guid><author>bobo306</author><pubDate>Thu, 13 Jan 2022 20:40:58 +0800</pubDate><description><![CDATA[InnoDB和MyISAM是使用MySQL时最常用的两种引擎类型，我们重点来看下两者区别。

事务和外键
InnoDB支持事务和外键，具有安全性和完整性，适合大量insert或update操作

MyISAM不支持事务和外键，它提供高速存储和检索，适合大量的select查询操作
锁机制
InnoDB支持行级锁，锁定指定记录。基于索引来加锁实现。

MyISAM支持表级锁，锁定整张表。
索引结构

InnoDB使用聚集索引(聚簇索引)，索引和记录在一起存储，既缓存索引，也缓存记录。

MyISAM使用非聚集索]]></description><category></category></item><item><title><![CDATA[mysql sql优化]]></title><link>https://blog.youkuaiyun.com/bobo306/article/details/122480820</link><guid>https://blog.youkuaiyun.com/bobo306/article/details/122480820</guid><author>bobo306</author><pubDate>Thu, 13 Jan 2022 19:59:53 +0800</pubDate><description><![CDATA[sql优化

1.通过查看explain优化：

1.开启慢查询日志，定位运行慢的SQL语句

2.利用explain执行计划，查看SQL执行情况
3.关注索引使用情况:type
4.关注Rows:行扫描
5.关注Extra:没有信息最好

6.加索引后，查看索引使用情况，index只是覆盖索引，并不算很好的使用索引

7.如果有关联尽量将索引用到eq_ref或ref级别

2.SQL语句中IN包...]]></description><category></category></item><item><title><![CDATA[spring 事务管理]]></title><link>https://blog.youkuaiyun.com/bobo306/article/details/122479656</link><guid>https://blog.youkuaiyun.com/bobo306/article/details/122479656</guid><author>bobo306</author><pubDate>Thu, 13 Jan 2022 19:11:10 +0800</pubDate><description><![CDATA[PROPAGATION_REQUIRED

使用的最多的一个事务传播行为，我们平时经常使用的@Transactional注解默认使用就是这个事务传播行为。如果当前存在事务，则加入该事务；如果当前没有事务，则创建一个新的事务

如果外部方法没有开启事务的话，Propagation.REQUIRED修饰的内部方法会新开启自己的事务，且开启的事务相互独立，互不干扰。
	如果外部方法开启事务并且被Propagation.REQUIRED的话，所有Propagation.REQUIRED修饰的内部方法和外部方法均属于]]></description><category></category></item><item><title><![CDATA[jvm常用指令]]></title><link>https://blog.youkuaiyun.com/bobo306/article/details/122477925</link><guid>https://blog.youkuaiyun.com/bobo306/article/details/122477925</guid><author>bobo306</author><pubDate>Thu, 13 Jan 2022 17:06:40 +0800</pubDate><description><![CDATA[jps(java process Status Tool)

Java版的ps命令，查看java进程及其相关的信息，如果你想找到一个java进程的pid，那可以用jps命令替代linux中的ps命令了，简单而方便

-l : 显示进程id,显示主类全名或jar路径
-q : 显示进程id
-m : 显示进程id, 显示JVM启动时传递给main()的参数 -v : 显示进程id,显示JVM启动时显示指定的JVM参数

jinfo

jinfo是用来查看JVM参数和动态修改部分JVM参数的命令

no opt]]></description><category></category></item><item><title><![CDATA[垃圾回收算法及收集器]]></title><link>https://blog.youkuaiyun.com/bobo306/article/details/122475143</link><guid>https://blog.youkuaiyun.com/bobo306/article/details/122475143</guid><author>bobo306</author><pubDate>Thu, 13 Jan 2022 16:55:04 +0800</pubDate><description><![CDATA[垃圾回收算法

引用计数法（java中并没有使用引用计数算法）：给每个创建的对象添加一个引用计数器，每当此对象被某个地方引用时，计数值+1， 引用失效时-1，所以当计数值为0时表示对象已经不能被使用。引用计数算法大多数情况下是个比较不错的算法， 简单直接，也有一些著名的应用案例但是对于Java虚拟机来说，并不是一个好的选择，因为它很难解决对象直接相互循环引用的问题。

优点：实现简单，执行效率高，很好的和程序交织。

缺点: 无法检测出循环引用。

可达性分析算法：通过一系列...]]></description><category></category></item><item><title><![CDATA[jvm内存结构]]></title><link>https://blog.youkuaiyun.com/bobo306/article/details/122473568</link><guid>https://blog.youkuaiyun.com/bobo306/article/details/122473568</guid><author>bobo306</author><pubDate>Thu, 13 Jan 2022 15:28:09 +0800</pubDate><description><![CDATA[jdk1.8

JVM 内存共分为虚拟机栈、堆、元数据区、程序计数器、本地方法栈五个部分。

程序计数器：线程私有，它可以看做是当前线程所执行 的字节码的行号指示器。不会发生异常

虚拟机栈：线程私有，用于存储栈帧。每个方法执行时都会创建一个栈帧，用于存储局部变量表、操作数栈、动态链接、方法出口等。

局部变量表：是一组变量值存储空间，用于存放方法参数和方法内定义的局部变量（8种基本类型、对象引用和returnAddress类型）

操作数栈：是一个后入先出栈(LIFO)。...]]></description><category></category></item><item><title><![CDATA[springMVC 初始化过程及执行过程]]></title><link>https://blog.youkuaiyun.com/bobo306/article/details/122460227</link><guid>https://blog.youkuaiyun.com/bobo306/article/details/122460227</guid><author>bobo306</author><pubDate>Thu, 13 Jan 2022 10:41:15 +0800</pubDate><description><![CDATA[初始化过程

解析web.xml文件，获取监听和servlet配置

servletContextListener初始化，并通过观察者模式监听filer和servlet的初始化和销毁

初始化DispatchServlet，执行父类HttpServlet的init方法

执行initServletBean初始化HttpServletBean

执行initWebApplicationContext，初始化WebApplicationContext

执行initFrameworkServlet，初始化Fra]]></description><category></category></item><item><title><![CDATA[spring aop]]></title><link>https://blog.youkuaiyun.com/bobo306/article/details/122459745</link><guid>https://blog.youkuaiyun.com/bobo306/article/details/122459745</guid><author>bobo306</author><pubDate>Wed, 12 Jan 2022 18:45:06 +0800</pubDate><description><![CDATA[aop面向切面编程 主要是用到了动态代理技术

基于Java的主要AOP实现有：

AspectJ

Spring AOP

JBoss AOP

jdk动态代理：被代理对象必须实现接口

cglib动态代理：通过加载字节码生成动态代理对象，生成的动态代理对象相当于是原对象的子类（由于cglib是基于继承的方式实现类的动态代理，因此无法实现对final修饰的类的代理）



Spring中有哪些不同的通知类型

前置通知(Before Advice): 在连接...]]></description><category></category></item><item><title><![CDATA[spring bean作用域及装配方式]]></title><link>https://blog.youkuaiyun.com/bobo306/article/details/122459158</link><guid>https://blog.youkuaiyun.com/bobo306/article/details/122459158</guid><author>bobo306</author><pubDate>Wed, 12 Jan 2022 17:56:47 +0800</pubDate><description><![CDATA[singleton：单例模式（多线程下不安全）

1. singleton：单例模式，Spring IoC 容器中只会存在一个共享的 Bean 实例，无论有多少个Bean 引用它，始终指向同一对象。该模式在多线程下是不安全的。Singleton 作用域是Spring 中的缺省作用域，也可以显示的将 Bean 定义为 singleton 模式

prototype:原型模式每次使用时创建

2. prototype:原型模式，每次通过 Spring 容器获取 prototype 定义的 bean 时，容器都将]]></description><category></category></item><item><title><![CDATA[spring ioc初始化流程]]></title><link>https://blog.youkuaiyun.com/bobo306/article/details/122457455</link><guid>https://blog.youkuaiyun.com/bobo306/article/details/122457455</guid><author>bobo306</author><pubDate>Wed, 12 Jan 2022 17:47:55 +0800</pubDate><description><![CDATA[BeanFactory初始化

BeanFactory创建流程包含两个步骤，一个是生成BeanFactory，另一个是解析配置文件中的javabean，并封装为BeanDefinition

并将BeanDefinition加载到 IoC 容器中（BeanDefinition是xml文件中对bean的描述，包括是否懒加载，单例多例，dependson等）


			依次调用多个类的 loadBeanDefinitions 方法 ​—&gt; AbstractXmlApplicationContext ​—&]]></description><category></category></item><item><title><![CDATA[mybatis缓存]]></title><link>https://blog.youkuaiyun.com/bobo306/article/details/122456253</link><guid>https://blog.youkuaiyun.com/bobo306/article/details/122456253</guid><author>bobo306</author><pubDate>Wed, 12 Jan 2022 16:41:09 +0800</pubDate><description><![CDATA[一级缓存

在一个sqlSession中，对User表根据id进行两次查询，发现只打印一条查询语句

在两次查询中加入增删改会触发两次查询，因为清空了一级缓存

mybatis一级缓存默认开启，由BaseExecutor的createCacheKey方法来执行


 
CacheKey cacheKey = new CacheKey();
//MappedStatement 的 id
// id就是Sql语句的所在位置包名+类名+ SQL名称 cacheKey.update(ms.getId());
// ]]></description><category></category></item><item><title><![CDATA[mybatis初始化流程]]></title><link>https://blog.youkuaiyun.com/bobo306/article/details/122454576</link><guid>https://blog.youkuaiyun.com/bobo306/article/details/122454576</guid><author>bobo306</author><pubDate>Wed, 12 Jan 2022 16:10:43 +0800</pubDate><description><![CDATA[传统开发方式

首先通过Resources获取sqlMapConfig.xml和mapper.xml中的文件流


InputStream resourceAsStream = Resources.class.getClassLoader.getResourceAsStream(path);

之后通过SqlSessionFactoryBuilder的builder方法将字节输入流解析为Configuration，Configuration中主要包括dataSource和sql语句，封装到SqlSessio]]></description><category></category></item><item><title><![CDATA[logstash 报错Bad file descriptor - Bad file descriptor]]></title><link>https://blog.youkuaiyun.com/bobo306/article/details/119761841</link><guid>https://blog.youkuaiyun.com/bobo306/article/details/119761841</guid><author>bobo306</author><pubDate>Tue, 17 Aug 2021 17:28:52 +0800</pubDate><description><![CDATA[使用bin/logstash -f config/D_HINFO_PDT.conf 启动日志中没有错误；
我使用nohupbin/logstash-fconfig/D_HINFO_PDT.conf&amp; 启动时；
每一秒都报如下错误：
2017-10-30T10:52:13,412][ERROR][logstash.pipeline    ] A plugin had an unrecoverable error. Will restart this plugin.
 Plugin:...]]></description><category></category></item></channel></rss>