bug总结问题集和知识点集

目录

  • [一 bug问题集](#一 bug问题集)
    • [1. 端口被占用](#1. 端口被占用)
  • [二 oracle](#二 oracle)
  • [三 mybatis](#三 mybatis)
    • [1. mybatis用注解如何实现模糊查询](#1. mybatis用注解如何实现模糊查询)
  • [四 List](#四 List)
    • [1. 如何判断Java List是否为空?](#1. 如何判断Java List是否为空?)
  • [五 java字符串](#五 java字符串)
    • [1. 如何实现Java字符串去掉双引号的具体操作步骤](#1. 如何实现Java字符串去掉双引号的具体操作步骤)

一 bug问题集

1. 端口被占用

报错说明:

Web server failed to start. Port xxx was already in use.端口占用问题

解决方案:

A 换一个未被占用的端口,再启动。

B 查看被占用端口的进程。

java 复制代码
netstat -aon|findstr 端口号

杀死相关进程即可

二 oracle

1. oracle查看版本怎么操作

A 使用SQL*Plus命令行工具:

  • 打开命令行窗口,并输入sqlplus命令进入SQL*Plus环境。

  • 输入数据库的用户名和密码进行登录。

  • 输入以下SQL语句查询数据库版本:

sql

SELECT * FROM V$VERSION;

  • 执行以上语句后,会显示数据库的版本信息,包括Oracle数据库版本号、主机名、操作系统版本等。

B 使用SQL Developer:

  • 打开SQL Developer工具。

  • 连接到要查询版本的数据库实例。

  • 在连接成功后,可以在"对象浏览器"中找到数据库实例,右键点击并选择"属性"。

  • 在属性窗口中,可以看到数据库的版本信息。

无论使用哪种方法,都可以方便地查看Oracle数据库的版本信息。这些方法适用于大多数Oracle数据库版本,无论是在Windows、Linux还是其他操作系统上。

2. oracle数据库:参数个数无效

三 mybatis

1. mybatis用注解如何实现模糊查询

在 MyBatis 中使用注解实现模糊查询非常简单,只需要在相应的 SQL 语句中使用 like 关键字即可。以下是实现模糊查询的示例代码:

java 复制代码
@Select("SELECT * FROM users WHERE name LIKE '%${keyword}%'")
List<User> findUsersByName(@Param("keyword") String keyword);

上述代码用 @Select 注解指定了查询语句,其中的 ${keyword} 是用于动态替换的占位符,然后用 @Param 注解指定了参数名。在调用该方法时,只需要传入对应的关键字即可,MyBatis 会将其自动拼接到 SQL 语句中。

需要注意的是,由于使用了字符串拼接,存在 SQL 注入的风险,因此建议使用预编译的方式来防止注入攻击。如下所示:

java 复制代码
@Select("SELECT * FROM users WHERE name LIKE CONCAT('%', #{keyword}, '%')")
List<User> findUsersByName(@Param("keyword") String keyword);

上述代码使用了 #{} 占位符,并使用 CONCAT 函数来进行字符串拼接,这样就可以有效地防止注入攻击。

四 List

1. 如何判断Java List是否为空?

A 使用isEmpty()方法

Java List是一种常用的数据结构,如果我们需要判断一个List是否为空,最简单的方法就是使用isEmpty()方法。这个方法会返回一个boolean类型的值,如果List为空,返回true;如果List不为空,返回false。

java 复制代码
List<String> list = new ArrayList<>();
if(list.isEmpty()) {
    System.out.println("List为空");
} else {
    System.out.println("List不为空");
}

B 使用List的size()方法

除了使用isEmpty()方法外,我们也可以使用List的size()方法来进行判断。size()方法会返回List包含的元素的数量,如果数量为0,就说明List为空。

java 复制代码
List<String> list = new ArrayList<>();
if(list.size() == 0) {
    System.out.println("List为空");
} else {
    System.out.println("List不为空");
}

C 使用Objects.isNull()方法

如果我们使用Java 8以上的版本,我们也可以使用Objects.isNull()方法来进行判断。这个方法会判断一个对象是否为null,如果是null,就返回true;否则返回false。

java 复制代码
List<String> list = null;
if(Objects.isNull(list)) {
    System.out.println("List为null");
} else {
    System.out.println("List不为null");
}

D 判断List的第一个元素是否为null

通常情况下,我们如果需要判断一个List是否为空,就应该使用前面介绍的方法。但是有时候,我们可能会遇到一个特殊情况,就是List不为null,但是第一个元素为null。这时候,如果我们使用前面的方法判断,会得到错误的结果。此时,我们可以先判断List是否为null,然后再判断第一个元素是否为null。

java 复制代码
List<String> list = new ArrayList<>();
list.add(null);
if(list == null || list.size() == 0 || list.get(0) == null) {
    System.out.println("List为空");
} else {
    System.out.println("List不为空");
}

上面的例子中,我们首先向List中添加了一个null元素,然后在判断时,先判断List是否为null,再判断List的长度是否为0,最后再判断List的第一个元素是否为null。这样做可以避免在第一个元素为null时得到错误的结果。

五 java字符串

1. 如何实现Java字符串去掉双引号的具体操作步骤

去掉双引号

要去掉Java字符串中的双引号,我们可以使用replaceAll()方法来替换双引号为空字符串。replaceAll()方法接受两个参数:要替换的模式和替换后的字符串。

以下是一个示例代码,演示了如何去掉双引号:

java 复制代码
String str = "\"Hello, World!\"";
String result = str.replaceAll("\"", "");
System.out.println(result);

在这个示例中,我们首先定义了一个包含双引号的字符串str。然后,我们使用replaceAll()方法将双引号替换为空字符串。最后,我们打印出结果。

输出结果为:

java 复制代码
Hello, World!

注意事项

在使用replaceAll()方法时,需要注意以下几点:

replaceAll()方法将会替换所有匹配的字符串。如果字符串中有多个双引号,它们都将被替换。

注意转义字符。在Java中,双引号是特殊字符,我们需要使用转义字符\来表示它们。

结论

对于如何去掉Java字符串中的双引号。我们使用了replaceAll()方法来替换双引号为空字符串。要注意双引号是特殊字符,需要使用转义字符来表示。

相关推荐
m0_571957582 小时前
Java | Leetcode Java题解之第543题二叉树的直径
java·leetcode·题解
魔道不误砍柴功4 小时前
Java 中如何巧妙应用 Function 让方法复用性更强
java·开发语言·python
NiNg_1_2344 小时前
SpringBoot整合SpringSecurity实现密码加密解密、登录认证退出功能
java·spring boot·后端
闲晨4 小时前
C++ 继承:代码传承的魔法棒,开启奇幻编程之旅
java·c语言·开发语言·c++·经验分享
测开小菜鸟5 小时前
使用python向钉钉群聊发送消息
java·python·钉钉
P.H. Infinity6 小时前
【RabbitMQ】04-发送者可靠性
java·rabbitmq·java-rabbitmq
生命几十年3万天6 小时前
java的threadlocal为何内存泄漏
java
caridle7 小时前
教程:使用 InterBase Express 访问数据库(五):TIBTransaction
java·数据库·express
^velpro^7 小时前
数据库连接池的创建
java·开发语言·数据库
苹果醋37 小时前
Java8->Java19的初步探索
java·运维·spring boot·mysql·nginx