- 博客(27)
- 问答 (1)
- 收藏
- 关注
原创 快速理解java的浅拷贝和深拷贝
BeanUtils.copyProperties()方法为浅拷贝方法:当拷贝源对象当中有User对象属性,那么拷贝之后目标对象的User的指针与拷贝源User对象指针指向同一处。这里深拷贝代码采用了JSONObject.toJSONString()和JSONObject.parseObject()方法实现,当修改其中一个对象属性的字段另一个字段不会随着改变。
2023-02-08 14:09:47 1028
原创 nodejs 的坑
在安装nodejs的时候 官网给出的是最新的版本16,导致我 npm install 时候失败报错了说是什么npm ERR! command failed百度了好久发现好像是版本的问题,最新版本的话可能需要执行一些其他的命令详情可见另一个博主:https://blog.csdn.net/qcc0716/article/details/115463828建议的话还是安装其他版本好点:https://nodejs.org/zh-cn/download/releases/我安装的是 Node.js
2022-03-18 14:01:38 113
原创 Mysql 性能优化问题,常用的一些
最左原则问题:假设 以 身高、体重、年龄 为主键图中前三条语句都是能使用到索引的而在最后一条是用不到索引的原因: 当我们在用组合索引的时候,会去一个个比较,先比较身高,然后比较体重,最后比较年龄。如果我们中间的体重没用在条件里那么 ,在判断体重 时候就无法比较,从而走向全表扫描,这是需要注意的一点...
2022-03-05 16:30:19 354 1
原创 docker 部署 zookeeper:3.4.11
docker pull zookeeper:3.4.11mkdir /opt/zookeeper/{conf,data,logs} -pvi /opt/zookeeper/conf/zoo.cfg---------------------------------clientPort=2181 dataDir=/data #数据存储dataLogDir=/datalog #日志tickTime=2000initLimit=5syncLimit=2autopurge.snapRet
2022-02-14 15:12:40 1148
原创 docker 启动 rocketmq:4.4.0
自己电脑练习时候遇到的坑org.apache.rocketmq.remoting.exception.RemotingConnectException: connect to <172.17.0.3:10909> failebrokerClusterName = DefaultClusterbrokerName = broker-abrokerId = 0deleteWhen = 04fileReservedTime = 48brokerRole = ASYNC_MASTERfl
2022-02-11 18:59:12 2194
原创 docker运行容器遇到的坑
docker 运行在我以数据卷的方式运行我的mysql的时候出现了死活都不能启动容器的情况命令:docker run --name mysql5.7.1 -e MYSQL_ROOT_PASSWORD=root -p 3306:3306 -d 3e3 -v /xim/mysql/data:/var/lib/mysql -v /xim/mysql/my.cnf:/etc/mysql/my.cnf在查看了众多文之后发现 :如果在启动 docker 的时候 在配置环境之前就启动了我们的do
2022-01-15 12:51:26 818
原创 单元测试使用Shiro简单实现用户认证 授权 MD5加盐加密,用户验证源码分析
文章目录在学习shiro之前 先来简单的了解一下什么是shiro在学习之前 先来看看本次文章需要掌握的知识: (预先了解一下大概会有什么)测试阶段用户认证实现用户 认证 执行流程源码用户授权实现MD5 加盐加密在学习shiro之前 先来简单的了解一下什么是shiroApache Shiro 是一个强大易用的 Java 安全框架,提供了认证、授权、加密和会话管理等功能,对于任何一个应用程序,Shiro 都可以提供全面的安全管理服务。Shiro能干什么?1.权限管理(自定义权限注解/加载权限)2.角
2021-11-30 20:31:22 642
原创 基于Springboot、RBAC思想使用注解方式实现权限管理功能
所涉及到的技能点:Springboot 、分页后端插件 pagehelper 、分页前端插件 twbs-pagination首先什么是RBACRBAC 是基于角色的访问控制(Role-Based Access Control ),简单的来说就是不同的人有不同的权限,什么样的人干什么样的事数据库的设计员工表:用来存储员工信息字段分析: id(员工编号,主键自增长)、 name(员工姓名)、 role_id(角色编号,关联查询角色)、super_admin(是否超级管理员)角色
2021-11-28 18:09:51 2119
原创 mysql简单单链表查询练习
查询所有员工信息。查询每个员工的编号、姓名、职位。查询所有部门信息。查询所有有员工的部门编号。查询有员工的部门和职位。查询所有员工的年薪。查询所有员工的年薪(使用别名)。查询所有员工的年薪((月薪 + 奖金) * 12) 。查询有奖金的员工信息。查询公司的老板。查询出基本工资高于 1500 的所有员工信息。查询名字叫 SCOTT 的员工所从事的工作。查询 1981 年入职的员工信息。查询年薪小于 3W 的员工。查询所有不是销售人员的员工信息。查询工资在 2000-3000 之.
2021-11-04 19:50:26 1816
原创 idea 图片上传保存
编写一个register.jsp页面<%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head> <title>文件上传</title></head><body><%-- 这里表单提交方式为post,并且enctype设置为"multipart/form-data"文件以二进制的数据传输 --%>&
2021-10-30 15:28:19 6774 1
原创 LeetCode第9题回文字
方法一:暴力解法 public boolean isPalindrome(int x) { StringBuffer str = new StringBuffer(String.valueOf(x)); if (!Character.isDigit(str.charAt(0))) return false; //定义一个左右指针 int left = 0 ; int right = str.length()-1;
2021-08-22 18:09:35 68
原创 LeetCode第8题字符串转换整数
StringBuffer str = new StringBuffer(s.trim()); if(str.length()==0) return 0;//长度为0直接返回0 /* Character.isDigit 判断是不是数字。 如果开头既不是数字,又不是 ‘-’ ‘+’ 那就是字母等,直接返回0 */ if ((!Character.isDigit(str.charAt(...
2021-08-22 17:04:18 77
原创 LeetCode第七题整数反转
方法一:暴力解法 //先将整数转换成字符串 String s = String.valueOf(x); //创建一个 StringBuffer 追加字符 StringBuffer str = new StringBuffer(); for (char c : s.toCharArray()) { if ('-'==c) continue;//如果第一个字符是 - 跳过 str.append(
2021-08-22 11:24:17 70
原创 LeetCode第6题Z字形变换
public static String convert(String s, int numRows) { /* 思路:Z字形变换 abcdef a e 这里可以先想象成:从 a 开始向下走 b d f 到了指定了 numRows行时变方向 向上走 c 在到了 起始位置在变一次方向 boo...
2021-08-22 09:05:57 152
原创 LeetCode算法题第四题,求两个正序数组的中间值
前提储备:需要知道什么是归并排序? public static double findMedianSortedArrays(int[] nums1, int[] nums2) { /* 思路: 主要重要的是 归并算法的思想,两个拆分的数组进行合并 nums1[]{1,3} nums2[]{2,4} l1:指针 l2:指针 取
2021-08-21 13:37:34 100
原创 LeetCode第三题,无重复字符串的最大长度
public static int lengthOfLongestSubstring(String s) { /** * 思路: abcabcbb * 先抽取第一个元素a 然后往右遍历,直到遇到相同的元素就停止 那么第一个元素 a不重复的最长字符串为 abc 记录一次长度,并且作比较 * 在抽取第二个元素b 然后往右遍历,直到遇到相同的元素b,那么第二个元素 b不重复最长字符串为 bca 记录一次长度,并且...
2021-08-21 12:51:28 62
原创 spring的事务传播机制简单易懂
什么是事务?就是怎么处理两个事务之间的关系假设A方法出现了异常那么 B方法要不要回滚呢?又或者B方法出现异常,A方法要不要回滚?需要该怎么做不需要又该怎么做?这类问题就可以用到spring给出的7种事务传播特性解决 1、Propagation.REQUIRED (默认事务):如果当前存在了事务,那就融入这个事务中,没有则重新创建 假设出现异常那么update() 和 delete() 方法都会执行失败,因为在同一个事务中。2、Propagation.REQUIRES_NEW:
2021-08-11 18:20:23 389
原创 JDBC批量处理操作Batch方法
使用之前,需要在连接数据库的url加入 ?rewriteBatchedStatements=true 设置支持批量处理Batch批量处理sql语句提高效率package jdbc.batch;import org.junit.jupiter.api.Test;import java.io.FileInputStream;import java.sql.Connection;import java.sql.DriverManager;import java.sql.Prepared
2021-06-03 15:58:47 4602 1
原创 org.apache.ibatis.exceptions.PersistenceException:关于xml配置文件写中文注解报错
org.apache.ibatis.exceptions.PersistenceException:Error building SqlSession.The error may exist in com/liu/dao/UserMapper.xmlCause: org.apache.ibatis.builder.BuilderException: Error parsing SQL Mapper Configuration. Cause: org.apache.ibatis.builder.Buil
2021-06-03 15:37:26 157
原创 基于druid编写数据库连接池通用的工具类
首先先建一个JdbcUtilsDruid 工具类public class JdbcUtilsDruid { private static DataSource ds; //在静态代码块执行 static { Properties properties = new Properties(); try { properties.load(new FileInputStream("src/druid.properties"));
2021-06-02 18:52:36 218
原创 javaweb实现发送邮件
在bilibili自学了Javaweb后照着做了发送邮件功能:第一步:创建一个maven项目 然后确定项目名字在pom.xml配置文件中添加依赖< javax.mailmail1.4.7javax.activationactivation1.1.1 />
2021-06-02 18:29:32 657
原创 关于MySQL 事务隔离级别 Read committed(读以提交)会出现隔离机制失效
上完了MySQL课程 的事务隔离机制后,在课后测试 Read committed(读以提交)出现的问题,很有意思的一个现象: Read committed(读以提交)会出现隔离机制失效,也可能出现脏读,不可重复读幻读的情况,而Repeatable read(可重复读)不会更加稳定。测试的步骤第一步:首先我是打开了两个cmd窗口,进入mysql并且用命令 SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED修改了其中一个事务的隔离级别为Read
2021-05-11 12:55:31 3225 1
原创 jdk环境配置没问题eclipse打不开出现Incompatible JVM错误
报错Incompatible JVMversion 1.8.0_271 of the VM is not suitable for this product.Version:11or greater is required.打开eclipse安装位置打开eclipse.ini,添加jdk路径-vmE:\javaJDK\Java\jdk-15.0.1\bin
2020-12-22 13:23:36 4939 6
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人