自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 收藏
  • 关注

原创 golang优雅代码【lock实现】

记录golang中一些开源项目的优雅实现代码,本文是同步锁的优雅实现,参考database/sql包源码

2024-06-07 17:38:34 493

原创 Gorm In 占位符替换大数据量耗时太久解决方法

gorm 中 sql in语句占位符大量数据替换性能优化

2024-06-06 20:28:05 200

原创 【无标题】

在docker上运行的mysql执行sql文件脚本

2023-02-20 22:34:46 160

原创 go 连接 mysql: could not use requested auth plugin ‘mysql_native_password‘

文章目录go 连接 mysql 问题go 连接 mysql 问题参考官方文档https://go.dev/doc/tutorial/database-accessvar db *sql.DBfunc main() { // Capture connection properties. cfg := mysql.Config{ User: os.Getenv("DBUSER"), Passwd: os.Getenv("DBPASS"),

2021-12-18 17:58:10 1482 1

原创 图解MySQL MVCC

文章目录图解MySQL MVCC1.MVCC2.基本思想3.版本号4.Undo 日志5.ReadView6.图例7.时间轴图例图解MySQL MVCC1.MVCC多版本并发控制(Multi-Version Concurrency Control, MVCC)是 MySQL 的 InnoDB 存储引擎实现隔离级别的一种具体方式,用于实现提交读和可重复读这两种隔离级别。而未提交读隔离级别总是读取最新的数据行,要求很低,无需使用 MVCC。可串行化隔离级别需要对所有读取的行都加锁,单纯使用 MVCC 无法实

2021-09-15 20:57:01 339

原创 装饰器模式(通俗易懂)

文章目录装饰器模式反例 #1反例 #2反例 #3装饰器模式执行示意图UML类图JDK源码中的装饰器模式展现装饰java.io类UML类图装饰器模式的简单实用反例都是为了和装饰器模式进行对比,突出其优点,若想直接查看装饰器模式的“真身”,可直接跳到装饰器模式目录装饰器模式简述:装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。业务场景:星巴克卖咖啡,一开始只有4种咖啡Decaf Es

2020-11-25 15:20:44 815 1

原创 Java如何给Mysql中插入year类型数据

文章目录Java如何给Mysql中插入year类型数据实际问题:解决方案:从数据库中读取year类型数据到Java从Java中往数据库存储year数据Java如何给Mysql中插入year类型数据实际问题:有时候我们mysql数据库需要存储以年为单位的数据。这时我们可能会用到year类型数据,如下图:当我们从数据库中查询数据或插入数据时,需要相应的类型变量。解决方案:从数据库中读取year类型数据到Java此时我们可以使用java.util.Date类型来进行接收,但月份和日期会默认为1月

2020-09-16 19:03:39 2549

原创 java.sql.SQLException: Data truncated for column ‘xxxxx‘ at row 1

java.sql.SQLException: Data truncated for column ‘xxxxx’ at row 1大意为:数据截断:第1行的“ publish_year”列的值超出范围产生异常原因:该异常通常为Java中的数据类型与mysql数据库的类型不一致导致。解决方法:检测相应的类型并修改即可。...

2020-09-16 18:52:02 891

原创 PreparedStatement 使用like 模糊查询

sql语句不必修改,在填充占位符时将需要模糊查询的字段拼接 % 即可,如下代码 @Override public List<Book> selectByName(Connection conn, String name) { String sql = "select * from book where book_name like ?"; return getForList(conn, sql, "%" + name + "%"); }.

2020-09-16 16:57:50 350

原创 java.lang.IllegalArgumentException: Can not set xxxx field XXXX

IllegalArgumentException: 非法参数异常产生异常的原因:在Java与mysql交互数据时,由于定义数据类型的不一致,我们在从mysql中读取数据到Java中进行类型转换时,时常会因为数据类型的不一致而导致该异常。解决方法:以我目前的案例为例:Book类对应mysql中的book表,类中定义了一个Year类型的publishYear变量mysql表中定义了一个year类型变量由于java数据类型与mysql类型的数据对应不是这两个类型,因此发生以下异常:jav

