mysql查询异常之Communications link failure 1.查了一下网络是没有问题的,后来发现是这张表的数据量太大,又是连表查询,查询时间超过了配置的最大等待时间而报错,因此对查询语句进行了优化,满足在最大等待时间内。
JSONObject 转String null值转换规则。 调用public static String toJSONString(Object object, SerializerFeature... features)方法,输入null的序列化规则,可以输出值为null的字段。当使用alibaba的fastjson工具类序列化实体类时,默认其会自动过滤掉null空的字段属性,在序列化的时候不会进行展示。
Java 查看bean注入到 BeanFactory时的组件名称 对象实现ApplicationContextAware接口,重写setApplicationContext()方法,添加断点可以查看这个对象。导致调用的通过@Resource注入到该bean中的bean都为null。注册的时候时@17586,通过方法调用的时候为@26421。通过debug调试发现调用的使用和注册的时候不一样。
Java的反射简单快速上手应用 反射 (Reflection) 是 Java 的特征之一,它允许运行中的 Java 程序获取自身的信息,并且可以操作类或对象的内部属性。通过反射,我们可以在运行时获得程序或程序集中每一个类型的成员和成员的信息。程序中一般的对象的类型都是在编译期就确定下来的,而 Java 反射机制可以动态地创建对象并调用其属性,这样的对象的类型在编译期是未知的。所以我们可以通过反射机制直接创建对象,即使这个对象的类型在编译期是未知的。
@AutoWired spring对多线程Bean无法注入的原因 在spring中,如果需要在异步线程中注入bean,会发现bean是空的情况。原因据说是spring bean 出于线程安全考虑,不得注入bean至线程类(Runnable接口的派生类),报空指针异常。Spring API 中有ApplicationContextAware 这个接口,实现了这个接口的类,可以在IOC容器初始化完成后获得容器,从而可以获得容器中所有的bean。前提是对应的类要带上组件(如@Component)2、通过在spring配置文件中定义Bean属性(这里有一些细节问题后面会讲到)
MySql数据库实现数据存则删除、更新,不存在则插入 如上语句的意思的意思是如果字段1不存在(主键,索引或者唯一条件不存在),则执行插入语句,存在则执行更新语句,该更新是将该条存在的记录删除,然后再插入,所以其他的字段的值都是NULL。如上语句的意思是如果字段1不存在(主键,索引或者唯一条件不存在),则执行插入语句,如果存在,直接忽略不修改任何数据,不会报错。如上语句的意思的意思是如果字段1不存在(主键,索引或者唯一条件不存在),则执行。,存在则执行更新语句,该更新只更新需要的字段,不影响其他字段的值;:多线程并发会导致死锁的可能。
mysql解决插入根据某条件判断是否插入 exists :如果子查询查询到了列那么就为真。not exists : 如果子查询查询不到结果则返回值为真。如果配合 insertinto、select、update、delete的where 条件使用,就能根据某些条件,先判断条件是否满足在做相应的操作。示例:用户做报警插入时,需要要传入一个报警周期时间filterTime,在这个周期内不存在同样的一条记录才做新增,否则不需要新增,避免频繁报警。
使用 mybatis-plus 拦截器对项目的所有执行的sql做监控和修改。 项目中使用了别人封装好的jar包,使用的是逻辑删除,但是在我们的数据库中由于唯一索引的存在,必须使用物理删除,因此需要对使用到逻辑删除的sql做监控,并且求改这些sql。最终运行起来还是满足了对sql的监控和修改功能。
MySQL 在聚合函数查询的结构中继续过滤 HAVING 关键字和 WHERE 关键字都可以用来过滤数据,且 HAVING 支持 WHERE 关键字中所有的操作符和语法,如果想要从 GROUP BY 分组中进行筛选的话,不是用 WHERE 而是使用 HAVING 来进行。GROUP BY <列名1>, <列名2>, <列名3>, ……SELECT <列名1>, <列名2>, <列名3>,HAVING <分组结果对应的条件>。
springboot 项目新建流程 三、在src文件夹下,新建文件夹src/main/java,src/main/resources两个目录。六、在resources文件夹下创建application.yml 文件。二、工程建好后,在pom文件中加入springboot 依赖。四、在创建一个包路径。例如com.test.mongodb。完成以上六步既可以运行启动springboot项目了。五、在以上包路径下创建spring boot启动类。