- 博客(27)
- 资源 (1)
- 收藏
- 关注
原创 oracle定义函数FIND_IN_SET
需求:在oracle数据库中有下方表格所示类型的一个列,每个值都是由ID拼接的字符串,用户希望能针对这个列做到数据检索,要求数据值只要包含传入值,即视为满足检索条件。笔者的第一反应就是:简单!!!二话不说立马写SQLselect t.* from TABLE_T t where instr(t.ids, '8') > 0运行,这个时候发现结果如下:上述的查询结果其实是不满足条件的,因为我传入一个’8’,按照正常情况应该只查询出第4条数据才对,但是因为’6,88’也包含了’8’
2021-03-17 12:10:52
488
转载 Mybatis常见问题
什么是 Mybatis? MyBatis 的优点 MyBatis 框架的缺点 MyBatis 框架适用场合 MyBatis 与 Hibernate 有哪些不同? #{}和${}的区别是什么? 当实体类中的属性名和表中的字段名不一样 ,怎么办 ? 模糊查询 like 语句该怎么写? Mapper 接口的工作原理是什么?Mapper 接口里的方法,参数不同时,方法能重载吗? Mybatis 是如何进行分页的?分页插件的..
2021-03-11 17:22:27
387
原创 Reids总结
Redis 五种数据类型,每种数据类型都有相关的命令,几种类型分别如下: String(字符串) List(列表) Hash(字典) Set(集合) Sorted Set(有序集合) Redis 有五种常见的数据类型,每种数据类型都有各自的使用场景,通用的字符串类型使用最为广泛,普通的 Key/Value 都是这种类型;列表类型使用的场景经常有粉丝列表,关注列表的场景;字典类型即哈希表结构,这个类型的使用场景也很广泛,在各种系统里面都会用到,可以用来存放用户
2021-03-11 17:18:45
192
原创 git常用命令之大白话说明
首先git是分布式版本管理控制系统,在他的架构中分为以下几个区域图中每一个流程代表一个开发人员git reset 命令之 --hard --mixed --soft 的区别命令:git reset --hard 版本号soft:仅仅移动当前Head指针,不会改变工作区和暂存区的内容;即回到将文件修改好并且执行add命令后mixed:是reset的默认参数,移动head指针,改变暂存...
2020-04-23 23:47:42
349
原创 response相应文件
response().setContentType("application/octet-stream");//设置流传输response().addHeader("Content-Disposition", "attachment;filename="+"pic.jpg");//设置下载的文件名称
2020-04-23 20:05:47
229
原创 获取项目的绝对路径(开发阶段,生产阶段)
**该方法可以获取项目在服务器上运行的路径,也可以回去在开发时路径**public String getPath() { String path = this.getClass().getProtectionDomain().getCodeSource().getLocation().getPath(); if (System.getProperty("o...
2020-04-23 20:01:22
223
原创 Java对象的地址值(identityHashCode(Object x)、hashCode()区别)
Object的hashCode()默认是返回内存地址的,但是hashCode()可以重写,所以hashCode()不能代表内存地址的不同System.identityHashCode(Object x)方法可以返回对象的内存地址,不管该对象的类是否重写了hashCode()方法。首先看一下System.identityHashCode(Object x)方法的源码:/** * ...
2020-04-04 16:22:32
2669
原创 String为什么是final类
在Java里面String类型是不可变对象,这一点毫无疑问,那么为什么Java语言的设计者要把String类型设计成不可变对象呢?这是一个值得思考的问题在这之前,我们先来简单了解一下,什么是不可变对象?不可变对象指的是在对象创建之后,对象的内部状态以及对象的内存指针地址都不不能被改变。在Java里面final关键字就是用来辅助创建不可变对象的,但需要注意的是,对于基本类型被final修饰后,就...
2020-03-24 22:57:36
641
转载 Java集合详解
Java集合详解一、数组和集合的比较数组不是面向对象的,存在明显的缺陷,集合弥补了数组的缺点,比数组更灵活更实用,而且不同的集合框架类可适用不同场合。如下:数组能存放基本数据类型和对象,而集合类存放的都是对象,集合类不能存放基本数据类型。数组和集合存放的对象皆为对象的引用地址。数组容易固定无法动态改变,集合类容量动态改变。数组无法判断其中实际存有多少元素,length只告诉了...
2020-03-23 22:38:00
166
原创 3.Redis实现发布订阅
发布订阅是消息的一种常用模式。常用的就有ActiveMQ,其实Redis也能实现发布订阅。首先Redis提供一个渠道,让消息能够发送到这个渠道上,而多个系统就可以监听这个渠道,如短信信通、邮件系统等。当一条消息发送到渠道是,渠道就会通知他的监听者,这样短信系统、邮件系统就可以得到这个渠道给他们消息,这些监听者在根据自己的处理逻辑处理这些消息。为了接收Redis渠道发送过来的消息,我们首先需要定...
2020-03-16 22:26:14
173
原创 2.Redis批量处理(流水线)
在默认的情况下,Redis客户端是一条一条的发送命令给Redis服务器的,这样做的性能显然不高。在关系型数据库中我们可以使用批量操作,也就是需要执行SQL是,才一次性的发送所有SQL去执行,这样性能就可以提高很多了。对于Redis也是可以的,这边是流水线(pipline)技术,在很多情况下并不是Redis性能不佳,而是网络传输的速度造成的瓶颈,使用流水线后就可以大幅度的在需要执行很多命令的时候提...
2020-03-16 22:04:35
260
原创 2.redis的事务
首先 Redis是支持一定事务能力的 NOSQL,在 Redis中使用事务,通常的命令组合是 watch…mutil…exec,也就是要在一个 Redis连接中执行多个命令,这时我们可以考虑使用 SessionCallback接口来达到这个目的。其中watch命令是可以监控Reds的一些键;mutil命令是开始事务,开始事务后,该客户端的命令不会马上被执行,而是存放在一个队列里,这点是需要注意的...
2020-03-16 16:16:46
180
原创 1.Redis的序列化
Performs automatic serialization/deserialization between the given objects and the underlying binary data in theRedis store. By default, it uses Java serialization for its objects (through {@linkJdkS...
2020-03-16 15:15:40
1026
原创 SpringBoot+WebSocket的使用
WebSocket协议是基于TCP的一种新的网络协议。他实现了浏览器与服务器全双工(Full-duplex)通信,即允许服务器自动发送信息给客户端,这样就可以实现从客户端发送消息到服务器;而服务器又可以发送消息到客户端,这样就能够实现两者之间的交互。目前大部分浏览器已经实现了WebSocket协议,但是也有一部分浏览器没有实现WebSocket协议,为了兼容那些没有实现该协议的浏览器,往往还需要...
2020-03-15 22:54:43
477
1
原创 6.springBoot(2.X)+Security实现动态的权限控制
根据我前几篇关于学习SSM+springSecurity一系列博客明白了security的基本操作,接下来我们实现springBoot+Security实现动态的权限控制本博客数据库中的测试数据是之前博客中的数据由于springBoot+security的操作与SSM+springSecurity的基本原理是一致的,这里就简单的进行介绍一下项目的构成,以及一些注意事项1. 首先构建一个s...
2020-03-14 17:23:23
962
原创 5.SSM+springSecurity与数据库连接实现动态角色权限控制之细节处理
**我们接着上一篇博客SSM+springSecurity与数据库连接实现动态角色权限控制来实现springSecurity与数据库连接实现动态角色权限控制的一些细节**1. 实现密码加密,解密springSecurity内部提供了PasswordEncoder接口,其中定义了两个方法 public interface PasswordEncoder { //对密码进行加密(相同...
2020-03-12 22:58:50
445
原创 4.SSM+springSecurity与数据库连接实现动态角色权限控制
我们接着上一篇博客[SSM+springSecurity实现简单认证、自定义登录页面,成功与失败返回json数据、控制访问权限等功能]来实现springSecurity与数据库连接实现动态角色权限控制(https://blog.csdn.net/SnowDujc/article/details/104778387)1. 创建项目这个参考我的第一篇[SSM搭建springSecurity环境],...
2020-03-11 00:38:34
492
原创 3.SSM+springSecurity实现简单认证、自定义登录页面,成功与失败返回json数据、控制访问权限
我们接着上一篇博客SSM+springSecurity实现简单的认证来实现自定义登录页面,成功与失败返回的数据、控制权限等功能1.自定义登录页面login.jsp文件代码: <%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head> <tit...
2020-03-10 20:46:11
1052
1
原创 2.SSM+springSecurity实现简单的认证
我们接着上一篇博客搭建大SSM+SpringSecurity环境来实现一个基于springSecurity简单认证的项目1. 对springMvc.xml文件进行配置 <?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" ...
2020-03-10 15:10:58
307
原创 1. SSM搭建springSecurity环境
首先创建一个maven项目,命名为springSecurity_01(webapp项目)因为idea默认创建的webapp项目的web.xml是2.3版本的,所以需要将版本更换成2.5版本<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchem...
2020-03-10 14:12:06
263
原创 mybatis createCriteria和or的区别
在mybatis中如何形成动态条件,我们可以使用 “实体类Exmple” 类对条件进行封装。我们可以借助idea的插件进行自动生成 “实体类对应Exmple” 类(举例代码在最后)。在创建实体类Exmple类时有两种方法:createcriteria和or方法,他们有什么区别呢?通过源码,能很清楚的看出差别。createcriteria,当没有规则时,则加入到现有规则,但有规则...
2020-03-08 17:51:48
3196
原创 springBoot使用Easypoi实现excle的导入导出
1.首先创建测试表CREATE TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(25) DEFAULT NULL, `num` varchar(25) DEFAULT NULL, `birth` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON U...
2020-03-07 14:53:05
406
原创 快排
public class MyQuickSort { public static void quickSort(int[] arr, int left, int right) { if (left >= right) { return; } int i = left; int j = righ...
2020-03-03 13:53:50
217
原创 冒泡排序
public class MyMaoPao { public static void maoPaoSort(int[] arr) { for (int i = 1; i < arr.length; i++) { for (int j = 0; j < arr.length - i; j++) { if ...
2020-03-03 13:52:44
131
转载 @Transactional回滚问题(try catch、嵌套、事务传播)
本文参考与https://www.cnblogs.com/pjjlt/p/10926398.htmlSpring 事务注解 @Transactional 本来可以保证原子性,如果事务内有报错的话,整个事务可以保证回滚,但是加上try catch或者事务嵌套,可能会导致事务回滚失败。测试一波。准备建两张表,模拟两个数据操作CREATE TABLE `user` ( `id` in...
2020-03-02 23:55:44
1760
原创 docker修改已部署容器的配置文件(mysql举例)
1. 如何修改容器的配置文件(已启动的容器)进入容器docker exec -it [容器名] [指定目录]进入需要修改的配置文件目录vim [配置文件名]可能在vim时会包未找到vim命令,因为在docker中现在还没有安装vimapt-get updateapt-get install -y vim1.1. 例如:修改运行中mysql的配置文件(不区分大小写)...
2019-08-23 14:10:25
18197
5
原创 davinci-0.3.0安装部署
davinci-0.3.0-beta.5 release安装部署下载地址:https://github.com/edp963/davinci/releases/download/v0.3.0-beta.5/davinci-assembly_3.0.1-0.3.1-SNAPSHOT-dist-beta.5.zip上传davinci zip包到系统某个目录下,如/export/servers,将...
2019-08-08 11:39:00
4405
7
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人