2020-09-16 11:19:41 16502 1

转载 解决ubuntu16.04 ‘E: 无法获得锁 /var/lib/dpkg/lock-frontend - open (11: 资源暂时不可用) ’ 问题

文章目录解决ubuntu16.04 ‘E: 无法获得锁 /var/lib/dpkg/lock-frontend - open (11: 资源暂时不可用) ’ 问题问题:原因解放方法一、二、解决ubuntu16.04 ‘E: 无法获得锁 /var/lib/dpkg/lock-frontend - open (11: 资源暂时不可用) ’ 问题问题:当运行sudo apt-get install/update/其他命令时,会出现如下提示:E: 无法获得锁 /var/lib/dpkg/lock-fro

2020-09-15 17:32:36 313

原创 Java数据结构与算法 day03 递归

文章目录第四章 递归4.1 递归应用场景4.2 递归的概念4.3 递归调用机制4.4 递归能解决什么样的问题4.5 递归需要遵守的重要规则第四章 递归4.1 递归应用场景看个实际应用场景,迷宫问题(回溯), 递归(Recursion)4.2 递归的概念简单的说: 递归就是方法自己调用自己,每次调用时传入不同的变量.递归有助于编程者解决复杂的问题,同时可以让代码变得简洁。4.3 递归调用机制列举两个小案例,来帮助大家理解递归,部分学员已经学习过递归了,这里在给大家回顾一下递归调用机制

2020-09-15 10:22:58 186

原创 JavaWeb学习笔记 day01 HTML 和 CSS

JavaWeb学习笔记 day01 HTML 和 CSS1.任务1、html 学习2、CSS 学习2.课堂笔记:2.1 B/S 软件的结构JavaSE C/S Client ServerB/S Browser Server2.2 前端的开发流程2.3 网页的组成部分页面由三部分内容组成!分别是内容(结构)、表现、行为。内容(结构),是我们在页面中可以看到的数据。我们称之为内容。一般内容 我们使用html 技术来展示。表现,指的是这些内容在页面上的展示形式。比如说。布

2020-09-14 19:46:31 313

原创 JavaSE:第5章 面向对象编程(中)

文章目录JavaSE:第5章 面向对象编程(中)5.1 OOP特征二:继承性5.2 方法的重写(override)5.3 四种访问权限修饰符5.4 关键字:super5.5 子类对象实例化过程5.6 OOP特征三:多态性instanceof 操作符对象类型转换 (Casting )5.7 Object类的使用5.8 包装类的使用JavaSE:第5章 面向对象编程(中)5.1 OOP特征二:继承性为描述和处理个人信息,定义类Person:为描述和处理学生信息,定义类Student:通过继承,简

2020-09-14 16:10:55 225

原创 Java JUC学习笔记 day01

文章目录Java JUC学习笔记1. Java JUC 简介2. volatile 关键字-内存可见性2.1 内存可见性2.1.1 示例2.2 volatile 关键字3. 原子变量-CAS算法3.1 CAS 算法3.2 原子变量3.3 原子性问题示例3.4 使用CAS解决问题3.5 模拟CAS算法4. ConcurrentHashMap 锁分段机制4.1 ConcurrentHashMap4.2 CountDownLatch 闭锁5. 实现 Callable 接口5.1 Callable 接口6. Loc

2020-09-14 15:19:53 182

原创 JDBC学习笔记 day06 Apache-DBUtils实现CRUD操作

第9章:Apache-DBUtils实现CRUD操作9.1 Apache-DBUtils简介commons-dbutils 是 Apache 组织提供的一个开源 JDBC工具类库,它是对JDBC的简单封装,学习成本极低,并且使用dbutils能极大简化jdbc编码的工作量,同时也不会影响程序的性能。API介绍:org.apache.commons.dbutils.QueryRunnerorg.apache.commons.dbutils.ResultSetHandler工具类:org.

