![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
JAVA工具类和常用工具
文章平均质量分 64
常用工具出现的问题处理方法
xinlianluohan
本博客都是为了方便自己复习
展开
-
乐观锁和悲观锁的区别
引言为什么需要锁(并发控制)? 在多用户环境中,在同一时间可能会有多个用户更新相同的记录,这会产生冲突。这就是著名的并发性问题。典型的冲突有:丢失更新:一个事务的更新覆盖了其它事务的更新结果,就是所谓的更新丢失。例如:用户A把值从6改为2,用户B把值从2改为6,则用户A丢失了他的更新。 脏读:当一个事务读取其它完成一半事务的记录时,就会发生脏读取。例如:用户A,B看到的值都是6...转载 2018-12-03 11:10:38 · 187 阅读 · 0 评论 -
mysql 8.0.22详细安装步骤
一、安装(1)、官网下载(2)、安装(前提是之前没安装过mysql,若安装过,下面有介绍卸载方式;若不知道有没有安装可以可以在cmd窗口输入services.msc查看有没有mysql服务),以管理员身份进入命令提示符 ,进入 mysql-8.0.22-winx64/bin 目录下。(下图是win10系统运行命令窗口)左下图”开始“——“Windows系统”——命令提示符进入目录的命令先初始化mysqld --initialize-insecure,然后安装m转载 2021-04-28 16:22:03 · 2863 阅读 · 0 评论 -
explain分析查询
explain分析查询使用EXPLAIN关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理你的SQL语句的。这可以帮你分析你的查询语句或是表结构的性能瓶颈。通过explain命令可以得到:– 表的读取顺序– 数据读取操作的操作类型– 哪些索引可以使用– 哪些索引被实际使用– 表之间的引用– 每张表有多少行被优化器查询EXPLAIN字段:...转载 2019-08-05 02:13:56 · 1541 阅读 · 0 评论 -
MySQL中left join on后面的条件与where后面的条件的区别
表:A、BA 字段:id,nameB 字段:id,a_id关键名词:主表、关联表、关联条件、筛选条件例子:# 主表:A、关联表:B、关联条件:A.od=B.a_id、筛选条件:B.id=1A left join B on A.id=B.a_id and B.id=1结论:表 A 和表 B 的连接依靠关联条件 主表的筛选条件,应该放置在 where 条件后 on 后面的筛选条件是针对于关联表 关联表的筛选条件,如果放置在 on 后面,那么 A 和 B 的连接顺序为:B 表先按条件转载 2021-01-14 00:04:54 · 1256 阅读 · 3 评论 -
MySQL基础——多表查询(各种join连接详解)
Mysql 多表查询详解目录Mysql 多表查询详解一.前言二.下面以实例进行分析三 注意事项一.前言上篇讲到Mysql中关键字执行的顺序,只涉及了一张表;实际应用大部分情况下,查询语句都会涉及到多张表格 :1.1多表连接有哪些分类?1.2针对这些分类有哪些连接方法?1.3这些连接方法分别作用于哪些应用场景?这篇针对这三个点通过实例来讲述,目的是穷尽所有的场景和所有的方法,并且对每个方法的使用做实例。首先先列举本篇用到的分类(内连接,外连接,交叉连接...转载 2021-04-28 15:34:35 · 57601 阅读 · 8 评论 -
聚簇索引和非聚簇索引详细介绍
总结:InnoDB中,表数据文件本身就是按B+Tree组织的一个索引结构,聚簇索引就是按照每张表的主键构造一颗B+树,同时叶子节点中存放的就是整张表的行记录数据,也将聚集索引的叶子节点称为数据页。这个特性决定了索引组织表中数据也是索引的一部分; 一般建表会用一个自增主键做聚簇索引,没有的话MySQL会默认创建,但是这个主键如果更改代价较高,故建表时要考虑自增ID不能频繁update这点。 我们日常工作中,根据实际情况自行添加的索引都是辅助索引,辅助索引就是一个为了需找主键索引的二级索引,现在找到转载 2021-05-11 23:48:29 · 727 阅读 · 0 评论 -
MyBatis学习总结(二)——使用MyBatis对表执行CRUD操作
上一篇博文MyBatis学习总结(一)——MyBatis快速入门中我们讲了如何使用Mybatis查询users表中的数据,算是对MyBatis有一个初步的入门了,今天讲解一下如何使用MyBatis对users表执行CRUD操作。本文中使用到的测试环境是上一篇博文中的测试环境。一、使用MyBatis对表执行CRUD操作——基于XML的实现1、定义sql映射xml文件 userMappe...转载 2018-05-15 09:00:03 · 96 阅读 · 0 评论 -
MyBatis学习总结(三)——优化MyBatis配置文件中的配置
一、连接数据库的配置单独放在一个properties文件中 之前,我们是直接将数据库的连接配置信息写在了MyBatis的conf.xml文件中,如下:<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" ...转载 2018-05-15 15:02:36 · 74 阅读 · 0 评论 -
MyBatis学习总结(七)——Mybatis缓存
一、MyBatis缓存介绍 正如大多数持久层框架一样,MyBatis 同样提供了一级缓存和二级缓存的支持一级缓存: 基于PerpetualCache 的 HashMap本地缓存,其存储作用域为 Session,当 Session flush 或 close 之后,该Session中的所有 Cache 就将清空。 2. 二级缓存与一级缓存其机制相同,默认也是采用 PerpetualCache,H...转载 2018-05-16 17:44:12 · 125 阅读 · 0 评论 -
MyBatis学习总结(四)——解决字段名与实体类属性名不相同的冲突
在平时的开发中,我们表中的字段名和表对应实体类的属性名称不一定都是完全相同的,下面来演示一下这种情况下的如何解决字段名与实体类属性名不相同的冲突。一、准备演示需要使用的表和数据CREATE TABLE orders( order_id INT PRIMARY KEY AUTO_INCREMENT, order_no VARCHAR(20), order_p...转载 2018-05-15 16:13:37 · 306 阅读 · 0 评论 -
MyBatis学习总结(八)——Mybatis3.x与Spring4.x整合
一、搭建开发环境1.1、使用Maven创建Web项目 执行如下命令:mvn archetype:create -DgroupId=me.gacl -DartifactId=spring4-mybatis3 -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false 如下图所示: 创建好的项目如下: 编辑p...转载 2018-05-16 18:46:07 · 141 阅读 · 0 评论 -
mybatis中"#{}"和"${}"的区别
动态 sql 是 mybatis 的主要特性之一,在 mapper 中定义的参数传到 xml 中之后,在查询之前 mybatis 会对其进行动态解析。mybatis 为我们提供了两种支持动态 sql 的语法:#{} 以及 ${}。 在下面的语句中,如果 username 的值为 zhangsan,则两种方式无任何区别:select * from user where name = #{name...转载 2018-05-15 09:38:55 · 116 阅读 · 0 评论 -
MyBatis学习总结(六)——调用存储过程
一、提出需求 查询得到男性或女性的数量, 如果传入的是0就女性否则是男性二、准备数据库表和存储过程 1 create table p_user( 2 id int primary key auto_increment, 3 name varchar(10), 4 sex char(2) 5 ); 6 7 insert into p_user(nam...转载 2018-05-16 12:41:56 · 101 阅读 · 0 评论 -
MyBatis学习总结(一)——MyBatis快速入门
一、Mybatis介绍 MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装。MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。二、mybatis...转载 2018-05-14 15:39:16 · 194 阅读 · 0 评论 -
MyBatis学习总结(五)——实现关联表查询
一、一对一关联1.1、提出需求 根据班级id查询班级信息(带老师的信息)1.2、创建表和数据 创建一张教师表和班级表,这里我们假设一个老师只负责教一个班,那么老师和班级之间的关系就是一种一对一的关系。 CREATE TABLE teacher( t_id INT PRIMARY KEY AUTO_INCREMENT, t_name VARCHAR(...转载 2018-05-15 17:39:32 · 164 阅读 · 0 评论 -
oracle 数据库中 connect by 和level 的用法
这几天看sql看到了有关connect by和level的关键字用法,以前都用mysql也没用过这个关键字,感觉挺有用的,就学了下,整理一下学习过程。首先,connect by和level都是为了快速的查询层级关系的关键字,在代理关系中,或者权限关系中,经常会有层层嵌套的场景,比如,同行数据的第一个字段是ID,第二个字段是parentID,parentID表示他的上级ID是谁。...转载 2018-12-10 18:08:03 · 20227 阅读 · 0 评论 -
Oracle数据库系统视图USER_TAB_COLS和USER_TAB_COLUMNS的区别
视图SYS.USER_TAB_COLS和SYS.USER_TAB_COLUMNS都保存了当前用户的表、视图和Clusters中的列信息。通过检索这两个表,可以方便的获取到表的结构。主要的列属性有:字段名称 字段含义 TABLE_NAME 表、视图或Clusters名称 COLUMN_NAME 列名 DATA_TYPE 数据类型 DATA_TYPE...转载 2020-03-18 17:36:46 · 1871 阅读 · 0 评论 -
Oracle 11g忘记管理员密码SYS和SYSTEM——解决方法
1.首先使用操作系统方式认证登陆SYS账户,修改SYSTEM账户密码。$ sqlplus / as sysdbaSQL*Plus: Release 11.2.0.4.0 Production on Fri Mar 20 14:23:41 2015Copyright (c) 1982, 2013, Oracle. All rights reserved.Connected to:...转载 2019-09-26 15:32:52 · 1046 阅读 · 0 评论 -
win10 安装oracle 11g R2_database
前言:想要为了后续开展项目做准备,而且打算使用oracle,所以必须先安装oracle。本机 win 10 64位系统。第一步,下载 oracle 下载地址,官网(需要登录注册): http://download.oracle.com/otn/nt/oracle11g/112010/win64_11gR2_database_1of2.zip http://download.oracle.com/otn/nt/oracle11g/112010/win64_11gR2_databa...转载 2020-05-27 01:19:06 · 545 阅读 · 0 评论 -
详细解释SQL语句、PL/SQL块和SQL*Plus命令的区别
在SQL*Plus中可以处理三种类型的命令:SQL语句、PL/SQL块和SQL*Plus命令,但三者之间是有区别的。1)SQL语句是以数据库为操作对象的语言,主要包括数据定义语言DDL、数据操纵语言DML和数据控制语言DCL以及数据存储语言DSL。当输入SQL语句后,SQL*Plus将其保存在内部缓冲区中。 当SQL命令输入完毕时,有三种方法可以结束SQL命令:在命令行的末尾输入分号(;)...转载 2020-01-21 17:01:53 · 825 阅读 · 0 评论 -
关于group by用法的原理
写在前面的话:用了好久group by,今天早上一觉醒来,突然感觉group by好陌生,总有个筋别不过来,为什么不能够select * from Table group by id,为什么一定不能是*,而是某一个列或者某个列的聚合函数,group by 多个字段可以怎么去很好的理解呢?不过最后还是转过来了,简单写写吧,大牛们直接略过吧。=========正文开始=========== ...转载 2020-01-21 17:40:46 · 462 阅读 · 0 评论 -
Oracle 的 表空间(Tablespace)、用户(User)、模式(Schema)详细解释
前面有整理了一篇Oracle 数据库(database) 与 实例(instance) 的概念及关系整理。那接下来就往下整理一个数据库里面的一些其他几个东西之间的奇奇怪怪的关系。一、表空间(Tablespace)讲表空间的话我就想到Oracle的逻辑存储结构了。所以还是简单讲讲吧,有机会再单独总结(抄袭)一篇。在计算机技术中,逻辑就是虚拟的意思,实际的数据存储在硬...转载 2019-07-26 10:07:03 · 3014 阅读 · 1 评论 -
Oracle 建立索引及SQL优化
数据库索引:索引有单列索引复合索引之说如何某表的某个字段有主键约束和唯一性约束,则Oracle 则会自动在相应的约束列上建议唯一索引。数据库索引主要进行提高访问速度。建设原则: 1、索引应该经常建在Where 子句经常用到的列上。如果某个大表经常使用某个字段进行查询,并且检索行数小于总表行数的5%。则应该考虑。 2、对于两表连接的字段,应该建立索引。如果经常在某表的一个字段...转载 2019-08-03 18:15:38 · 81 阅读 · 0 评论 -
Union和Union All的区别
以前一直不知道Union和Union All到底有什么区别,今天来好好的研究一下,网上查到的结果是下面这个样子,可是还是不是很理解,下面将自己亲自验证:Union:对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序;Union All:对两个结果集进行并集操作,包括重复行,不进行排序;注意:使用union和union all 必须两张表的字段名称一样,字段个数一样,如果a表...转载 2018-12-18 11:32:53 · 329 阅读 · 0 评论 -
新建视图、用户,并赋予该用户查询视图权限
一、需求数据库有个表car,需要为这个表建立一个视图view_car,并新建一个用户user01,赋予查询这个视图的权限二、实施步骤1、以管理员clgl登陆数据库,新建视图view_car:create or replace view view_caras select * from CAR;2、新建用户user01create user user01identified by "123456";3、授予用户user01权限grant select on view_..转载 2020-05-13 17:42:24 · 1108 阅读 · 0 评论 -
ORACLE数据库tnsnames.ora配置文件详细解析
字段含义如下:ADDRESS_LIST 表示该客户机要经由多种协议与一台或多台服务器连接。在该样式文件中就表示该客户机要用TCP/IP协议来和服务器相连。PROTOCOL 指明要连接使用的协议。SERVICE_NAME “SERVICE_NAME”就是“Global Database Name”,ORACLE8i数据库使用“Global Database Name”来唯一标识自...转载 2019-02-27 16:39:27 · 38511 阅读 · 0 评论 -
case when的两种用法
一、Case具有两种格式。简单Case函数和Case搜索函数。第一种 格式 :简单Case函数 :格式说明 case 列名 when 条件值1 then 选择项1 when 条件值2 then 选项2....... else 默认值 endeg: select case j...转载 2020-01-16 15:11:15 · 2135 阅读 · 0 评论 -
select 1 from table 语句中的1代表什么意思
在这里我主要讨论的有以下几个select 语句: doo_archive表是一个数据表,表的行数为4行,如下: 分别用三条select语句select 1 fromdoo_archive、select count(1) fromdoo_archive、select sum(1) fromdoo_archive进行测试,发现结果如下: 1...转载 2019-08-03 18:13:42 · 780 阅读 · 0 评论 -
Oracle - 数据库的实例、表空间、用户、表之间关系
完整的Oracle数据库通常由两部分组成:Oracle数据库和数据库实例。 1) 数据库是一系列物理文件的集合(数据文件,控制文件,联机日志,参数文件等); 2) Oracle数据库实例则是一组Oracle后台进程/线程以及在服务器分配的共享内存区。在启动Oracle数据库服务器时,实际上是在服务器的内存中创建一个Oracle实例(即在服务器内存中分配共享内存并创建相关的后转载 2017-12-11 16:23:56 · 293 阅读 · 0 评论 -
ROW_NUMBER() OVER()函数用法详解 (分组排序 例子多)
语法格式:row_number() over(partition by 分组列 order by排序列 desc)row_number() over()分组排序功能:在使用 row_number() over()函数时候,over()里头的分组以及排序的执行晚于 where 、group by、order by 的执行。例一:表数据:create table TEST_R...转载 2019-08-03 18:20:28 · 1082 阅读 · 0 评论 -
oracle常用系统表
问题:在SQL窗口能查询dba_tables,但pl/sql 匿名块中使用Select查询视图dba_tables报视图不存在,这两个地方有什么区别,老遇到这样的情况:在sql窗口能执行,在pl/sql块中却不行?是不是跟权限有关?这两个地方查询有什么区别?答:知道原因了,在存储过程过程中,角色是不可见的用户虽然有DBA角色,但用户并没有授具体的select权限,必须grant具体的权限...转载 2019-08-15 16:11:24 · 296 阅读 · 0 评论 -
Oracle数据库wm_concat()函数的使用方法
oracle数据库中wm_concat(column)函数使我们经常会使用到的,下面就教您如何使用oracle数据库wm_concat(column)函数实现字段合并如:shopping:----------------------------------------u_id goods num-------------------------...转载 2019-08-27 17:03:49 · 3571 阅读 · 0 评论 -
oracle 的数据库、表空间、表是什么关系
oracle 数据库就是指的oracle 整体,一般一个机器上只安装一个oracle数据库oracle建立好以后,实际上oracle是一个一个的DBF文件,然后N个DBF文件组成一个表空间你的表就建立在表空间下,比如我举个例子:一个数据库叫jack,jack下用户使用的表空间有3个: users , abc, jacc其中users由d:\1.dbf组成abc由d:\11.dbf d转载 2017-12-11 16:25:07 · 1673 阅读 · 2 评论 -
sqldeveloper 工具的使用——连接数据库的介绍
引言Oracle SQL Developer 是免费的图形化数据库开发工具。使用 SQL Developer,可以浏览数据库对象、运行 SQL 语句和 SQL 脚本,并且还可以编辑和调试 PL/SQL 语句。还可以运行所提供的任何数量的报表(reports),以及创建和保存自己的报表(reports)。SQL Developer 可以提高工作效率并简化数据库开发任务。SQL Developer 以 Java 编写而成,能够提供跨平台工具。使用 Java 意味着同一工具可以运行在 Windows、Li转载 2020-05-28 00:09:54 · 3128 阅读 · 0 评论 -
【Java进阶开发实战】用Java中的Base64数据加密与解密处理
base64原创 2023-11-24 00:09:17 · 1449 阅读 · 0 评论 -
java中for循环语句的性能
for循环性能原创 2023-02-03 22:46:21 · 269 阅读 · 1 评论 -
Java中的Base64编码和解码
Base64编码解码原创 2023-02-03 13:53:16 · 1247 阅读 · 0 评论 -
log4j.properties自定义日志配置
log4j的配置原创 2023-01-19 16:25:42 · 1176 阅读 · 0 评论 -
java关闭多个流——文件资源未释放(安全扫描)
文件资源未释放原创 2022-12-06 10:55:42 · 344 阅读 · 0 评论 -
SonarLint检测出的bug、漏洞修复总结
1、Introduce a new variable instead of reusing the parameter "prefixKey"不要用传递过来的参数去重新赋值做判断等可以新建一个参数 等于传递过来的参数 用新的参数去操作private String getBatchSaveKey(Map<String, String> map, String prefixKey, String... keys) {undefined //创建一个newPrefix...原创 2022-02-15 14:22:51 · 36396 阅读 · 0 评论