Java
曹牛牛
这个作者很懒,什么都没留下…
展开
-
通过表结构生成实体类
在开发过程中,经常会新增表。然后将表映射成实体。如果采用的是驼峰命名的方式。则表字段名和实体名称,不是真正的相等。可以通过如下的工具类,映射表结构生成实体如下:import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.io.PrintWriter; import java.sql.Connection; import java.sql.DatabaseMetaDa原创 2021-04-22 10:29:23 · 1880 阅读 · 0 评论 -
pdf转图片
使用到了fontbox、pdfbox这两个包,在maven仓库中查找,添加到pom.xml文件中。官网下载地址:https://pdfbox.apache.org/download.cgi#20x示例代码import java.awt.image.BufferedImage;import java.io.File;import java.io.IOException;import java.util.Scanner;import javax.imageio.ImageIO;im原创 2020-05-09 17:50:21 · 183 阅读 · 0 评论 -
ElasticSearch 搜索实例
ElasticSearch 搜索,需要进行分类的搜索,同时搜索关键字。public Map search(Map<String, String> searchMap) { //1.获取关键字的值 String keywords = searchMap.get("keywords"); if (StringUtils.isEmpty(keywords)...原创 2020-03-25 11:03:44 · 125 阅读 · 0 评论 -
分页工具类
package entity;import java.io.Serializable;import java.util.List;public class Page <T> implements Serializable{ // 页数(第几页) private long currentpage; // 查询数据库里面对应的数据有多少条 private long ...原创 2020-03-07 00:30:15 · 108 阅读 · 0 评论 -
java 时间操作工具类
import java.time.LocalDate;import java.time.LocalDateTime;import java.time.Period;import java.time.ZoneId;import java.time.format.DateTimeFormatter;import java.time.temporal.ChronoUnit;import j...原创 2020-02-29 13:12:14 · 159 阅读 · 0 评论 -
JAVA-getComponent()与getSource()
两个方法都是获取发生事件的事件源对象,区别也许是返回的类型不同,如果是getSource()需要强制类型转换为Component 对象;而getComponent()无需转换;API的说明如下:类ComponentEventgetComponent()返回发起事件的 Component 对象,如果该对象不是一个 Component,则返回 null。类EventObjectgetSour...原创 2020-02-11 16:00:47 · 485 阅读 · 0 评论 -
查看classpath
WEB-INF/lib 目录下的jar优先然后才是 系统的共享目录;自己看看classpath,代码:System.out.println(System.getProperty("java.class.path"));如果重复,前面的优先!所以这个语句建议经常使用,特别是发现莫名其妙的问题的时候!tomcat下面使用 :getServletContext().getAtt...原创 2020-02-11 15:44:18 · 924 阅读 · 0 评论 -
mybatis的逆向工程中创建的以Example类的作用
在平常的开发中,有时会使用mybatis的逆向工程,来快速的创建类,其中在创建实例的过程中有一个以Example结尾的类,这个类是专门用来对这个单表来查询的类,就相当于,对该单表的增删改查是脱离sql性质的,直接在service层就可以完成(当然这个sql是逆向已经生过的)例如:select id, username, birthday, sex, address from user WH...原创 2020-02-10 16:17:02 · 265 阅读 · 0 评论 -
Cron表达式
Cron表达式是一个字符串,包括6~7个时间元素,在SpringTask中可以用于指定任务的执行时间。Cron的语法格式Seconds Minutes Hours DayofMonth Month DayofWeekCron格式中每个时间元素的说明时间元素 可出现的字符 有效数值范围 Seconds , - * / 0-59 Minutes ,...原创 2020-02-06 14:39:59 · 283 阅读 · 0 评论 -
java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter
今天在使用JDK 12.0 环境下使用Hibernate 时候出现了这个错误,错误日志如下:2020-02-06 11:52:48.790 ERROR 3368 --- [nio-8081-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] i...原创 2020-02-06 11:58:52 · 2017 阅读 · 3 评论 -
如果程序出现异常怎么通知到管理员
有时我们需要监控我们的程序是否正常的执行。并不能实时的到服务器上去检查程序的运行情况。需要程序自动的通知管理员,出现异常,需要查询了。或者我们使用kill命令杀死一个我们的程序是,也通知管理员。(但是使用kill -9 的命令,下面的代码是不可用的。)public class ExitRunTimeException { public static void main(Strin...原创 2020-01-19 22:34:08 · 597 阅读 · 0 评论 -
使用RunTime.getRunTime().addShutdownHook优雅关闭线程池
有时候我们用到的程序不一定总是在JVM里面驻守,可能调用完就不用了,释放资源.RunTime.getRunTime().addShutdownHook的作用就是在JVM销毁前执行的一个线程.当然这个线程依然要自己写.利用这个性质,如果我们之前定义了一系列的线程池供程序本身使用,那么就可以在这个最后执行的线程中把这些线程池优雅的关闭掉.比如我们定义了一个线程池private Exe...原创 2020-01-19 22:27:31 · 148 阅读 · 0 评论 -
关于json返回值的问题
最近跟人对接。一个比较扯淡的问题。对方需要接收的字段都为大写的。而有一部分字段是单单词的,通过fastjson返回数据。则为小写的json如下:{ "status": 300, "desc": "此人正在办理中,请核实!", "time": "2020-01-17 15:32:29.271", "data": null}但是接口方需要大写的。...原创 2020-01-17 18:56:22 · 283 阅读 · 0 评论 -
Collections.unmodifiableCollection
Collections.unmodifiableCollection这个可以得到一个集合的镜像,它的返回结果不可直接被改变,否则会提示java.lang.UnsupportedOperationException at java.util.Collections$UnmodifiableCollection.add(Collections.java:1018) 正常的使用如...原创 2020-01-16 20:36:27 · 2266 阅读 · 0 评论 -
通过读取表结构,生成对应的实体文件
在开发过程中,需要将java实体跟数据库表中的字段进行对应,几乎都是重复的机械的工作。虽然可以使用JPA工程的映射,但是还是不够人性化,需要后期进行大量的修改和对应。本着“懒惰,首先是人类进步”的原则。开发一个工具类,进行自动的读取并影射字段。可以通过配置,全库进行映射,也可以指定表进行映射。不足之处,还没有好的办法将表字段的备注写入到对应的字段上。如果有人有好的解决办法,可以留言给我...原创 2020-01-16 18:21:08 · 400 阅读 · 0 评论 -
spring调用Oracle的函数,并且取得函数的返回值
使用spring的jdbcTemplate调取Oracle的函数,并且取得函数的返回值Oracle的函数create or replace function getAppointWorkingDay(day1 varchar2,currentday varchar2) return number is dateNum number ;begin select 1 into...原创 2020-01-11 09:18:34 · 534 阅读 · 0 评论 -
java8的时间工具类
java8的新特性import java.time.Instant;import java.time.LocalDate;import java.time.LocalDateTime;import java.time.LocalTime;import java.time.ZoneId;import java.time.ZonedDateTime;import java.time....原创 2020-01-09 21:27:03 · 87 阅读 · 0 评论 -
html转pdf
html转PDF的软件 wkhtmltopdf官方网站:https://wkhtmltopdf.org/原创 2020-01-09 17:05:22 · 140 阅读 · 0 评论 -
joda java8时间类参考的思想
java8之前的时间的类,很一般,而且有很多问题。在java8的时候,吸收了其他好的思想,并融入进来了。https://www.joda.org/joda-time/原创 2020-01-08 22:38:06 · 96 阅读 · 0 评论 -
Collection和Collections的区别
1、java.util.Collection 是一个集合框架的父接口。它提供了对集合对象进行基本操作的通用接口方法。Collection接口在Java 类库中有很多具体的实现。Collection接口的意义是为各种具体的集合提供了最大化的统一操作方式。Collection├List│├LinkedList│├ArrayList│└Vector│ └Sta...原创 2020-01-01 22:41:55 · 101 阅读 · 0 评论 -
idea for循环快捷键
idea中各种for循环的快捷键使用Intellij idea 时,想要快捷生成for循环代码块itar 生成array for代码块for (int i = 0; i < array.length; i++) { = array[i]; }itco 生成Collection迭代for (Iterator iter...原创 2020-01-01 13:20:04 · 760 阅读 · 0 评论 -
idea 快捷键
Ctrl+Shift + Enter,语句完成“!”,否定完成,输入表达式时按 “!”键Ctrl+E,最近的文件Ctrl+Shift+E,最近更改的文件Shift+Click,可以关闭文件Ctrl+[ OR ],可以跑到大括号的开头与结尾Ctrl+F12,可以显示当前文件的结构Ctrl+F7,可以查询当前元素在当前文件中的引用,然后按 F3 可以选择Ctrl+N,可以快速打开类C...原创 2020-01-01 13:16:07 · 96 阅读 · 0 评论 -
线程各个状态转换图示
原创 2019-12-31 00:26:42 · 138 阅读 · 0 评论 -
ReenTrantLock synchronized
1.Synchronized的重入性(1)重进入1.定义:重进入是指任意线程在获取到锁之后,再次获取该锁而不会被该锁所阻塞。关联一个线程持有者+计数器,重入意味着锁操作的颗粒度为“线程”。(反之,不可重入锁的进入是单次的,代表锁状态的只有true和false)2.需要解决两个问题:线程再次获取锁:锁需要识别获取锁的现场是否为当前占据锁的线程,如果是,则再次成功获取;锁的最终释放:线...原创 2019-12-30 15:24:27 · 90 阅读 · 0 评论 -
Git 忽略提交 .gitignore的详解
在使用Git的过程中,我们喜欢有的文件比如日志,临时文件,编译的中间文件等不要提交到代码仓库,这时就要设置相应的忽略规则,来忽略这些文件的提交。规则 作用/mtk 过滤整个文件夹*.zip 过滤所有.zip文件/mtk/do.c 过滤某个具体文件!/mtk/one.txt 追踪(不过滤)某个具体文件注意:如果你创建.gitignore文件之前就push了某一文件,那么即使你在.git...原创 2019-12-28 13:08:50 · 87 阅读 · 0 评论 -
git提交,过滤文件配置 .gitignore
在提交代码过程中,有一部分idea的配置文件或者class文件我们不希望提交到仓库中。但是每一次都手动取消这些文件,太繁琐。可以在相应的工程目录下放置这样的配置文件,使用idea的自身的git进行提交时,会自动忽略配置的文件。1:.gitignoretarget/!.mvn/wrapper/maven-wrapper.jar### STS ###.apt_generated...原创 2019-12-28 13:07:26 · 737 阅读 · 0 评论 -
dependencyManagement和dependencies的区别
这里介绍一个在父项目中的根结点中声明dependencyManagement和dependencies的区别dependencyManagementMaven 使用dependencyManagement 元素来提供了一种管理依赖版本号的方式。通常会在一个组织或者项目的最顶层的父POM 中看到dependencyManagement 元素。使用pom.xml 中的dependencyMan...原创 2019-12-23 21:55:55 · 98 阅读 · 0 评论 -
maven解决jar包冲突
maven默认使用第一声明优先的原则,即谁先声明,就使用谁。这个声明的依赖包也是优先进入项目的。 路径近者优先原则。jar包导入时分如下两种。直接依赖要比传递依赖近,所以直接依赖会优先引入项目。 直接依赖,项目中直接导入的包。 传递依赖,靠包传递进入项目的。 可以使用标签,进行排除。在排出时可以不写版本号。因为在引入时已经知道其版本号了。<dependency> ...原创 2019-12-23 21:51:10 · 91 阅读 · 0 评论 -
在 Interceptor 中使用 @autowired 自动注入
要使用 @autowired 自动注入,就需要知道该注解生效的条件1、@autowired 合适生效,即什么时候可以使用 @autowired 注解根据官方描述:You are free to use any of the standard Spring Framework techniques to define your beans and their injected depende...原创 2019-12-21 18:33:58 · 1748 阅读 · 0 评论 -
处理器拦截器(HandlerInterceptor)详解
简介SpringWebMVC的处理器拦截器,类似于Servlet开发中的过滤器Filter,用于处理器进行预处理和后处理。应用场景1、日志记录,可以记录请求信息的日志,以便进行信息监控、信息统计等。2、权限检查:如登陆检测,进入处理器检测是否登陆,如果没有直接返回到登陆页面。3、性能监控:典型的是慢日志。HandlerInterceptorpublic interface H...原创 2019-12-21 18:07:54 · 371 阅读 · 0 评论 -
什么是跨域问题
在浏览器端进行 Ajax 请求时会出现跨域问题,那么什么是跨域,如何解决跨域呢?先看浏览器端出现跨域问题的现象,如下图所示跨域,指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对 JavaScript 施加的安全限制。什么是同源?所谓同源是指,域名,协议,端口均相同http://www.baidu.com --> http://admin....原创 2019-12-21 17:49:51 · 174 阅读 · 0 评论 -
JAVA中的Random()详解
Java中存在着两种Random函数:一、java.lang.Math.Random;二、java.util.Random第一种:调用这个Math.Random()函数能够返回带正号的double值,该值大于等于0.0且小于1.0,即取值范围是[0.0,1.0)的左闭右开区间,返回值是一个伪随机选择的数,在该范围内(近似)均匀分布。例子如下: public class Ra...原创 2019-12-20 10:47:25 · 381 阅读 · 0 评论 -
maven更新jar包失败,手动安装jar包到本地仓库
下载jar包到本地。然后通过如下命令进行安装。mvn install:install-file -Dfile=jar包的位置 -DgroupId=一般是公司名倒序 -DartifactId=唯一型ID -Dversion=版本号 -Dpackaging=jar 例如:添加fastdfs的jar包1,在jar包所在文件夹,点击鼠标右键-在此处打开命令窗口2,输入命令 正常命令...原创 2019-12-19 22:57:44 · 508 阅读 · 0 评论 -
java 泛型
一、什么是泛型通配符<一>简单定义泛型统配符1. 在了解泛型的统配符之前,我们先了解下什么是泛型,泛型是一种包含类型参数的类,值得注意的一点是这里的类型必须是引用数据类型,而且放在尖括号< >内,这里引进了类型参数,将类直接作为了参数。2. 那么是什么泛型统配符呢,我没有找到定义,所以我自己给它下了个定义。泛型通配符是在泛型的...原创 2019-12-19 11:23:55 · 126 阅读 · 0 评论 -
string和stringBuffer,stringBuilder的区别
1,String类的内容一旦声明后是不可改变的,改变的只是其内存的指向,而StringBuffer类的对象内容是可以改变的。2,对于StringBuffer,不能像String那样直接通过赋值的方式完成对象实例化,必须通过构造方法的方式完成。3,StringBuffer的在进行字符串处理时,不生成新的对象,在内存使用上要优于串类。所以在实际使用时,如果经常需要对一个字符串进行修改,例如插入...原创 2019-12-18 10:53:49 · 80 阅读 · 0 评论 -
JRebel 最简单的使用
https://www.cnblogs.com/flyrock/p/11574617.html前提提示JRebel是一款JVM插件,它使得Java代码修改后不用重启系统,立即生效。IDEA上原生是不支持热部署的,一般更新了 Java 文件后要手动重启 Tomcat 服务器,才能生效,浪费时间浪费生命。目前对于idea热部署最好的解决方案就是安装JRebel插件。收费怎么办,最简...原创 2019-12-18 10:56:16 · 282 阅读 · 0 评论 -
@Transient 理解
transient使用小结1)一旦变量被transient修饰,变量将不再是对象持久化的一部分,该变量内容在序列化后无法获得访问。2)transient关键字只能修饰变量,而不能修饰方法和类。注意,本地变量是不能被transient关键字修饰的。变量如果是用户自定义类变量,则该类需要实现Serializable接口。3)被transient关键字修饰的变量不再能被序列化,一个静态变量不管是...原创 2019-12-11 16:25:29 · 842 阅读 · 1 评论 -
如何通过ajax请求展示blob中的图片到html中
后台返回图片二进制流,需要使用get请求获取返回结果,并且将返回的二进制流以图片形式显示在页面img中。但是日常显示图片都诸如这种形式:<img src="图片路径、地址" alt="" />以上需求不能将后端地址直接填入src(原因是需要获取图片请求的headers中字段)问题后端返回图片验证码,返回验证码的请求中的headers有一个Captcha-ETag:caf9f...原创 2019-12-11 15:48:43 · 1809 阅读 · 0 评论 -
依赖的jar包在maven仓库中下载不到的解决办法
建立一个单独的工程,来专门的管理外部手动下载的jar包,使其安装到我们自己的本地仓库中<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ...原创 2019-12-10 23:35:59 · 270 阅读 · 0 评论 -
POJO VO DTO Entity domain
POJO 简单的java对象,原生对象VO View Object 视图对象,如html jspDTO Data Transfer Object 数据传输对象Entity 实体类,数据库的映射 ORMdomain 领域模型,如银行、保险、电扇、物流、医疗...原创 2019-12-09 23:26:37 · 123 阅读 · 0 评论