- 博客(43)
- 收藏
- 关注
原创 锁定数据行 for update和for update nowait
2.如果另一个事务执行select…for update ,在执行时就会等待,直至锁被释放,即直至for update的那个事务提交后才会正常执行该事务下的for uodate语句,或者update、delete语句也是一样的逻辑;for update wait n (n是时间,单位:秒),即会等待n秒,n秒之后数据还是锁住的话就会报上面提到的错误。for update 和for update nowait主要区别在于是否等待。首先,for update 和for update nowait 是对操作的。
2023-05-11 16:18:14
1543
原创 long和Long类型比较大小
Long是包装类,不能直接用==做比较,==比较的是地址。 public static void main(String[] args) { Long a1 = 127L; Long b1 = 127L; System.out.println(a1 == b1); System.out.println("----------------------------"); /** * long 是基本类型
2021-01-25 10:11:15
2722
原创 excel转成想要的sql脚本
把主键字段相关的sql片段单独摘出来,防止excel语法提示公式语句过长。=" t.id=’"&B2&"’)"“&B2&” 表示本行第二列单元格的值。(需要注意的是,如果sql中需要用到单引号,逗号之类的,要记得加。"&B2&"只是单纯的字符串替换拼接,相当于mybatis里的${id})...
2020-12-24 13:56:45
749
原创 SQL踩坑集合,持续更新……
1.oracle中null数据的计算select count(*) from pier.testxhh t where t.name != 'a';//结果 0select count(*) from pier.testxhh t where t.name = 'a';// 结果 1select count(*) from pier.testxhh t where t.age > -1;//结果2select count(*) from pier.testxhh t where t.age
2020-12-11 10:27:33
119
原创 Linux查看文件命令
最近总是查看日志 简单tail -f catalina.log 已经满足不了需求了。cat由第一行开始显示文件内容cat catalina.log -A -bcat -A -b catalina.log选项与参数:-A :相当於 -vET 的整合选项,可列出一些特殊字符而不是空白而已;-b :列出行号,仅针对非空白行做行号显示,空白行不标行号!-E :将结尾的断行字节 $ 显示出来;-n :列印出行号,连同空白行也会有行号,与 -b 的选项不同;-T :将 [tab] 按键以 ^I 显
2020-12-04 15:42:03
159
转载 正则表达式的使用
这里写自定义目录标题前言示例使用方式合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入前言每次用到正则的时候都是去查一下,再写,写完下次再写的时候就用忘了。用的频率挺高,有必要总结一下,彻底掌握。示例//?:0或1个, *:0或多个,
2020-11-05 16:11:52
184
转载 boolean型在javabean规范中有特殊性
boolean属性名避免使用 “is” 开头的名称具体参考:https://blog.csdn.net/yunye114105/article/details/7364264
2020-07-28 15:09:02
149
原创 Oracle的to_char()函数以及FM的作用
常用数字格式化符参数示例说明9999.99在小数点前存在非0数字显示数字(不包括数字0,如果存在数字0,作为不存在数字处理,还是显示空格),不存在显示空格;在小数点后存在非0数字显示数字(不包括数字0,如果存在数字0,作为不存在数字处理,还是显示0,但是这个0是9转换过去的0,所以在使用FM是会消除这个9转换过去的0),不存在显示000.00存在数字显示数字,不存在显示0.99.99指定位置返回小数点,999,999,999指定位置返回逗号FM
2020-07-23 14:10:34
7077
原创 mybatis 比较字符串相等
if 和 when的是一样的,比较字符串相等时都可以参考以下操作。1.test用单引号 字符串用双引号<when test='name == "1"'> …………………………</when>2.用toString()<when test="name== '1'.toString()"> ……………………</`when>`当常量的length=1时,因为mybatis会把’1’解析为字符,java是强类型语言,所以不能这样写。如果常量的l
2020-07-21 19:32:31
4154
原创 MyBatis-内置参数 _parameter
_parameter:代表整个参数单个参数:_parameter就代表这个参数多个参数:参数会被封装成一个map,_parameter就代表这个map使用@Param时,就相当于存成map了。
2020-07-17 18:50:44
596
原创 where后面的 (+) 是什么作用
首先,这个语法只能在Oracle数据库中使用。相当于左连接或者右连接select A.* ,B.* from A,B where A.id = b.id(+);select A.*,B.* from A left join B on A.id = B.id;上面两个语句是等效的。带(+)的表在没有数据时也展示出来null。...
2020-07-02 16:17:25
2450
转载 MyBatis——There is no getter for property
当 xml 的 paramType 属性为 Map 时,接口中不需要加 @Param 注解。当 xml 的 paramType 属性为 String ,Integer时,且xml中使用 < if > 标签,接口中需要加 @Param 注解。因为if里面用了mybatis的内置对象。当接口中只有一个属性,且xml中未使用 < if > 标签,不用加 @Param 标签。当接口中有多个参数时,必须加 @Param 标签。参考:https://blog.csdn.net/gxkvj
2020-06-30 15:52:41
154
转载 maven的使用总结
我们在用maven构建java项目时,最常用的打包命令有mvn package、mvn install、mvn deploy,这三个命令都可完成打jar包或war(当然也可以是其它形式的包)的功能。但这三个命令还是有区别的,可以从执行这三个命令的输出结果来分析看,各自所执行的maven的生命周期不同。通过执行这三个命令的输出结果我们可以看出三者的区别在于包函的maven生命的阶段和执行目标(goal)不同。maven生命周期(Lifecycle)由各个阶段组成,每个阶段由maven的插件plugin来
2020-06-17 16:18:38
139
原创 逻辑或、与、非无底线混用真的恶心
最近维护公司看之前的代码,看到了或与非混用还不加括号的写法(类似如下),真的是恶心到了,想了想,其实我一直都没有这样写过,所以还真的不太确定是怎么个原则。 if (1==1 && 2==2 && 3==4 || !(4<0) && 1==1 || 2==2 && 1==1){ System.out.println("true"); } else { Syste
2020-06-15 18:22:22
232
原创 join on多个条件的理解
a表b表查询1:这是一个简单的左连接,左表的数据都会查询在结果中。查询2:左连接,on后面跟了2个条件,其中第二个条件对左表进行刷选,可以看到在结果中并没有起作用。因为on的条件筛选是对2张表生成的全连接(笛卡尔积)临时表进行的筛选,这时a.id=4的数据实际上是被去除掉了,因为没有a.id=4且a.id=b.id的数据。但是由于是left join,所以在结果中没有的左表数据a.id=4又被加了上去。由此可见left join 的时候,on后面对左表的数据加筛选条件是没有用的。查询3
2020-06-12 16:03:28
47741
4
转载 MySQL的语句执行顺序(转载)
MySQL的语句执行顺序MySQL的语句一共分为11步,如下图所标注的那样,最先执行的总是FROM操作,最后执行的是LIMIT操作。其中每一个操作都会产生一张虚拟的表,这个虚拟的表作为一个处理的输入,只是这些虚拟的表对用户来说是透明的,但是只有最后一个虚拟的表才会被作为结果返回。如果没有在语句中指定某一个子句,那么将会跳过相应的步骤。下面我们来具体分析一下查询处理的每一个阶段FORM: 对FROM的左边的表和右边的表计算笛卡尔积。产生虚表VT1ON: 对虚表VT1进行ON筛选,只有那些符合的行才
2020-06-12 14:49:15
432
原创 idea中使用Tomcat的war和war exploded部署的区别
区别war模式:将WEB工程以包的形式上传到服务器 ;先打成war包,再发布到服务器上。war exploded模式:将WEB工程以当前文件夹的位置关系上传到服务器;(1)war模式这种可以称之为是发布模式,看名字也知道,这是先打成war包,再发布;(2)war exploded模式是直接把文件夹、jsp页面 、classes等等移到Tomcat 部署文件夹里面,进行加载部署。因此这种方式支持热部署,一般在开发的时候也是用这种方式。(3)在平时开发的时候,使用热部署的话,应该对Tomcat进行相应
2020-06-05 14:46:33
444
1
原创 对匿名内部类的“内部”的理解
老规矩先上代码package com.xhh.fourstudent;public class WindBoy { public void q(){ System.out.println("windBoy"); } class Inner{ }}package com.xhh.fourstudent;public class Main { public static void main(String[] args) {
2020-05-29 13:07:14
192
原创 多表联查的连表顺序
老规矩先上例子a,b,c三个表a表b表c表1.查询结果2.查询结果结论:结果1,可以看到先执行了inner join b,导致临时表中a表的相关数据已经没有id=4的数据了,即使再left join c表结果依然没有。结果2,可以看到先执行了left join b,生成的临时表中a表的相关数据还有id=4,因此在inner join c表时结果中仍然保留a.id=4。所以在连表的过程中,先a和b进行连接,生成一张中间表d,然后再和c进行条件连接生成最后的表的数据。总结:查询
2020-05-28 17:45:22
4777
3
原创 group by理解的进阶过程
先上例子表数据如图1.group by后只跟一个字段2.跟2个字段3.调换位置理解先说说之前的困惑。“表示根据后面的字段来分组,如果只有1个字段,那只是根据这个字段的值来进行一次分组就可以了;若后面有多个字段,那表示根据多字段的值来进行层次分组,知分组层次从左到右,即先按第1个字段分组,然后在第1个字段值相同的记录中,再根据第2个字段的值进行分组;接道着第2个字段值相同的记录中,再根据第3个字段的值进行分组…依次类推。”如上是之前刚接触group by的时候一直看到的解释。当时不理解
2020-05-27 14:39:25
956
原创 mysql事务特征之一致性的理解
一致性是指,事务必须是使数据库从一个一致性状态变到另一个一致性状态。(从一个正常状态转换为另一个正常状态)。一致性体现在两个层面:1.数据库机制层面数据库层面的一致性是,在一个事务执行之前和之后,数据会符合你设置的约束(唯一约束,外键约束,Check约束等)和触发器设置。比如:A有90,向B转了100,这时A的账户余额就是负数,而金额的字段设置了unsigned(即非负数),这时数据库就会报...
2020-03-12 09:58:58
2022
原创 多态情况下,成员方法和成员变量的调用
多态情况下,父类的引用调用和子类同名的普通成员变量,使用的是父类自己的成员变量多态情况下,父类的引用调用和子类同名的普通成员方法,使用的是子类自己的成员方法多态情况下,父类的引用调用和子类同名的静态成员方法,使用的是父类的静态成员方法多态情况下,父类的引用不能调用子类特有的成员变量。参考https://bbs.csdn.net/topics/391822759总结就是,成员变量是静态...
2020-03-02 15:15:43
948
原创 使用Jackson解析属性首字母为大写的JSON串时首字母变小写
问题面对不遵守驼峰命名规则的接口,比如属行首字母用大写,这样导致使用Jackson解析出来的对象的属性均为空,经过跟踪源码发现,是由于其根据getters方法解析的属性,属性字母都变为了小写,这就导致无法解析了出现了jackson Unrecognized field 的问题。例如:@Datapublic class JobType { private int jobType; ...
2019-12-27 15:44:53
1636
转载 连表查询可以跟多个条件
连表查询时后面条件可以跟多个条件select * from tabA a,tabB bwhere a.userID=b.userID and a.userName=b.userNameselect * from tabA aleft join tabB bon a.userID=b.userID and a.userName=b.userNamewhere ……连表查询时on后...
2019-12-27 11:43:14
11706
原创 当数据库查不到数据时,mybatis封装的数据是不是null?
dao中sql如下 @Select("select * from _bank where enable=0") public List<Student> find1(); @Select("select * from _bank where enable=0") public Student find2(); @Select("select ...
2019-11-06 11:11:59
982
原创 sql中那些偶尔用到却很实用的函数,持续更新……
1.IF()IF(condition, value_if_true, value_if_false)IF函数根据条件的结果为true或false,返回第一个值,或第二个值例:SELECT IF(500<1000, 5, 10);SELECT IF(STRCMP(“hello”,“bye”) = 0, “YES”, “NO”);...
2019-10-24 15:10:40
610
原创 mysql返回Boolean类型的几种情况
第一种情况,直接返回select id='22aa' from mytest where age=202 ////返回1 可封装为trueselect count(*)=1 from mytest where age=202 ////返回1 可封装为trueselect count(*)=0 from mytest where age=202 ////返回0 可封装为falsese...
2019-10-23 17:19:09
15855
原创 常见得几种新建一个带有数据的list方法
/** * 常见得几种新建一个带有数据的list方法 */public class Demo1 { public static void main(String[] args){ String[] strings = new String[]{ "one","two","three" }; //然而lis...
2019-10-23 14:36:06
8922
原创 mysql 子查询的排序问题
一 概念嵌套查询:有(内层)子查询的查询,也就是说,包括外层主查询和内层子查询的查询。(内层)子查询:子查询还可以包括子查询。子查询分为嵌套子查询和相关子查询。嵌套子查询:执行不依赖与外部的查询。一般可以分为:返回单值的子查询 和 返回一个列表的子查询。例如:select s.*,(select countryName from country where id=1 ) countryNa...
2019-09-26 16:39:44
5038
3
翻译 maven项目中导入第三方jar包
如何在maven项目中导入第三方jar包方式1:将外部jar打入本地maven仓库(推荐)1.下载jar包到本地2.打开cmd输入命令3.在javaweb项目的pom.xml里添加一下代码(注意要和上面命令行里安装的一致)方式2:dependency 本地jar包方式3:编译阶段指定外部lib方式1:将外部jar打入本地maven仓库(推荐)1.下载jar包到本地2.打开cmd输入命令格式...
2019-09-05 16:20:10
5039
转载 clone()方法,深克隆,浅克隆
clone()方法介绍参考链接:https://blog.csdn.net/czjuttsw/article/details/8491392浅克隆 深克隆参考了解:https://blog.csdn.net/qq_38962004/article/details/79721230
2019-09-05 16:20:03
439
原创 Java中的权限修饰protected
目录结构ProtectOneProtectTwomain个人总结最近在网上也看了一些相关的帖子,总感觉描述的很混乱。自己写一个例子做一个简单的总结。1.同一个包内,可以在其他类中,通过类对象调用protected修饰的成员。2.不过的包内,不可以调用protected修饰的成员。3.无论是否同一个类内,子类可以调用父类的protected修饰的成员。...
2019-09-05 16:19:42
235
原创 java中用Comparator实现集合排序
package com.xiyuan.tv.compartor;import java.util.ArrayList;import java.util.Comparator;public class main { public static void main(String[] args){ ArrayList<Student> list = new ...
2019-09-05 16:19:28
606
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人