actual combat 20——语法常见问题

一. 空指针

  1. Integer类型和int类型比较时,若前者为null会报null指针异常
    举例:
Integer a = null;
if(a != 1 ) {
    System.out.println("==============");
}

mybatis中的sql语句的返回值

select语句
1.正确执行时,返回查询的结果或结果集
2.未查询到结果,返回值为null

insert语句
1.正确执行时,返回在数据库中影响的行数
2.插入数据失败,抛出com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException

update语句
1.正确执行时,返回在数据库中匹配的行数
2.插入数据失败,抛出com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException

delete语句
1.正确执行时,返回在数据库中影响的行数
2.插入数据失败,抛出com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException

总结
1.对数据库无影响的语句,返回结果集或null
2.对数据库有影响的语句,因为约束影响执行失败都会抛出com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException
3.delete,update语句正确执行时返回的是匹配行数,同一个update语句多次执行仍会返回1,同一个delete语句多次执行后返回0
————————————————
原文链接:https://blog.csdn.net/qq_36108386/article/details/94318159

注意:
例如 update table set name ‘zhagnsan’ where name=‘zhagnsan’ ,由于name没有发生变化,实际上不会真的执行,那么matched记录数=1,changed记录数=0
所以依旧返回0(未验证过!!!)
参考:https://blog.csdn.net/m0_45406092/article/details/124191201

三、Set

Set根据equest方法和hashcode方法判断两对象是否一样。

四、String

1. substringAfterLast()方法:它返回一个字符串中最后一个指定字符或字符串之后的部分。

两种用法:
举例:
用法一:String类自带substringAfterLast方法(单参)

String str = "Hello World! This is a test.";
String result = str.substringAfterLast(" ");
System.out.println(result);
//输出将会是 "test.",因为它是最后一个空格之后的部分。

用法二:使用StringUtils工具类(双参)

//substringAfterLast(String str, String separator) :此重载方法接受两个参数, str  是要处理的字符串, separator  是要搜索的分隔符。它返回在  str  中最后一个匹配  separator  的位置之后的部分字符串。如果找不到匹配的分隔符,则返回空字符串。
String fileType = StringUtils.substringAfterLast(file.getOriginalFilename(), ".");
if ("xls".equals(fileType) && "xlsx".equals(fileType)) {
    throw new ServiceException("不支持的导入格式");
}

2. StringUtils.isAnyBlank()StringUtils.isAnyEmpty()的区别

  • StringUtils.isAnyBlank() 和 StringUtils.isAnyEmpty() 是Apache Commons Lang库中的两个方法,用于检查字符串是否为空或仅包含空白字符。它们的区别在于检查的条件略有不同。
  • StringUtils.isAnyBlank() 方法检查字符串数组中是否至少有一个字符串为空或仅包含空白字符。它会忽略字符串中的空格,只要字符串中存在非空白字符,即使有空格也会被认为是非空的。
  • StringUtils.isAnyEmpty() 方法检查字符串数组中是否至少有一个字符串为空字符串。它会将只包含空格的字符串视为非空字符串,只有当字符串为空(长度为0)时才会返回true。
String[] strings = {"hello", "world", "   ", "example"};
boolean hasBlank = StringUtils.isAnyBlank(strings); // true
boolean hasEmpty = StringUtils.isAnyEmpty(strings); // false

if (hasBlank) {
   System.out.println("数组中存在空白字符串");
} else {
   System.out.println("数组中不存在空白字符串");
}

if (hasEmpty) {
   System.out.println("数组中存在空字符串");
} else {
   System.out.println("数组中不存在空字符串");
}

在上述示例中, hasBlank 变量将为 true,因为数组中包含一个只包含空白字符的字符串。而 hasEmpty 变量将为 false,因为数组中不存在空字符串。
StringUtils的依赖包:import org.apache.commons.lang3.StringUtils;

五、Mysql

1. 直接使用from进行多表查询

直接使用FROM进行多表查询是指在查询语句中使用多个表名,并在FROM子句中列出这些表名,以获取这些表的联合结果。下面是一个示例:

SELECT column1, column2
FROM table1, table2
WHERE table1.column3 = table2.column3;
  • 在上面的例子中,我们从table1和table2这两个表中选择column1和column2列,并且通过WHERE子句指定了它们之间的连接条件。使用逗号将多个表名分隔开来,表示要从这些表中获取联合结果。
  • 需要注意的是,直接使用FROM进行多表查询会进行隐式的交叉连接(CROSS JOIN),即将第一个表的每一行与第二个表的每一行进行组合。如果没有指定连接条件,将会得到两个表的笛卡尔积。
  • 为了获得更精确的查询结果,通常建议使用明确的连接方式,如INNER JOIN、LEFT JOIN等,来指定表之间的连接关系。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值