如漩涡的博客
我会把自己所学自己的经验,在自己的博客里面写上,供大家学习分享,共同进步。
如漩涡
普通程序员
展开
-
Java MongoDB 多联查询
Java MongoDB 多联查询前言联表Select列表结构生成管道前言我使用的是spring包里的mongoTemplate进行操作Mongo,那基本单表的操作满足日常需求了;但是难免会有要联表操作的时候,mongo-data包里提供了一种Aggregation类,可以理解为建立管道。联表LookupOperation这个类就是用来进行联表操作的类,具体方法:newLookup ,用来创建一个LookupOperation.Builder;from, 要连接哪张表,类似Mysql的JOIN原创 2022-03-29 16:42:57 · 2522 阅读 · 0 评论 -
IDEA热部署配置
使用一个Java Web项目的时候,经常要重启Tomcat或者其他容器,有个方法是配置热部署,不过个人不太喜欢,因为我代码还没敲完呢,它一旦发生有一点改变,哪怕是个空格都给你重启了,有点耗资源了,但是还是要说明一下如果是Maven项目或者是Spring Boot项目的话,在pom.xml中加上依赖地址 org.springframework.boot sprin原创 2018-01-31 17:22:03 · 352 阅读 · 0 评论 -
利用IDEA创建Spring Boot项目
IDEA是一个很好用的工具,可以创建很多类型的项目,Maven,Spring Boot等,还支持多种文件类型,前端的后台的脚本的等等用IDEA创建Spring Boot很简单,只需要 New--New Project 选择Spring Initializr接着就看你需要什么东西,比如我要一个带有Mybatis,MySql的项目,那就在这里勾上原创 2018-01-31 17:24:37 · 322 阅读 · 0 评论 -
JAVA中&&和||两种符号
&&可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false。&&还具有短路的功能,即如果第一个表达式为false,则不再计算第二个表达式,例如,对于if(str != null && !str.equals(“”))表达式,当str为null时,后面的表达式不会执行,所以不会原创 2018-01-25 11:09:39 · 60242 阅读 · 1 评论 -
String format的使用
String.format()这个方法可用于字符串自动补位,例如有四位数字,从0001开始到0002递增+1,普通一点的办法,可以用for循环的方式,进行递增之后转成字符串,再字符串前补字符“0”,但是代码量太多,利用String.format就可以实现数字+1以及补“0”等操作举个例子:现在要生成一段河流编码,河流编码由三位水系编码、四位数字、一位类型编码、一位序号编码组成,共九位,原创 2018-01-25 11:10:18 · 954 阅读 · 0 评论 -
Java 利用反射类操作其他类
反射的概念:JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。要想解剖一个类,必须先要获取到该类的字节码文件对象。而解剖使用的就是Class类中的方法.所以先要获取到每一个字节码文件对应的Class类型的对象.反射就是把jav原创 2018-02-05 17:53:41 · 503 阅读 · 0 评论 -
Java 将内容输出成文件
文件操作类有很多种,个人现在使用的是“BufferedWriter”这个类进行操作,这个类操作起来很方便,看代码:定义一个路径:private String path="d:\\aa.xls";表明要在D盘根目录下生成一个叫“aa”的excel文件定义一个“BufferedWriter”类的对象:private BufferedWriter writer;接着就可以操作了,例如,将想要的内容,存入...原创 2018-02-09 18:40:51 · 808 阅读 · 0 评论 -
Java 获取包路径的小技巧
/** 项目在硬盘上的基础路径 */private static final String PROJECT_PATH = System.getProperty("user.dir");/** 获取当前类的路径 com.example.CodeGenerator.core*/private static String packAge = ProjectConstant.class.getPack...原创 2018-03-05 16:42:31 · 5114 阅读 · 0 评论 -
Java 自制流域、水系、河流编码生成工具类
/** * 自制工具类 * @author chenbin on 2017/12/20 * @version 3.0.0 */public class HzzCodeUtil { /** * 生成流域编码 * @param code 传入数据库中最大一位的流域Code,若无传入"" 或者null 则会从第一位 例如“A”开始生成 * @re...原创 2018-03-06 08:53:01 · 737 阅读 · 0 评论 -
获取Liunx或Windows下面的本地IP地址
import java.net.InetAddress;import java.net.NetworkInterface;import java.util.Enumeration;/** * 自制工具类 * 用于获取windows与linux系统下的ip地址 * @author chenbin on 2018/02/28 * @version 3.0.0 */public cla...原创 2018-03-06 08:56:47 · 297 阅读 · 0 评论 -
Java设计模式之责任链模式
Java的设计模式有很多种,分说一下Java的责任链模式 责任链模式就是有多个对象,每个对象持有对下一个对象的引用,这样就会形成一条链,请求在这条链上传递,直到某一个对象决定处理该请求,所以责任链模式可以实现,在隐瞒客户端的情况,对系统进行动态的调整通俗的表达责任链中国古代对妇女制定了“三从四德”的道德规范,“三从”是指“未嫁从父,既嫁从夫,夫死从子”。也就是说,一位女性...原创 2018-04-30 22:45:09 · 250 阅读 · 0 评论 -
Java设计模式之责任链模式(二)
在上一篇文章中详细的介绍了什么是责任链模式,或许Demo做的有一些些深,创建的类也比较多,为了让刚入门Java的同学能更容易理解,小生重写一个更为清晰的Demo(大神绕道)还是上一篇文章的逻辑,此处强调一点就是,链接上的请求可以是一条链,可以是一个树,还可以是一个环,模式本身不约束这个,需要我们自己去实现,同时,在一个时刻,命令只允许由一个对象传给另一个对象,而不允许传给多个对象。...原创 2018-04-30 23:16:40 · 337 阅读 · 0 评论 -
JDBC工具类
封装了一个工具类,用于JDBC操作MySql数据库,获取某个数据库下的所有表名,某个表中的所有字段名称、字段类型、字段注解等使用坏境JDK: 1.8 or 1.7Maven: 3.x.x使用步骤1. Maven项目或是Spring Boot项目在pom.xml文件中引入mysql-connector-java.jar这个依赖包,不是的需要去下载这个包加入项...原创 2018-05-01 11:07:05 · 453 阅读 · 0 评论 -
Java加密解密工具类
工具类作用域 现在不管web或者后端的一些项目里,难免要对数据进行加密,往简单了讲,前端要将用户的密码传送到后台数据库进行保存,后台保存的肯定不能是明文,要在插入数据库之前,将传入的密码进行一次加密,再存入到数据库里由于接触到的项目有这么一个要求,超级管理员在页面填写的数据库帐号密码要保存到后台,保存的不能是明文,要是密文,如果取出的话先进行解密再返回前端,于是这个工具类就产生了。...原创 2018-05-05 20:25:43 · 3421 阅读 · 0 评论 -
生成流域/水系的编码
要求:从26位英文字母中筛选出一位流域编码/三位水系编码,用户选择所属流域后生成思路:查询出所有水系,根据表中流域编码Code进行排查,查出归属某个流域下的所有水系,找出最后一个水系编码进行新增做法:查询出所有水系List list = mdWaterSystemService.findAll();根据表中流域编码进行排查,查出归属某个流域下的所原创 2018-01-25 11:12:36 · 1028 阅读 · 0 评论 -
前端表单上下移动接口实现
要求:项目中遇到前端页面读取完数据后,需要对排序进行上下移动思路:让前端传入两个参数,一个是状态,0前进,1后退,再把当前的sort值发送到后台,后台根据当前的状态值,判断前进还是后退;根据传入的sort去查找当前这条记录,对sort进行+1或者-1的更新操作,再把数据通过 ORDER BY 函数进行排序发送给前端页面实现: 据传入的sort去查找当前这条记录,对s原创 2018-01-25 11:13:21 · 1616 阅读 · 0 评论 -
Java Excel导入导出
项目要求,把数据库中的数据进行导入导出成Excel文档,利用Java POI框架来进行操作导入POI的依赖包:<dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>3.17&...原创 2019-04-28 11:46:49 · 504 阅读 · 0 评论 -
多表一个XML即可构建树
上一回写过一次构建树的方法,我提到过代码复用性太高了,因为六张表,差不多的SQL语句,重复调用,代码也不好看,而且new了很多个TreeNode对象,臃肿,后来想到了在Mybatis XML映射中做修改,将表名和字段名都让自己来赋值,试了试,没想到这样的操作还真的有。XML:id="findTree" resultType="com.uhope.uip.item.core.TreeNo原创 2018-01-31 17:00:21 · 344 阅读 · 0 评论 -
后台数据同步思路
项目中有一个需求,需要与民政部的数据实时同步。思路:民政部官网的数据不会直接告诉我们,需要我们去官网查看,每个月民政部会更新两条href链接,是县级一下或者县级以上的两条数据,人工手动定期拷贝略显的low了,使用爬虫来获取网页数据,再将数据经过筛选存入数据库,开启一起定时任务,定时获取网页中最新的两条数据;实现:所需要的数据,民政部网址是 http://www.mca.gov.cn/article...原创 2018-02-15 17:05:25 · 4772 阅读 · 0 评论 -
关于List中addAll()方法的错误纠正
起因:在项目中构造树形关系的时候,一级下面挂两个二级,比如说浙江省下面挂着归属浙江省的市,但还要挂一个浙江省所在的人员,人员和市就同样是二级关系,项目里有一个TreeNode类,专门用来构建树的返回结果,TreeNode有个setChild用于加入下一级的List思路:先查出所有一级信息,根据这个一级的size进行循环,在这个循环内做查询,查和一级有关的二级信息,做两次,一次查人员,一次查市区,用...原创 2018-03-29 16:06:56 · 5239 阅读 · 0 评论 -
mybatis分级点击展示树结构
在WEB项目中,一二三级树形数据是很常见的事情,各种PID关系多个表等等,可以在每个XML中写个SQL,根据PID查询出数据,在Java代码中循环构造树,可以参考我之前的文章,但那都是数据量小的情况,表中加个索引,就非常快了。 那一旦数据量大起来怎么办?比如十万表数据,用循环构造树的话,那得循环多少遍,产生多少内存多少对象,访问多少次数据库,而且前端展示效果极差,数据太大循环多次查询...原创 2018-04-02 10:02:27 · 1005 阅读 · 0 评论 -
前端传入JSON数组转换对象存入数据库
前言 前端有一个页面,一条数据对应一个后台对象,多条数据就是对应多个对象,用的是JSON数组格式传过来到后台,我刚开始准备用List的方式接收,但是报错,说不支持,不知道为什么,多图片上传的时候也是这样可以的,既然不支持,那项目还是要继续,用FastJson来转换操作步骤1. 我是SpringBoot项目,在pom.xml中加入相关的依赖 <d...原创 2018-04-28 17:06:16 · 9214 阅读 · 0 评论 -
多表分级点击查询
上次介绍了分级点击查询的文章,是在SQL中将两个查询结果集合在了一块返回给前端,这次说一下多表的情况下什么叫多表的情况下?拿以往的文章,流域水系树的结构来说,要根据上一级的编码来查下一级,就是pid关系。上次是利用循环递归的方式,查询出全部流域,循环流域,在循环中做查询水系的方式,水系获取流域的编码(pid)来找出所属水系关系但是这样啊,数据量大的时候,那这递归要很久了,前端等待的时候太长...原创 2018-05-01 11:09:44 · 348 阅读 · 0 评论 -
项目中运用责任链创建校验器
前言 近期在做一个数据导入项目,有一个模版选择,模版中可以选择对导入的字段进行效验,例如非空,长度,格式,类型等,如若放在一个类中的话,大量的臃肿代码免不了,例如“if”这样的,那就运用责任链模式,各做各的判断。看到这篇文章不明白责任链的同学们去翻我的上篇文章。思路用责任链设计模式来构造这个项目,每个判断做成一个校验器,将每个校验器做成链子,一个接一个的做。库中有五个校验器,...原创 2018-05-02 20:08:56 · 2153 阅读 · 0 评论 -
mybatis <foreach>标签动态增删改查
mybatis 《foreach》有的时候在项目中需要查询某个列表时,可能会在代码中进行嵌套循环再取值,其实mybatis提供了这么一个标签,可以在SQL中进行循环(是不是很酸爽)先来了解一下foreach这个标签有哪些元素:item 表示集合中每一个元素进行迭代时的别名index 指定一个名字,用于表示在迭代过程中,每次迭代到的位置open 表示该语句以什么开始sepa...原创 2018-05-09 15:55:30 · 3604 阅读 · 0 评论 -
用IDEA创建maven项目使用tomcat插件方式完成web前后端应用
用IDEA创建maven项目使用tomcat插件方式完成web前后端应用给自己做个小笔记,以防这些东西忘记,在此就献丑了下载IDEA并完成安装创建maven项目导入tomcat的插件导入相关的依赖包下载IDEA并完成安装首先我们需要去IDEA的官网下载相应的版本号,官网地址:https://www.jetbrains.com/idea/download/#section=windows我们原创 2017-10-19 18:33:03 · 1812 阅读 · 0 评论 -
继使用IDEA创建web项目之后搭建MVC
上次我们利用maven搭建好了一个web项目,接下来,我们来搭建一下MVC环境配置搭建之前还劳烦大家把有关后台、JSP、mysql、spring等依赖包全部像上篇文章教程一样贴入pom.xml文件中去,我这边也给大家提供一下我自己现在所在用的依赖包,如果大家需要,直接复制就可以首先我们打开IDEA,重新来配置一下pom.xml这个文件,下面我贴完整的代码,你们复制到 dependencies 中去原创 2017-10-19 20:19:57 · 1767 阅读 · 0 评论 -
Mybatis #和$使用的安全性提醒
使用$符号一般情况下是在 LIKE 模糊查询的时候,例如 SELECT * FROM User WHERE name LIKE '%${name}%'但是这个情况很容易被恶意注入SQL语句,安全性不高,数据别人一注入就都被找到了,所以能别用$就别用了,尽量用#来实现若像LIKE这样的又要用到$的时候,可以用这样来替代SELECT * FROM User WHERE name LIK原创 2018-01-25 12:46:15 · 724 阅读 · 0 评论 -
MySql高级-索引
1、索引是什么 索引(Index)是帮助MySQL高效获取数据的数据结构。可以得到索引的本质:索引是数据结构。 可以理解为“排好序的快速查找数据结构” 在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据, 这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。2、优势 类似大学图书馆转载 2018-01-31 10:24:45 · 245 阅读 · 0 评论 -
Mybatis使用流程
使用IDEA或者是官网下载的方式,生成Spring Boot项目,pom.xml中加入相关的依赖,一般使用IDEA构建Spring Boot时可以勾选相关依赖的第一步: 先把数据库地址配置完成,在application.properties这个文件里#JPA配置spring.jpa.show-sql=true#JPA自动创建配置spring.jpa原创 2018-01-31 17:17:22 · 507 阅读 · 0 评论 -
Java 基于webmagic框架进行爬取页面数据
爬虫框架网络上一搜一大把,看个人觉得哪款爬虫框架比较适用自己,刚开始我接触使用的是xxl-crawler,经过几次测试实现,虽然这个框架不错,功能丰富,但跟我当时的需求来说并不满足,或许是我还没研究深,不太会用,时间有限,我选择了去找其他框架,后来接触了webmagic,操作简单方便,可以多次深入爬取,以及css,$,xpath都支持,还有获取单条数据或者多条数据的选择,正好符合我想要的,就着手研...原创 2018-02-12 14:29:30 · 2271 阅读 · 1 评论 -
Spring Boot 打包
在pom.xml中引入插件,基本用IDEA创建的Spring Boot项目都会有的插件,只要加点内容进去在build下添加插件:<plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot...原创 2018-03-05 16:21:24 · 304 阅读 · 0 评论 -
SpringBoot上传文件出错
现象Spring Boot项目,今天做了一个与前端对接富文本的上传图片到服务器,返回一段URL给前端,一直运行着,前端一直请求接口一直上传图片做测试的时候,后台报了一个错误Could not parse multipart servlet request; nested exception is java.io.IOException: The temporary upload locat...原创 2018-04-28 17:45:40 · 1785 阅读 · 0 评论 -
关于mybatis if 标签 == 不匹配的问题
起因在项目中遇到一个BUG,而且这个BUG还不知道因为什么,找了一下错误的原因,是因为在mybatis的SQL语句不匹配的问题mybatis有一个if标签,可以做判断,我用了 某某 == 1时做相应的SQL操作,最后BUG的原因是因为这个<if test="carrier != null and carrier !='' and carrier !='0'"> ...原创 2018-04-28 21:23:42 · 1160 阅读 · 1 评论 -
Request header is too large 的问题解决
问题原因 一个新增的接口,因为前端传入一段很长的JSON数组,导致了打印台报错错误描述java.lang.IllegalArgumentException: Request header is too large解决方案查阅了一下资料得到了一个答案请求头超过了tomcat的限值。本来post请求是没有参数大小限制,但是服务器有自己的默认大小。 那就修改服务...原创 2018-05-04 11:42:48 · 92248 阅读 · 8 评论