- 博客(51)
- 资源 (6)
- 收藏
- 关注
原创 进销存仓库管理系统
在Java中,可以使用各种框架和技术进行后端开发。例如,管理员可以访问和管理所有功能,而销售员和采购员可能只能访问特定的模块和功能。同时,我们还需要定义表之间的关联关系和约束,以确保数据的完整性和一致性。前端开发可以使用Java的Web开发框架,如Spring MVC,或者其他流行的前端框架,如React、Angular或Vue.js。例如,系统可能需要实现库存管理、销售订单管理、采购订单管理、报表生成等功能。同时,我们还需要确定用户角色,如管理员、销售员、采购员等,以及他们在系统中的权限和操作限制。
2023-06-15 10:30:03
324
转载 MapStruct的使用场景
1.MapStruct是用来做什么的?现在有这么个场景,从数据库查询出来了一个user对象(包含id,用户名,密码,手机号,邮箱,角色这些字段)和一个对应的角色对象role(包含id,角色名,角色描述这些字段),现在在controller需要用到user对象的id,用户名,和角色对象的角色名三个属性。一种方式是直接把两个对象传递到controller层,但是这样会多出很多没用的属性。更通用的方式是需要用到的属性封装成一个类(DTO),通过传输这个类的实例来完成数据传输。User.java@AllAr
2022-05-05 09:54:15
247
1
原创 mysql修改编码为utf8的问题
mysql修改编码为utf8的问题众所周知,mysql刚刚安装的系统编码是latin,这会导致我们存储中文名称的时候出现乱码现象。我们一般都会将其编码修改为utf-8将mysql的系统编码修改为utf-8,需要修改my.ini文件,一般我们会通过如下的方式进行相对应的修改。在[mysqld]标签下添加:character-set-server=utf8增加一个[client]标签,并且在[client]标签下添加:default-character-set=utf8可这个时候我出现保存之后
2022-02-15 15:37:38
944
转载 explain分析sql语句查询优化
索引类似大学图书馆建书目索引,可以提高数据检索的效率,降低数据库的IO成本。MySQL在300万条记录左右性能开始逐渐下降,虽然官方文档说500~800w记录,所以大数据量建立索引是非常有必要的。MySQL提供了Explain,用于显示SQL执行的详细信息,可以进行索引的优化。一、导致SQL执行慢的原因1.硬件问题。如网络速度慢,内存不足,I/O吞吐量小,磁盘空间满了等。2.没有索引或者索引失效。(一般在互联网公司,DBA会在半夜把表锁了,重新建立一遍索引,因为当你删除某个数据的时候,索引的树结构就不
2021-12-24 11:27:16
347
原创 jpa学习(一)通过jpa创建数据库表
jpa创建数据库表一对多关系1、创建实体类user以及department,一个department里面有多个user,代码如下package com.example.springbootjpatest.entity;import com.fasterxml.jackson.annotation.JsonIgnoreProperties;import lombok.Data;import lombok.ToString;import lombok.Value;import javax.m
2021-08-06 15:45:45
2930
原创 #全文搜索引擎 Elasticsearch 入门教程
全文搜索引擎 Elasticsearch 入门教程全文搜索属于最常见的需求,开源的 Elasticsearch (以下简称 Elastic)是目前全文搜索引擎的首选。它可以快速地储存、搜索和分析海量数据。维基百科、Stack Overflow、Github 都采用它。Elastic 的底层是开源库 Lucene。但是,你没法直接用 Lucene,必须自己写代码去调用它的接口。Elastic 是 Lucene 的封装,提供了 REST API 的操作接口,开箱即用。本文从零开始,讲解如何使用 Ela
2021-05-28 10:01:10
119
原创 Docker安装ELK并整合Springboot(一)
Docker安装ELK并整合Springboot一、docker使用yum安装yum -y install docker启动dockersystemctl start docker二、elasticsearch拉取镜像,这里使用6.6.1版本,也可以使用其他版本,但elk版本最好相差不要太大docker pull docker.elastic.co/elasticsearch/elasticsearch:6.6.1启动es镜像docker run -d --name es -p 9
2021-05-27 17:38:17
350
原创 关于poi中cell.setCellType(CellType.STRING)过期问题
关于poi中cell.setCellType(CellType.STRING)过期问题poi中Cell的方法setCellType源码显示如下: /** @deprecated */ @Deprecated @Removal( version = "5.0" ) void setCellType(CellType var1);此时,如果不设置cell.setCellType(CellType.STRING),执行cell.getStringCel
2021-05-13 18:01:15
10510
5
原创 Mock测试
Mock测试定义对于单元测试,对于一些不容易构造获取的对象,或者对于尚未开发的模块,创建一个mock对象模拟对象的行为何时使用mock测试1、被依赖的对象构造复杂class A 依赖 class Bclass B 依赖 class C和class Dclass C 依赖 ...class D 依赖 ... 比如我们想对A进行测试,而此时需要构造大量的class B、C、D等依赖对象,他们的构造过程复杂,此时可以利用mock构造虚拟的B、C、D对象对我们需要的A进行相关的测试
2021-04-28 17:08:39
879
转载 sql语句中on跟where执行区别
sql语句中on跟where执行区别前天写SQL时本想通过 A left join B on and 后面的条件来使查出的两条记录变成一条,奈何发现还是有两条。后来发现 join on and 不会过滤结果记录条数,只会根据and后的条件是否显示 B表的记录,A表的记录一定会显示。不管and 后面的是A.id=1还是B.id=1,都显示出A表中所有的记录,并关联显示B中对应A表中id为1的记录或者B表中id为1的记录。运行sql :select * from student s left joi
2021-04-15 09:44:50
251
原创 zookeeper学习(一)
Zookeeper运用场景1、利用 ZooKeeper 可以非常方便构建一系列分布式应用中都会涉及到的核心功能。数据发布/订阅负载均衡命名服务分布式协调/通知集群管理Master 选举分布式锁分布式队列多个开源项目中都应用到了 ZooKeeper,例如 HBase, Spark, Flink, Storm, Kafka, Dubbo 等等。1.1 数据发布/订阅数据发布/订阅的一个常见的场景是配置中心,发布者把数据发布到 ZooKeeper 的一个或一系列的节点上,供订阅者进行
2021-02-01 16:00:40
280
原创 synchronized的底层原理实现以及优化的轻量级锁以及偏向锁
synchronized的底层原理实现以及优化这里是对前面并发学习的一个补充首先,先来普及下对象头信息,如下:其中Mark Word的结构如下:1、Monitor锁这个是最原始的加锁方式,也称为重量级锁刚开始Monitor中的owner为null当Thread-2执行到同步代码块时,就会将Owner置为Thread-2另一个线程过来想占用锁,检测到这个锁对象的Monitor的Owner被占用,到Monitor中的EntryList中阻塞等待。等Thread-2线程完成操作释放
2020-07-29 00:14:05
359
原创 java操作redis以及springboot对redis的操作
java操作redis1、导入依赖<!--引入jedis连接依赖--><dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.9.0</version></dependency>2、创建jedis对象并运用操作redis public static void
2020-07-19 20:40:48
193
原创 Redis学习(一)
Redis的学习(一)简介redis就是我们常说的Nosql数据库的一种,redis中的数据是存储到内存中的,所以读写速度非常快,因此被应用与缓存方面。redis支持事务、持久化、LUA脚本、LRU驱动事件、多种集群方案为什么要用redis作为缓存高性能redis将数据存储到内存中,相较于从磁盘读取(磁盘-内存-读取出来),速度快得多。如果数据库中的数据发送改变之后,同步缓存中的数据即可高并发在高请求的情况下,直接访问数据库必将对数据库产生高额的负载。我们可以考虑将热点数据转移到缓存
2020-07-19 18:09:42
758
原创 mysql根据某个重复的字段,只取出list中的一条
mysql根据某个重复的字段,只取出list中的一条场景说明:在一张数据库表中存储了题目的详细信息,另一张表是题目所对应的标签,是一个一对多的场景。现在的需求是只取出一个对象即可。即只需取出一个标签内容和题目所有内容来封装对象即可。举个例子:有一个表a如下:idname1张三2李四有另一个表bidaidimg11这是第一张图片21这是第二张图片32这是第三张图片42这是第四张图片此时,你使用查询语
2020-06-05 21:34:22
3373
原创 jvm学习(二)
JVM学习(二)类的加载过程系统加载Class类型的文件主要分为三步:加载————>连接---------->初始化。连接又可以分为三步:验证—>准备----->解析1、加载通过全类名获取定义此类的二进制字节流将字节流所代表的静态存储结构转换为方法区内的运行时数据结构在内存中生成一个代表改类的Class对象,作为方法区这些数据的访问入口加载过程和来连...
2020-05-06 18:28:55
178
原创 JVM学习(一)
jvm学习(一)运行时数据区1、由并发中所说的,java虚拟机把它管理的内存划分若干个不同的数据区域。JDK1.8之前:线程共享:堆、方法区线程私有:虚拟机栈、本地方法栈、程序计数器JDK1.8之后:将方法区去掉,换成直接内存中的元空间线程私有的数据区都是随着线程的创建而创建,随着线程的结束而死亡2、虚拟机栈:由一个个栈帧组成,一个栈帧包含局部变量表、操作数栈...
2020-05-05 20:26:40
204
原创 并发学习(二)
并发学习(二)并发相关的容器1、ConcurrentHashMap:JDK1.7底层采用Segment数组和HashEntry数组结构组成。Segment实现ReentrantLock,是一种可重入锁、扮演锁的角色。HashEntry则是存储键值对数据。每一个Segment守护着一个HashEntry数组里的每一个元素。要对HashEntry数组进行修改,首先需要获取到Segment的锁.JD...
2020-04-30 22:31:17
257
1
原创 并发学习(一)
并发学习前言知识进程概念:进程是程序的一次执行过程,是系统程序运行的基本单位,也是资源分配的最小单位。进程是动态的,系统允许一个程序即是一个进程从创建到销毁的过程。线程概念:线程与进程相似,但线程是比进程更小的执行单位。一个进程在执行过程中可以产生很多个线程。同类的多个线程是共享进程中的堆区以及方法区,但每个线程都有自己的程序计数器以及虚拟机栈和本地方法区栈。线程开销比进程的开销小得多,因此...
2020-04-23 01:53:02
647
原创 双列集合
双列集合的学习双列集合定义了映射java.util.Map,是以键值对的方式来存储元素的。接口有四种常用的实现类,分别为HashMap、Hashtable、LinkedHashMap和TreeMapHashMap:它根据键的hashCode值存储数据,大多数情况下可以直接定位到它的值,因而具有很快的访问速度,但它的遍历顺序是不确定的。HashMap最多允许一条记录的键位null,允许多条记录...
2020-04-18 14:45:11
409
原创 单列集合的学习
单列集合1、list、set、map的区别 答:list接口存储一组不唯一(可以有多个元素引用相同的对象),有序的对象。set存储唯一的元素,且是无序的。map是使用键值对来存储的,key值不能重复2、ArrayList与LinkedList区别 相同:都是线程不安全的 不同:ArrayList的底层是基于Object[]数组,而LinkList底层是基于双...
2020-04-16 21:41:32
143
原创 mysql触发器的使用案例
mysql触发器的使用案例先来说下我的案例:青协活动通过excel上传活动信息,基本内容如下:而我需要通过这张表的上传后自动跟新另外三张表的信息,一张是学生的总志愿时表跟新(某个学生的总志愿时再原来的基础上增多或者插入新的学生志愿时信息),一张是活动表的跟新,另一张是学院总志愿时的统计信息跟新(相同院的总志愿时)此时,我所采用的是触发器跟新,当批量插入数据时,顺带触发三张表的跟新插入操...
2020-02-06 02:46:11
307
1
原创 mybatis的多表查询
mybatis的多表查询今天项目涉及到多表查询,原本可以根据mybayis的逆向工程的每一个mapper查询数据库封装对象,但为了效率能够提高,使用mybatis的多表查询直接返回封装对象具体如下:1、首先,先在mybatis的xml配置文件中配置你需要返回的分装对象,大体如下:返回的封装类UserVOpackage com.zhongkai.volunteer.VO;impor...
2020-02-06 02:32:30
336
原创 springboot与jpa的结合
之前一直用mybatis处理dao层,之后接触了jpa后,发现jpa自动帮你封装了常用了增删改查操作,用起来比mybatis方便得多,在这里记录下这里所用springboot是2.1.7版本一、QuickStart1、导入jpa的依赖以及数据库驱动的依赖 <!--加入对jpa的依赖--> <dependency> &l...
2019-11-09 18:32:14
337
原创 在centos7下安装rabbitmq以及mysql
因为之前的知识点所涉及到中间件的使用,这些中间件也是放在服务器当中的。博主最近也在一直搞中间件的安装,因为直接通过yum安装一直出错,搞了很久很久,今天才发现用docker进行安装是如此简单,当然,docker我也是刚刚接触,也不是很了解,只是发现按照教程安装相应的东西相对简单,所以在这里记录一下如何在centos7安装mysql以及rabbitmq一、安装docker一般centos7里...
2019-09-22 16:22:52
212
原创 springboot2.1.7整合redis(二)
一、springboot整合redis,基于springboot的缓存技术先在这里说明所用的版本号为2.1.7,一定得注意版本的问题,因为springboot1.0与springboot‘2.0整合redis上有很多不同,这里所用的是2.0以上的版本,至于springboot2.0与springboot1.0的redis配置,参照springboot1.5.x版本于springboot2.x版...
2019-09-17 21:35:34
812
原创 springboot的缓存机制(一)
一、spring的缓存机制Spring从3.1开始定义了org.springframework.cache.Cache和org.springframework.cache.CacheManager接口来统一不同的缓存技术;并支持使用JCache(JSR-107)注解简化我们开发;Cache接口为缓存的组件规范定义,包含缓存的各种操作集合;Cache接口下Spring提供了各种xxxCache...
2019-09-14 21:41:35
404
原创 关于springSecurity的权限限制的使用,基于springboot
1、人们使用Spring Secruity的原因有很多,单大部分都发现了javaEE的Servlet规范或EJB规范中的安全功能缺乏典型企业应用场景所需的深度。提到这些规范,重要的是要认识到他们在WAR或EAR级别无法移植。因此如果你更换服务器环境,这里有典型的大量工作去重新配置你的应用程序员安全到新的目标环境。使用Spring Security 解决了这些问题,也为你提供许多其他有用的,可定制的...
2019-09-07 16:51:18
678
1
原创 无法找到PageInfo这个类
今天在运用分页助手时,遇到无法找到PageInfo这个类,可是在项目中也导入了PageInfo的依赖,可就是一直显示无法找到PageInfo这个类,PageHelper又可以找到,令我百思不得其解。具体情况如下:相关类:依赖关系:后面,我去查找导入jar包的相关类,发现3.2.1这个版本的jar包中没有PageInfo这个类,只有这几个类因此我怀疑是jar包的版本问题,换了另外一...
2019-07-22 20:34:55
1355
1
转载 java实现分页技术
虽然现在有很多好用的框架,对分页进行支持,很简单的就把分页的效果做出来,但是如果自己手写是一个怎样的流程的?今天就来说说它,手动实现分页效果。一、分页的思路首先我们得知道写分页代码时的思路,保持思路清晰,有步骤的进行,才能行云如水。先来看看分页的效果这就是一个分页导航,其中能得到的数据有totalRecord:总共员工数,数据库中总的记录数,这里有55条totalPage:总页数,1...
2019-05-20 22:32:33
1207
转载 java中getRealPath("/")和getContextPath()的区别
三.总结。1.getRealPath("/")方法返回的是项目在服务器的绝对路径,而getRealPath(“WEB-INF/myfile”)返回的是包含一个给定虚拟路径的绝对路径,其中/myfile是虚拟的。2.getContextPath()方法返回的是项目相对路径,并不会返回其绝对的路径,就是说并不知道项目在哪个位置。...
2019-05-12 21:10:32
553
转载 git将本地文件上传到github
篇之前说下题外话,之前写过一篇博客,IOS-一步一步教你自定义评分星级条RatingBar,群里有人想要源码,我上传到github上了,有需要的可以去看一下,github地址自定义评分星级条言归正传,最近有人在群里问怎么将新创建的本地代码上传到github上,这里简单的记录一下,我喜欢使用命令行,这里全用命令行来实现,不了解git命令的可以去了解下。第一步:建立git仓库cd到你的本地项目根...
2019-05-04 22:28:28
106
原创 QueryRunner的使用
了解QueryRunner之前要先了解为什么要使用它,它从何处来,为什么而存在。其实这个是dbutils中的一个方法什么是dbutils它的出现就是封装了jdbc的代码,开发dao层代码的简单框架框架的作用就是为你完成一些工作dbutils是由apache公司提供的为什么使用dbutils在它出现之前在dao层中使用的技术是jdbc(1)数据库链接对象、sql语句操作对象,封装结果...
2019-05-04 21:18:39
508
转载 web项目中路径的使用
理解java Web项目中的路径问题本文以项目部署在tomcat服务器为例,其他相信也是一样的。先说明请求页面的写法,在web中,页面路径主要写的有以下几种1、请求重定向2、浏览器的请求被服务器请求到新页面(我称为“转发”)3、超链接4、form表单提交的action为了演示路径写法,首先先建一个项目(项目名WebPath),并建立一个servlet(PathServlet)目录结...
2019-04-18 21:27:10
321
原创 js中的bom以及dom
一、BOM1、含义:浏览器对象模型2、对象:- navigator对象:获取客户机的信息- 属性:appName:获取浏览器名称-screen对象:获取屏幕信息-属性:width,height-location对象:请求url属性:href(获取请求的地址:location.href;设置url: ...
2019-04-13 17:31:27
91
原创 No enclosing instance of type XmlTest is accessible. Must qualify the alloca
今天在解析xml文件的时候,创建处理器对象的时候(处理器对象继承了DefaultHandler)出现了错误,如图:我很好奇,明明下面有在创建这个类,为什么创建不出呢,看下错误,提示为No enclosing instance of type XmlTest is accessible. Must qualify the alloca,通过百度,终于找到解决办法,就是在要创建对象的那个类中加上s...
2019-03-16 16:18:30
2107
基于bootstrap搭建的信息管理后台系统模板adminHtmlTemplate-master.rar
2019-11-01
springboot项目——基于springSecurity实现的前后端分离的企业级人事管理系统
2019-10-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人