
后端
文章平均质量分 83
刘信坚的博客
少说话,多做事
展开
-
SpringBoot1.5.9升级到SpringBoot2.1.3出现Hibernate唯一性约束问题(DataIntegrityViolationException)
org.springframework.dao.DataIntegrityViolationException由于Hibernate4使用的旧的生成器,而Hibernate5默认使用的是新版的生成器.可通过设置spring.jpa.hibernate.use-new-id-generator-mappings=false来解决新生成器生成的id与之前的id冲突,当然也可以用配置类的方式:...原创 2020-06-18 17:47:43 · 585 阅读 · 0 评论 -
JAVASE之JAVAI/O流篇
一 Java IOIO流用来处理设备之间的数据传输。Java程序中,对于数据的输入/输出操作以”流(stream)” 的方式进行。java.io包下提供了各种“流”类和接口,用以获取不同种类的数据,并通过标准的方法输入或输出数据。输入input:读取外部数据(磁盘、光盘等存储设备的数据)到程序(内存)中。输出output:将程序(内存)数据输出到磁盘、光盘等存储设备中。...原创 2018-07-29 01:56:54 · 346 阅读 · 0 评论 -
如何解决Maven导入Oracle驱动出现Missing artifact com.oracle:ojdbc14:jar:10.2.0.1.0
1. 由于Oracle的授权问题,若要以Maven方式导入Oracle数据库驱动,则必须先手动添加到本地仓库2.首先登录oracle,查看当前数据库版本信息 select * from v$instance;INSTANCE_NUMBER INSTANCE_NAME--------------- ----------------HOST_NAME---------------...原创 2018-07-21 08:52:54 · 5234 阅读 · 0 评论 -
Mybatis中如何调用存储过程
下面就用一个例子来测试Mybatis调用存储过程,并进行分页的例子:使用的是oracle数据库1 存储过程代码如下:create or replace procedure test_page( page_start in int,page_end in int,page_count out int, page_emps out sys_refcursor)asb...原创 2018-07-21 10:38:35 · 17903 阅读 · 0 评论 -
用于解决多线程安全问题的三种方式
用于解决多线程安全问题的方式:1. 同步代码块 (隐式锁)2. 同步方法(隐式锁)3. 同步锁 Lock( jdk 1.5 后) 注意:是一个显示锁,需要通过 lock() 方法上锁,必须通过 unlock() 方法进行释放锁下面举一个售票例子:1)同步代码块package com.lxj.juc;public class TestSync { public stat...原创 2018-07-30 21:35:28 · 4934 阅读 · 0 评论 -
JAVA实现静态代理
首先看看什么是代理模式。一 代理模式 使用一个代理对象将对象包装起来,然后用该代理对象来取代该对象,任何对原始对象的调用都要通过代理,代理对象决定是否以及何时调用原始对象的方法二 静态模式 要求被代理类和代理类同时实现相应的一套接口,通过代理类调用重写接口的方法,实际上调用的是原始对象的同样的方法。如下图:Cilent调用Source的method(...原创 2018-07-27 23:40:24 · 8191 阅读 · 9 评论 -
JAVA实现动态代理
一 动态代理 动态代理是指客户通过代理类来调用其它对象的方法,并且是在程序运行时根据需要动态创建目标类的代理对象,下面直接看代码: 二 测试Animal.javapackage com.lxj.dynamic.proxy;public interface Animal { public void action(); public void breat...原创 2018-07-28 00:56:16 · 948 阅读 · 2 评论 -
Java -jar 如何在后台运行项目
说到运行jar包通常我们都会以下面的方式运行:[root@iZ2zei8ft0h4q485kxwxjgZ babyshark]# java -jar babyshark-0.0.1-SNAPSHOT.jar这样运行的话会有一个问题,就是我们一关闭当前窗口就会停止运行项目,要想解决这个问题,就需要在后台运行。[root@iZ2zei8ft0h4q485kxwxjgZ babysh...原创 2018-08-15 20:32:53 · 119444 阅读 · 4 评论 -
JAVASE之JAVA注解篇
一 注解Annotation概述从 JDK 5.0 开始, Java 增加了对元数据(MetaData) 的支持, 也就是 Annotation(注解)Annotation 其实就是代码里的特殊标记, 这些标记可以在编译, 类加载, 运行时被读取, 并执行相应的处理. 通过使用 Annotation, 程序员可以在不改变原有逻辑的情况下, 在源文件中嵌入一些补充信息.Annotatio...原创 2018-07-28 19:57:58 · 245 阅读 · 0 评论 -
JAVASE之JAVA枚举篇
一 概述JDK5.0之前需要自定义枚举类,而JDK5.0新增的enum关键字用于定于枚举类,若枚举只有一个成员,则可以作为一种单例模式的实现方式枚举类对象的属性不应允许被改动,所以应该使用private final修饰,应该在构造器为其赋值,若枚举类显式的定义了带参数的个构造器,则在列出枚举类时,也必须对应的传入参数。二 Enum枚举类必须在枚举类的第一行声明枚举类对象。...原创 2018-07-28 18:36:59 · 374 阅读 · 0 评论 -
JAVASE之JAVA泛型篇
一 概述 泛型,JDK1.5新加入的,解决数据类型的安全性问题,其主要原理是在类声明时通过一个标识表示类中某个属性的类型或者是某个方法的返回值及参数类型。这样在类声明或实例化时只要指定好需要的具体的类型即可。 Java泛型可以保证如果程序在编译时没有发出警告,运行时就不会产生ClassCastException异常。同时,代码更加简洁、健壮。如下图描述:二 使用泛型1...原创 2018-07-28 17:51:35 · 301 阅读 · 0 评论 -
SpringBoot与缓存使用及原理(下)
这次的博客文章是基于上一篇博客SpringBoot与缓存使用及原理(上)一 环境准备pom.xml文件中导入spring-boot-starter-cache,我这里是使用了redis做为缓存<dependencies><dependency><groupId>org.springframework.boot</groupId&g...原创 2018-06-14 02:01:55 · 3652 阅读 · 5 评论 -
(JAVA必备)Lombok(小辣椒)的安装与出现注解无效的问题
一 . 概述使用lombok可以简化我们的JAVA代码,虽然使用Eclipse或者IDEA可以一键生成,但是还是有点麻烦,下面推荐这款工具:二 . 安装与可能出现的问题1 首先官网下载lombok.jar2 打开下载好的lombo.jar,会弹出下面的界面,能够识别你电脑上的IDE3 如果出现权限不足的情况,可以手动安装4 如果出现权限不足的情况,可以手动安装(1) 在eclipse中首先找到ec...原创 2018-06-23 16:45:06 · 5604 阅读 · 0 评论 -
Docker轻松入门(详解)
一 Docker简介 Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口,更重要的是容器性能开销极低。Docker 可以让开发者打包他们的应用以及依赖包到一个...原创 2018-06-18 00:48:29 · 1212 阅读 · 1 评论 -
SpringBoot整合高级消息队列RabbitMQ及原理
一 SpringBoot 与消息概述二 RabbitMQ 概述RabbitMQ是一个由erlang开发的AMQP(Advanved Message Queue Protocol)的开源实现。Message:消息,消息是不具名的,它由消息头和消息体组成。消息体是不透明的,而消息头则由一系列的可选属性组成,这些属性包括routing-key(路由键)、priority(相对于其他消息的优先权)、de...原创 2018-06-19 01:26:51 · 16080 阅读 · 8 评论 -
SpringBoot整合ElasticSearch及源码
一 Springboot 与检索二 搭建环境整合Elasticsearch,选中该模块,如下图:先来看看自动配置文件,看下为我们做了哪些自动配置:接下来使用docker来创建elasticSearch容器,可以参考之前的博客 Docker轻松入门(详解) 或 Docker轻松入门(详解) 这个时候就可以使用IP地址:9301 进行访问了,如下:出现以下信息就说明已经连接上了。三 插入数据注意:...原创 2018-06-20 01:53:32 · 5411 阅读 · 2 评论 -
Field 'Id' doesn't have a default value解决方法
今天写代码遇到的一个小问题:使用工具将SQL文件导入数据库时出现的问题,一开始没注意到,后来检查了下数据表,发现在Mysql中没有将主键设置为自增,所以在使用Mybatis时获取生成主键时出现异常,异常如下:七月 14, 2018 12:27:33 上午 org.apache.catalina.core.StandardWrapperValve invoke严重: Servlet.s...原创 2018-07-14 00:53:03 · 47715 阅读 · 5 评论 -
Mybatis源码解析之四大对象
一 环境准备以一个最简单的例子来看看Mybatis的运行流程以及Mybatis四大对象起了什么作用。Employee.javapackage com.lxj.bean;public class Employee { private Integer id; private String lastName; private String email; private S...原创 2018-07-19 23:29:01 · 3074 阅读 · 1 评论 -
JAVASE之JAVA集合篇
一 集合概述 一方面, 面向对象语言对事物的体现都是以对象的形式,为了方便对多个对象的操作,就要对对象进行存储。另一方面,使用Array存储对象方面具有一些弊端,而Java 集合就像一种容器,可以动态地把多个对象的引用放入容器中。Java 集合类可以用于存储数量不等的多个对象,还可用于保存具有映射关系的关联数组。JAVA集合可分为Collection和Map两中体系: ...原创 2018-07-28 16:29:17 · 307 阅读 · 0 评论 -
Spring中的任务(异步,定时,发邮件)
一 Spring中的异步任务使用: 在Java应用中,绝大多数情况下都是通过同步的方式来实现交互处理的;但是在处理与第三方系统交互的时候,容易造成响应迟缓的情况,之前大部分都是使用多线程来完成此类任务,其实,在Spring 3.x之后,就已经内置了@Async来完美解决这个问题,使用的方法很简单,如下:Serivce.java 和Controller.java 如下package c...原创 2018-06-21 00:54:40 · 3038 阅读 · 0 评论