乙巳🐍年

acc8226 的博客

mybatis 传递参数的 7 种方法

mybatis 传递参数的 7 种方法_独钓寒江雪~的博客-CSDN 博客_mybatis 传入对象参数
https://blog.csdn.net/bdqx_007/article/details/94836637

MySQL_插入更新 ON DUPLICATE KEY UPDATE

平时我们在设计数据库表的时候总会设计 unique 或者 给表加上 primary key 的限制条件.
此时 插入数据的时候 ,经常会有这样的情况:
我们想向数据库插入一条记录:
若数据表中存在以相同主键的记录,我们就更新该条记录。
否则就插入一条新的记录。

阅读全文 »

遇到过的问题

mysql 中判断记录是否存在方法比较

1
select IFNULL((SELECT 1 FROM gen_table where table_id = 1 limit 1), 0) AS c1

结果为 1,则说明记录存在;结果为 0,则说明记录不存在。

Invalid bound statement (not found)出现原因和解决方法

1. mapper.xml 中的 namespace 和实际的 mapper 文件不一致
这个问题其实很好解决,瞪大眼睛,仔仔细细看看,到底对不对应不就好了

2. mapper 接口中的方法名和 mapper.xml 中的 id 标签不一致
这个问题和上个问题解决方法一样,仔细对对嘛,这个再对不出来,面壁思过吧。

3. 若以上两步的问题都没有,但是还是不行,可能原因就是,没有构建进去,打开 target 看看对应的 mapper.xml 文件是否存在

Java 启动报错: java.sql.SQLSyntaxErrorException:Table‘xx.QRTZ_LOCKS‘ doesn‘t exist

通过 docker 安装 mysql、redis 以后启动时候报错,但是数据库里面发现有这个表,奇了怪了,网上一顿搜索发现,原来是 linux 下 mysql 默认是大小写敏感的,但是我们正常使用都是大小写不敏感。

阅读全文 »

Arthas

English version goes here.

Arthas 是 Alibaba 开源的 Java 诊断工具,深受开发者喜爱。

当你遇到以下类似问题而束手无策时,Arthas可以帮助你解决:

  • 这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception?
  • 我改的代码为什么没有执行到?难道是我没 commit?分支搞错了?
  • 遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗?
  • 线上遇到某个用户的数据处理有问题,但线上同样无法 debug,线下无法重现!
  • 是否有一个全局视角来查看系统的运行状况?
  • 有什么办法可以监控到 JVM 的实时运行状态?
  • 怎么快速定位应用的热点,生成火焰图?
  • 怎样直接从 JVM 内查找某个类的实例?
阅读全文 »

Java 5 之后可以在源代码中嵌入一些补充信息,这种补充信息称为注解(Annotation),例如在方法覆盖中使用过的@Override 注解,注解都是**@符号开头**的。

注解并不能改变程序运行的结果,不会影响程序运行的性能。有些注解可以在编译时给用户提示或警告,有的注解可以在运行时读写字节码文件信息。

五个基本注解

无论是哪一种注解,本质上都一种数据类型,是一种接口类型。到 Java 8 为止 Java SE 提供 11 种内置注解。其中有 5 种是基本注解,它们来自于 java.lang 包。有 6 个是元注解(Meta Annotation),它们来自于 java.lang.annotation 包,自定义注解会用到元注解。

元注解就是负责注解其他的注解。
基本注解包括:@Override、@Deprecated、@SuppressWarnings、@SafeVarargs 和 @FunctionalInterface。下面逐一介绍一下。

@Override只能用于方法,子类覆盖父类方法(或者实现接口的方法)时可以 @Override 注解。编译器会检查被 @Override 注解的方法,确保该方法父类中存在的方法,否则会有编译错误。

阅读全文 »

反射(Reflection)是程序的自我分析能力,通过反射可以确定类有哪些方法、有哪些构造方法以及有哪些成员变量。Java 语言提供了反射机制,通过反射机制能够动态读取一个类的信息;能够在运行时动态加载类,而不是在编译期。反射可以应用于框架开发,它能够从配置文件中读取配置信息动态加载类、创建对象,以及调用方法和成员变量。

Java 反射机制 API

Java 反射机制 API 主要是 java.lang.Class 类和 java.lang.reflect 包。

java.lang.Class 类

java.lang.Class 类是实现反射的关键所在,Class 类的一个实例表示 Java 的一种数据类型,包括类、接口、枚举、注解(Annotation)、数组、基本数据类型和 void,void 是“无类型”,主要用于方法返回值类型声明,表示不需要返回值。Class 没有公有的构造方法,Class 实例是由 JVM 在类加载时自动创建的

方法1:调用 Object 类的 getClass()方法。
方法2:使用 Class 类的 forName()方法。
方法3:如果 T 是一个 Java 类型,那么 T.class 就代表了与该类型匹配的 Class 对象。

阅读全文 »
0%