2020-09-12 15:24:25 140

原创 JDBC学习笔记 day05 数据库连接池

第8章:数据库连接池8.1 JDBC数据库连接池的必要性在使用开发基于数据库的web程序时,传统的模式基本是按以下步骤:在主程序(如servlet、beans)中建立数据库连接进行sql操作断开数据库连接这种模式开发,存在的问题:普通的JDBC数据库连接使用 DriverManager 来获取,每次向数据库建立连接的时候都要将 Connection 加载到内存中,再验证用户名和密码(得花费0.05s~1s的时间)。需要数据库连接的时候,就向数据库要求一个,执行完成后再断开连接。这

2020-09-12 12:41:02 144

原创 JDBC异常处理 使用c3p0连接数据库异常CannotAcquireResourceException

文章目录JDBC异常处理 使用c3p0连接数据库异常CannotAcquireResourceException1.版本2.异常信息3.异常原因 & 解决方法JDBC异常处理 使用c3p0连接数据库异常CannotAcquireResourceException1.版本2.异常信息大意为:线程池无法从其主要工厂或来源获取资源。3.异常原因 & 解决方法在我们使用线程池来连接数据库时,常用的配置文件为xml文件。当我们使用其获取连接时,需要指定配置文件中的配置文件名

2020-09-12 10:36:03 296

原创 JavaSE:第4章 面向对象编程(上)

文章目录JavaSE:第4章 面向对象编程(上)4.1面向过程与面向对象4.1.1 何谓“面向对象”的编程思想?4.1.2 面向对象的思想概述4.2Java基本元素:类和对象4.2.1 面向对象的思想概述4.2.2 Java类及类的成员4.2.3 类的语法格式4.2.4 创建Java自定义类4.3对象的创建和使用4.3.1 创建对象:4.3.2 类的访问机制:4.3.3 对象的产生4.3.4 对象的使用4.3.5 内存解析4.3.6 匿名对象4.4类的成员之一:属性(field)4.4.1 变量的分类:成员

2020-09-11 15:46:50 409

原创 JDBC学习笔记 day04 数据库事务 & DAO及相关实现类

文章目录第6章: 数据库事务6.1 数据库事务介绍6.2 JDBC事务处理6.3 事务的ACID属性6.3.1 数据库的并发问题6.3.2 四种隔离级别6.3.3 在MySql中设置隔离级别第7章:DAO及相关实现类BaseDAOCustomerDAOCustomerDAOImplDAO优化存在的小瑕疵解决步骤:优化后代码BaseDAOCustomerDAOCustomerDAOImpl第6章: 数据库事务6.1 数据库事务介绍事务:一组逻辑操作单元,使数据从一种状态变换到另一种状态。事务处

2020-09-11 15:11:01 218

原创 JDBC学习笔记 day03 操作BLOB类型字段 及 批量插入

文章目录第4章 操作BLOB类型字段4.1 MySQL BLOB类型4.2 向数据表中插入大数据类型4.3 修改数据表中的Blob类型字段4.4 从数据表中读取大数据类型第5章 批量插入5.1 批量执行SQL语句5.2 高效的批量插入5.2.1 实现层次一:使用Statement5.2.2 实现层次二:使用PreparedStatement5.2.3 实现层次三5.2.4 实现层次四第4章 操作BLOB类型字段4.1 MySQL BLOB类型MySQL中,BLOB是一个二进制大型对象,是一个可以存

2020-09-11 10:59:38 201

原创 JDBC学习笔记 day02 使用PreparedStatement实现CRUD操作

