自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 jpa重写saveAll和deleteAll

jpa重写saveAll和deleteAll。

2022-09-14 17:57:47 187

原创 通过map获取json指定字段

最后通过map.getKey()即可得到

2022-08-12 15:04:24 762

原创 Java读取文件

读取Excel文件public class POIUtils { public static SXSSFWorkbook downloadExcelTemplate(String templateName) { SXSSFWorkbook wb = null; //默认从classpath中找文件(文件放在resources目录下),templateName不能带“/”,否则会抛空指针 InputStream resourceAsStream =

2021-12-20 18:11:23 288

原创 读取加密字符串并解密

private final static Map<Character, Character> cellMap = new HashMap() {{ this.put('!', '1'); this.put('@', '2'); this.put('#', '3'); this.put('$', '4'); this.put('%', '5'); this.put('^', '6');

2021-12-20 17:50:42 186

原创 使用ConcurrentHashMap写入缓存

import java.util.Map;public class Constant { public static Map<String, Object> SOCIAL_INDEX_MAP; private Constant() { }}@Component@Slf4jpublic class InitializationConfig { @PostConstruct public void init() { log.

2021-11-04 10:30:16 138

原创 Mysql传参list类型并且为空判断

前端传参source类型有空和weibo.com,qq.com两种类型,当source为空时默认查询所有的平台,有值时,查询带有值的平台;后台接收参数:@GetMapping("analysiSearch") public Object detailAnalysiSearch( @RequestParam(value = "id")String id, @RequestParam(value = "source",required = false)List<String> sourc

2021-10-28 10:23:20 855

原创 layui批量删除

首先前端页面前端代码:function doDel(obj) { layer.confirm('确定要删除选中数据吗?', { skin: 'layui-layer-admin', shade: .1 }, function (i) { layer.close(i); var loadIndex = layer.load(2);

2021-06-19 00:23:08 711

转载 layui点击复制

首先需要引用js文件,<script th:src="|${portalDomain}/commons/common/js/clipboard.min.js|"></script>一定不要忘记,否则没有效果。然后在layui表格中加入一下属性{field: 'coverUrl', title: '封面地址', align: 'center',sort:true,width:110,templet:function (d) { retu

2021-06-16 16:45:07 2821

原创 jQuery动态生成select的option数据

首先我在前端先写上一个select选项框<select id="selector" name="companyIdStr"> <option value=""></option></select>然后通过ajax传入数据$.ajax({ type:"POST", url:BASE_PATH + '/mdmoocRemindAdmin/selectDetail', success:function(d){ var data = JSO

2021-06-16 16:34:32 627

原创 删除cookie之前后端

cookie的存储与删除首先在登录之后将用户的cookie存起来public static void addCookie(HttpServletResponse response, String name, String value, int maxTime){ Cookie cookie; try { if(value != null){ cookie = new Cookie(name, URLEncoder.encode(value,"utf-8")); coo

2021-06-08 23:05:59 1221

原创 利用window.prompt方法,实现密码正确进去页面的功能

window.prompt显示一个对话框,对话框中包含一条文字信息,用来提示用户输入文字。result = window.prompt(text, value);var sign = prompt("你是什么星座的?");if (sign == "天蝎座"){ alert("哇! 我也是天蝎座的耶!");}// 有多种使用prompt方法的方式var sign = window.prompt(); // 打开空的提示窗口var sign = prompt(); /

2021-04-12 23:01:46 1154

原创 左联查询导出问题和评论

先看数据库设计,首先是问题表 en_con_edu_problem然后是评论表 en_con_edu_comment我们想将问题和评论导出在同一张Excel表里面。在问题实体类里面添加一些属性/** * 评论内容 */ @TableField(exist = false) private String commentContent; /** * 评论者手机号 */ @TableField(exist = ..

2021-03-18 10:30:21 84

原创 利用layui自带导出功能

在前端写一个导出按钮<button type="button" class="layui-btn" style="margin-left: 30%" id="exportBtn">导出数据</button>在js里加上事件,其中exportList是查出所有的数据<script> var BASE_PATH = "[[${mainDomain}]]"; layui.config({ base: '/zcmdmooc/comm

2021-03-15 10:33:43 2660

原创 拦截登录

先编写拦截的内容package com.mdmooc.utils.interceptor;import com.mdmooc.utils.ConfigUtil;import com.mdmooc.utils.cookie.CookiesUtils;import com.mdmooc.utils.cookie.UserCookiesUtils;import net.sf.json.JSONObject;import org.springframework.web.servlet.ModelA

2021-03-15 10:27:58 113

原创 SpringMvc + layui实现分页操作

后台管理模板采用的是layui`在这里插入代码片`这里是后台index页面,采用的layui模板,其中登录日志是我们要分页的数据<!DOCTYPE html><html><head> <meta charset="utf-8"> <title>后台管理系统</title> <meta name="renderer" content="webkit"> <meta http-equiv="X-U

2021-03-03 00:42:57 224

原创 设置用户权限只能查看自己的文章

用户登录后用session将用户的信息存起来;@Autowired private HttpSession session;session.setAttribute("loginuser",user);在NewsController文章添加方法中取出用户id,添加文章的时候自带用户id@PostMapping("add") @ResponseBody public AjaxResult add(News news){ //添加的时候带上用户id

2020-11-26 19:32:34 371

原创 稀疏数组(最详解)

概念当一个数组中大部分元素为0,或者为同一值的数组时,可以使用稀疏数组来保存该数组。 稀疏数组的处理方式是:记录数组一共有几行几列,有多少个不同值;把具有不同值的元素和行列及值记录在一个小规模的数组中,从而缩小程序的规模 如下图:左边是原始数组,右边是稀疏数组代码实现public class SparseArray { public static void main(String[] args) { //创建一个二维数组 11*11 0:没有棋子, 1:黑..

2020-10-04 12:00:09 7190 7

原创 什么是数据库连接池

首先先解释一下什么是池化设计思想 说到池我们会想到java线程池、jdbc连接池、redis连接池等。这些池都会初始化资源,可以减少资源的消耗,如创建线程的开销,获取远程连接的开销等。池化设计还包括以下特征:池子的初始值、池子的活跃值、池子的最大值等。 和学校打水类似: 单线程的方式:排队一个一个取水,为了不浪费水,每个人接完水后,关掉水龙头,下一个人接的时候再打开水龙头,开水龙和关水龙头可以看成创建和销毁一个线程用于一个人的取水任务。这种方式适合人少的场景。 ...

2020-09-19 22:46:47 453

原创 MyISAM和InnoDB区别

MySQL 当前默认的存储引擎是InnoDB,并且在5.7版本所有的存储引擎中只有 InnoDB 是事务性存储引擎,也就是说只有 InnoDB 支持事务。在5.5之前,MyISAM是MySQL的默认数据库引擎。因为它性能好,还包含全文索引、压缩、空间函数等,但不支持事务和行级锁,而且最大的缺陷就是崩溃后无法安全恢复。因此引入了InnoDB(事务性数据库引擎),之后默认的存储引擎都是InnoDB。大多数时候我们使用的都是 InnoDB 存储引擎,但是如果读密集的时候使用 MyISAM 也可以区别:

2020-09-19 21:12:13 134

原创 Spring事物的隔离级别(通俗易懂)

Spring事务隔离级别比数据库事务隔离级别多一个default,由低到高为:DEFAULT (默认)数据库默认的是可重复读READ_UNCOMMITTED (读未提交):允许读取尚未提交的数据变更,可能会导致脏读、幻读或不可重复读打开Mysql命令行,可以查看到默认的事务级别为可重复读然后打开客户端A,将当前事务模式改为读未提交查询表student,可以看到初始数据在A提交事务之前,我们现在打开客户端B,对student表进行更新修改虽然B没有提交事...

2020-09-19 17:30:41 1440

原创 为什么要使用ConcurrentHashMap

(1)线程不安全的HashMap 在多线程环境下,使用HashMap进行put操作会引起死循环,导致CPU利用率接近100%,所 以在并发情况下不能使用HashMap。HashMap在并发执行put操作时会引起死循环,是因为多线程会导致HashMap的Entry链表 形成环形数据结构,一旦形成环形数据结构,Entry的next节点永远不为空,就会产生死循环获 取Entrypublic class ConcurrentHashMap { public static void main(S

2020-09-13 22:49:09 287

原创 Mybatis Plus自带的queryWrapper实现时间倒序

queryWrapper.select().orderByDesc("create_time");

2020-07-30 17:01:23 26822

原创 由MySQL乱码到卸载重装的艰难之路

今天一天被mysql搞炸了,感觉就像找bug,这个修好了那个又出毛病了。 像往常一样正常朝Navicat导入数据库文件,结果在Navicat里面直接运行sql文件不能正常导入,之后用命令行导入(use 数据库名、source 文件的地址),发现虽然导入成功了,但是乱码,于是查看Navicat数据库属性为utf-8格式的,要导入的文件也是正常的utf-8格式,但是不知道为啥...

2020-03-14 01:51:17 44

原创 快速进行数据抽取

今天做数据抽取的时候一直在用select,但是后来发现有的不能抽取出来,后来发现xpath更快速首先给pom.xml加入依赖<dependency> <groupId>cn.wanghaomiao</groupId> <artifactId>JsoupXpath</artifactId> <vers...

2020-03-07 01:28:15 257

原创 mybatis注册账号并且相同账号只能注册一个

今天做这个注册账号的时候,发现做完后可以注册相同账号,但是登录的话却不能正常登录这个的原理就是注册账号之前检查一下数据库是否有相同的账号,如果有则注册失败,没有则可以注册(没有考虑多人同时注册相同账号,注册前数据库没有相同账号)public class StudentServiceImpl extends ServiceImpl<StudentMapper, Student>...

2020-03-05 23:45:01 457

原创 Mybatis登录获取用户名并显示在页面

首先简单说说登录回显用户名的问题,这几天做登录的时候一直不会显示登录后的用户名这个是前端index.html的页面,主要是来判断用户是否已经登录,若登陆则显示用户的名,否则显示原登录<a class="ml-5" style="text-decoration:none" th:href="@{/student/studentlogin}"><...

2020-03-05 23:38:46 1256

原创 对HashMap简单的理解

一些简单的概念:散列(hash):采用某用方式使其均匀的分散下去,但是没有规律。插入操作为O(1).用头插法散列表(hash table,哈希表):按散列存储方式构造的存储结构散列碰撞:不同的数据散列到一个里面。34%6 22%6 求余都是4,因此34 22到同一里面总量和里面是一个线性关系ReHash过程:散列的数组不能超过某个值,假如超过,需要建立2倍数组重新散列,原先的取...

2020-01-31 23:20:36 56

原创 Eclipse黑色背景

首先找到Windows-preferences,找到theme主题选择深色并应用即可

2020-01-20 14:38:08 89

原创 三种简单的选择、冒泡和插入排序

选择排序选择排序就是将第一个数和后面的数依次作比较,如果后面的数比它小那就交换顺序,直到最小的数排到第一位;然后第二位再和后面的数依次比较,最后第二小的数会到第二位,依次循环,直到数组从小到大排列完毕。第一次比较的时候,我们发现循环的长度为数组的长度,第二次第二个数比较的时候,第一位数就不用比较,因此循环数组长度少一,依照此规律,写一个双重循环即可写出选择排序需要注意的是:有时候第i(...

2020-01-19 23:34:30 50

原创 多线程实现售票系统

首先简单介绍一下多线程以及锁一个线程是main方法进来到最后main方法执行完毕出去。 两个线程在方法内部都是拷贝的,以及在run方法内部生成的变量 每个线程对共同变量操作时,各做拷贝一份 堆里面的东西是公共的,栈里面的东西是拷贝的,加锁就对共同的资源加锁,最好不要对run方法加锁,锁不住比如: public synchronized void run() ...

2020-01-16 22:03:05 988

原创 树的广度优先插入 重点:树的广度操作

利用队列来插入public class TreeQueue<T> { private T[] data = (T[]) new Object[20]; private int start = 0; private int end = 0; public void push(T newint) { if( end - start == data.length ) {...

2020-01-13 20:32:47 49

原创 性能最优的循环队列

package Demo;//性能最优的循环队列public class Queue { private int[] data = new int[20]; private int start = 0; private int end = 0; public void push(int newint) { if( end - start == data.length) {...

2020-01-09 21:35:56 95

原创 先进后出之最优栈

进出栈时标记索引package Demo;public class Stack { private int [] data = new int[20]; private int index = -1; public void push(int newint) { if(index+1 == data.length) { int [] datanew = new int...

2020-01-09 17:16:33 44

空空如也

空空如也

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

TA关注的人

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