第3章:使用PreparedStatement实现CRUD操作3.1 操作和访问数据库数据库连接被用于向数据库服务器发送命令和 SQL 语句,并接受数据库服务器返回的结果。其实一个数据库连接就是一个Socket连接。在 java.sql 包中有 3 个接口分别定义了对数据库的调用的不同方式:Statement:用于执行静态 SQL 语句并返回它所生成结果的对象。PrepatedStatement:SQL 语句被预编译并存储在此对象中,可以使用此对象多次高效地执行该语句。Callable

2020-09-03 22:38:51 204

原创 idea连接mysql后找不到数据库表

idea连接mysql后找不到数据库表mysql中存在的表数据idea中连接后的表数据解决方法

2020-08-12 16:04:08 1965 4

原创 idea连接mysql错误处理

原因:服务器返回无效时区,转到“高级”选项卡并手动设置“serverTimezone”属性。在mysql的命令行窗口输入以下命令即可:show variables like ‘%time_zone%’;set global time_zone=’+8:00’;参考:https://blog.csdn.net/weixin_42941486/article/details/100660560...

2020-08-12 15:54:42 190

原创 JDBC学习笔记 day01 JDBC概述 & 获取数据库连接

第1章:JDBC概述1.1 数据的持久化持久化(persistence):把数据保存到可掉电式存储设备中以供之后使用。大多数情况下,特别是企业级应用,数据持久化意味着将内存中的数据保存到硬盘上加以”固化”,而持久化的实现过程大多通过各种关系数据库来完成。持久化的主要应用是将内存中的数据存储在关系型数据库中,当然也可以存储在磁盘文件、XML数据文件中。1.2 Java中的数据存储技术在Java中,数据库存取技术可分为如下几类:JDBC直接访问数据库JDO (Java D

2020-08-11 16:05:42 155

原创 数据结构 单链表的反转

数据结构 单链表的反转单链表简介单链表的反转(Java实现)定义节点与链表示意图节点类链表实现步骤思路:先定义一个节点 reverseHead = new HeroNode();从头到尾遍历原来的链表,每遍历一个节点,就将其取出,并放在新的链表reverseHead 的最前端.原来的链表的head.next = reverseHead.next关键部位代码 //单链表的反转方式二 public static void reverseList1(HeroN

2020-08-11 12:15:31 292

原创 Java数据结构与算法 day02 链表与栈

第三章 链表链表(Linked List)简介链表是有序的列表,但是它在内存中是存储如下小结:1)链表是以节点的方式来存储,是链式存储2)每个节点包含 data 域, next 域:指向下一个节点.3)如图:发现链表的各个节点不一定是连续存储.4)链表分带头节点的链表和没有头节点的链表,根据实际的需求来确定单链表(带头结点) 逻辑结构示意图如下单链表的应用实例使用带head头的单向链表实现 –水浒英雄排行榜管理1)完成对英雄人物的增删改查操作, 注: 删除和修改,查找可以考

2020-08-11 12:14:50 277

原创 Java数据结构和算法 day01 稀疏数组与队列

文章目录数据结构和算法 --内容介绍数据结构和算法内容介绍几个经典的算法面试题数据结构和算法的重要性数据结构和算法的介绍数据结构和算法的关系✔ 实际编程中遇到的问题数据结构和算法 --内容介绍数据结构和算法内容介绍几个经典的算法面试题1)字符串匹配问题::有一个字符串 str1= ““硅硅谷 尚硅谷你尚硅 尚硅谷你尚硅谷你尚硅你好””,和一个子串 str2=“尚硅谷你尚硅你”2)现在要判断 str1 是否含有 str2, 如果存在,就返回第一次出现的位置, 如果没有,则返回-13)要求用最快

2020-08-07 16:02:46 172

原创 JavaSE:第3章 数组

文章目录数组3.1 数组的概述✔ 数组的常见概念✔ 数组的分类:3.2 一维数组的使用✔ 声明✔ 初始化???? 动态初始化:???? 静态初始化:✔ 数组元素的引用✔ 数组元素的默认初始化值✔ 创建基本数据类型数组 (1)✔ 创建基本数据类型数组 (2)✔ 创建基本数据类型数组 (3)✔ 内存的简化结构✔ 一维数组的内存解析✔ 一维数组的使用:例题3.3 多维数组的使用✔ (动态初始化)✔ (静态初始化)✔ 初始化使用✔ 二维数组的内存解析???? 二维数组练习:杨辉三角???? 二维数

2020-08-07 11:40:24 283

原创 JavaSE:第2章 Java基本语法(下):程序流程控制

文章目录Java基本语法Java基本语法(下):程序流程控制2.5 程序流程控制✔ 2-5-1 顺序结构✔ 分支结构???? 2-5-2 分支语句1:if-else结构???? 分支结构:if-else使用说明???? 分支结构:Scanner???? 2-5-3 分支语句2:switch-case结构???? switch语句应用举例???? switch语句有关规则???? switch和if语句的对比✔ 循环结构???? 2-5-4 循环结构1:for循环???? 语法格式???? 执行过程:????

2020-08-07 10:45:05 208

原创 JavaSE:第2章 Java基本语法(上):变量与运算符

文章目录Java基本语法Java基本语法(上):变量与运算符2.1 关键字和保留字✔ 关键字(keyword)的定义和特点✔ 保留字(reserved word)2.2 标识符✔ 标识符概念:✔ 定义合法标识符规则:✔ Java中的名称命名规范:2.3 变 量✔ 变量的概念:✔ 变量的作用:✔ 使用变量注意:✔ 声明变量✔ 变量的赋值✔ 声明和赋值变量✔ 变量的分类-按数据类型???? 整数类型:byte、short、int、long???? 浮点类型:float、double???? 字符类型:char?

2020-08-07 09:43:30 557

原创 2020最新版Java学习路线图

2020最新版Java学习路线图文章目录2020最新版Java学习路线图一、Java基础阶段二、JavaWEB三、JavaEE必备四、JavaEE高级以此学习路线为指路标,步入Java摔门路✌✌一、Java基础阶段java基础新版视频教程:BV1Kb411W75NMySQL核心技术:BV1xW411u7axOracle、SQL、PLSQL视频教程:BV14W411u7wTJDBC视频教程:BV1eJ411c7rfJUC视频教程:BV14W411u7gBNIO视频教程:BV14W411

2020-08-06 10:57:53 401

原创 JavaSE:第1章 Java语言概述

##命令行编译java文件步骤:将Java代码编写到扩展名为.java的文件中通过javac命令对java文件进行编译通过java命令对生成的class文件进行运行javac编译java.exe运行.java文件.class 字节码文件结果###案例:在D:\study\JavaSE Code\day01 文件夹下创建Hello.java文件编写Hello.java内容:...

2020-04-16 01:56:45 484

原创 前后端分离优雅的返回Json数据

前后端分离优雅的返回Json数据统一返回数据格式背景测试环境springboot2.2.4需要依赖(测试用,与格式规范无关)实现步骤一:创建一个存放公共返回码的枚举类型新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可...

2020-03-17 14:54:01 2427 5

原创 (IDEA)运行JSP文件每次虚拟路径都会改变问题

1.即在Tomcat Servel中每次都会多出一个jsp文件,导致原本修改的Deployment虚拟路径都会被改屌,如下图:2.如图,原本Tomcat 8.5.43的虚拟路径是/JavaWebTest 但当再次编译自己想编译的程序时就会产生新的,如下图:3.这种情况导致404错误4.产生这种情况的原因是,编译的时候如果在如上图想要编译的文件中,即index.jsp直接点击右键Run就...

2019-08-08 22:16:32 1109 1

原创 JDBC连接数据库获取连接出错

conn = DriverManager.getConnection(“jdbc:mysql://localhost:3306/myemployees?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT%2B8”, “root”, “root”);如上,在url的库名后面加上us...

2019-08-07 14:06:03 587

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除