自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

卜可的博客

静以修身

  • 博客(83)
  • 资源 (14)
  • 收藏
  • 关注

原创 2017-11-20

2017-11-20 09:31:09 670

原创 解决MyBatis进行数据库操作时因参数过长导致打印日志过长的问题

如题,MyBatis是可以打印sql预警以及参数的,但是如果我们某个参数字段是CLOB类型时候,可能因为该字段过长而导致打印出来的日志超级长。这个字段的具体值我们又不关心,但是又不想关闭sql打印功能。这时候有个小窍门可以屏蔽这个字段的打印,而不影响sql和其他字段打印。在mapper的xml文件对该字段的操作sql中,什么数据类型为Clob,这样打印的时候把值当成流出来,而不会打印出整体内容#{c

2017-11-07 11:52:05 4707 1

原创 Spring中的Ioc、DI到底是啥

我们都知道,Spring是一款轻量级的IOC框架,Spring的核心就是Ioc和DI,并通过俩者解耦。 那么,Ioc、DI呢?Ioc 控制反转Ioc(Inversion of control)控制反转,这里的控制指把控制权从应用程序中剥离出来。ioc它可以把创建对象和查找依赖对象的权限交给Ioc容器控制,而不是传统的由这些对象的使用方(消费者)进行创建初始化操作。IoC是一种让服务消费者不直接依赖

2017-11-07 11:01:14 13757 1

原创 Spring的体系结构

Spring是模块化的,每个模块都有自己对应的jar包以及负责制定的功能任务,如图所示。上图中总共包含Spring的四大模块,分别如下。1、核心模块(Core) spring-core:核心工具类,SPring其他模块大梁依赖该模块,也是Spring的核心依赖注入IoC与DI的最基本实现 spring-beans:Spring定义bean的支持,传说中的bean工厂类就在这个jar包中 spr

2017-11-06 16:39:11 1796

原创 HttpServletRequest获取URL的相关方法

HttpServletRequest获取URL的相关方法主要有以下几个: String url = request.getRequestURL().toString(); String requestURI = request.getRequestURI(); String contextPath = request.getContextPath();

2017-10-31 15:06:52 2299

原创 orcal:强大的decode函数

decode是orcal数据库特有的功能,可用于简洁的表达逻辑判断效果。decode表达式: DECODE(value, if1, then1, if2,then2, if3,then3, … else )value表示加入逻辑判断的计算值,如果value的值与f1吻合,decode函数返回then1,……,如果value与表达式中的所有fn值都不匹配,decode函数结果返回else。其中i

2017-10-28 23:02:59 1323

原创 java:retainAll获取俩个自定义实体对象集合的重叠数据

需求有这么一个需求,学校举办了一场运动会,要求获取同时参加了田径和跳远项目的学生名单。技术实现为了更直观描述技术实现,先看看项目代码初始代码:代表学生对象的实体类Student(id为唯一标识码):public class Student{ // 学生姓名 private String name; // 学号 private String id; //省略ge

2017-10-26 17:42:27 6512 1

原创 JAVA:使用POI读取excel文件中的日期

最近开发的项目,遇到用户上传excel文件并导入数据到系统这个需求,而有excel中有的单元格是日期格式,本文介绍怎么从excel中读取日期格式的数据。先上代码: InputStream inputStream = new FileInputStream("D://test.xlsx"); XSSFWorkbook wb = new XSSFWorkbook(inputStre

2017-10-19 10:13:41 15335 4

原创 Maven:pom配置文件optional含义

<dependency> <groupId>com.demo</groupId> <artifactId>demo</artifactId> <version>${demo.version}</version> <optional>true</optional></dependency>以上是项目A的pom文件设置,如果项目B依赖A,并且向要demo这个依赖的第三方

2017-10-09 16:58:14 3695

原创 markdown之表格的使用

markdown因为其简便的语法,帮助作者从繁冗的排版工作中解放出来,更专注于文章的内容上,越来越受到博客写手、笔记狂魔的青睐。本文介绍如果用markdwon语法写出表格。html版markdown是支持html标签的,所以我们也可以才有html绘制表格

2017-09-30 11:18:11 14867

原创 sql优化:Exists、IN的取舍

Exists定义EXISTS用于检查子查询是否至少会返回一行数据,事实上该子查询并不会返回任何数据,而是返回值True(存在数据)或False,也就是说EXISTS指定一个子查询,检测行的存在

2017-09-30 11:00:38 1059

原创 Mybatis 调用数据库的存储过程

1、语法Mybatis调用存储过程的写法与查询sql调用相同,Mapper xml文件的书写也是用select标签,sql用call 存储过程名 (参数): id: 与java接口方法名一致 statementType:申明为CALLABLE,表示存储过程2、一个参数的写法mapper文件示例代码: <select id="callCopyPro" statementType="C

2017-09-30 09:59:19 1685

原创 Orcal:表操作

表字段修改修改表字段默认值alter table 表名 modify 字段名 default 默认值;alter table tablename modify create_time default sysdate;添加字段alter table user add (user_name varchar(50) default '默认字段' not null);

2017-09-26 11:02:43 1203

原创 慎用BeanUtils的对象拷贝方法

javaWeb开发过程中,经常需要在领域类之间进行实体对象的拷贝操作,比如把Po类的属性值拷贝给Dto类。BeanUtils这种工具类应用而生,比如org.apache.commons包中的BeanUtils就提供copyProperties(Object dest, Object orig)方法,它方便开发者快速在俩个对象之间进行字段值的拷贝。而且,拷贝条件非常简单:拷贝实体类之间只要保证字段名称

2017-09-22 16:48:42 13132 4

原创 HTTP协议中PUT和POST使用区别

这俩个方法初看一下好像都是更新资源,但是有本质上的区别,那就是语义。在HTTP中,PUT被定义为幂等(idempotent)的方法,POST则不是,这是一个很重要的区别。首先解释幂等,幂等是数学的一个用语,对于单个输入或者无输入的运算方法,如果每次都是同样的结果,则称其是幂等的。也就是说,如果一个网络重复执行多次,产生的效果是一样的,那就是幂等(idempotent)。POST用于提交请求,可以更新

2017-09-14 14:46:42 24296 2

原创 解决Http PUT请求方式无法表单传参问题

问题描述SpringMVC中,Controller层设置该接口为PUT请求方式。但是请求的时候,只能是url地址拼接参数,不可以像POST请求一样通过表单方式传递参数。问题原因对于表单提交参数,tomcat默认只解析POST的表单,对于PUT和DELETE的不处理,所以Spring拿不到。解决方法方法1(不推荐)修改tomcat的server.xml,设置表单传参支持PUT:<Connector p

2017-09-14 14:27:25 13559

原创 Spring boot系列:配置文件(二)

1、小试牛刀1.1 随机数Spring Boot提供了RandomValuePropertySource帮助开发者在配置文件中直接生成随机值,它很多场景都有用武之地,比如密钥、测试用例等。这些随机值可以是整数,longs或字符串,我们只需要在配置文件中定义即可:#随机字符串buke.secret=${random.value}#随机int类型数字buke.number=${random.int

2017-09-13 15:13:16 1511

原创 SpringMvc报错解决:Failed to instantiate [java.util.List]: Specified class is an interface

SpringMvc报错解决:Failed to instantiate [java.util.List]: Specified class is an interface

2017-09-08 20:17:58 31128 4

原创 Eclipse修改properties文件默认编码

无论工作空间的编码设置的是什么,Eclipse中文件properties默认编码都为ios-5529-1,我们在里面输入中文会自动转码:#\u6D4B\u8BD5以上内容毫无阅读性可言,为了解决这个问题,可以修改Eclipse的全局配置,把Properties文件的默认编码改为UTF-8。具体操作如下: Window –> General –> Content Types –> Text –> J

2017-09-07 00:26:03 23818

原创 Spring Boot插件spring tool suite安装及使用

本文分为俩部分:第一部分介绍如何给Eclipse安装Spring Boot开发插件spring tool suite(简称STS);第二部分介绍如何使用STS开发Spring Boot项目。一、安装插件由于官网STS插件只提供最新俩个版本的更新包,其他版本只有带Eclipse的完整包的下载链接,所以我建议使用Eclipse在线安装方式安装STS插件。安装STS打开Eclipse,菜单栏点击He

2017-09-06 23:58:05 43786 7

原创 Spring Boot系列:入门应用(一)

1、前言本博客通过开发一个Hello World版的Spring Boo项目来介绍下它的一些关键特性。 在创建项目前,必须确保你的电脑已经安装JDK1.6+和Maven,并配置好了环境。2、创建项目第一步:新建一个名称为springb文件夹,或者用idea工具(比如Eclipse)新建一个maven项目。第二步:在刚才新建的Springb文件目录下创建一个文件名pom.xml。如果是通过ieda工

2017-09-01 20:01:59 3022 2

原创 为什么我改用Spring boot

just run

2017-08-31 15:13:07 1308 1

原创 SQL:with as用法

WITH AS短语,也叫做子查询部分,定义一个SQL片断后,该SQL片断可以被整个SQL语句所用到。有的时候,with as是为了提高SQL语句的可读性,减少嵌套冗余。比如sql:with A as ( select * from user) select * from A, customer where customer.userid = user.id**这个sql语句

2017-08-31 14:38:37 18836

原创 关于xml的知识点

XML是一种成熟的技术,经常作为从一个平台到其他平台传输数据的标准。本文包含10道常见的XML知识点。这些知识点大部分在Java面试中会问到,同时在C,C++,Scala或其他语言的编程面试中同样很有用处。XML并不依赖于其他编程语言,同SQL一样是编程人员所需要的技能之一,因此在任何技术工作面试之前准备一些XML问题是很有意义的。1、XML是什么?XML即可扩展标记语言(Extensible Ma

2017-08-23 10:07:46 1133

原创 java面试题:Maven 和 ANT 有什么区别?

虽然两者功能上都是构建工具,都用于创建 Java 应用,但是 Maven 做的事情更多,在基于“约定优于配置”的概念下,提供标准的Java 项目结构,同时能为应用自动管理依赖(应用中所依赖的 JAR 文件),具体差异见下文。Ant仅仅是软件构建工具,而Maven的定位是软件项目管理和理解工具。Maven除了具备Ant的功能外,有以下主要的功能: 使用Project Object Model

2017-08-23 09:46:20 3888

原创 linux 修改目录文件下所有文件的权限

以下命令行修改指定目录下的所有文件的权限为全体可读、可修改、可执行 chmod -R 777 apache-tomcat-8.5.20/

2017-08-21 14:25:19 111456 4

原创 无法访问Eclipse启动的Tomcat容器中的项目

问题描述通过Eclipse启动tomcat候,访问启动的项目地址提示404错误,tomcat启动也不报错,容器中其他项目可以正常访问。问题原因这个问题很少见,如果你点开tomcat容器的项目文件夹(根据severce设置不同,这个路劲也会不同),发现无法访问的那个项目中没有web.xml这个文件,当然无法访问该项目地址了。可能原因有二: 1. 新建的项目默认不是标准的web项目 2. 项目的容器

2017-08-20 21:31:39 1035

原创 The given project is not a virtual component project

问题描述进行java开发的时候,我们有时候该项目无法添加到tomcat容器中。右键项目选择最下面的Properties查看项目属性,在Web Delpyment Assembly中,发现提示错误The given project is not a virtual component project。问题原因该项目不是一个web项目所以无法添加到tomcat容器中,导致该错误的原因可能是因为项目刚从别

2017-08-18 18:35:56 3552

原创 java中那些关于String的面试题

1、String是基本数据类型吗?String是java lang包下的一个类,不像基本数据类型int long等。 String是引用数据类型,不是基本数据类型。2、String是可变的吗?所谓不可变类,是指当创建了这个类的实例后,就不允许修改它的属性值。在java中,所有基本类型的包装类,如Integer和Long类,都是不可变类,java.lang.String也是不可变类,虽然他不是基本类

2017-08-18 18:20:01 1673

原创 java:获取异常的堆栈信息

做java开发的时候,经常会遇到代码抛异常后,需要把异常信息保存到数据库或者上传到云服务器做cache分析。这时候就需要获取异常的堆栈信息(详细错误信息)。有的人用e.getMessage()来获取异常信息,但是这样获取到的信息内容并不全,而且有时候为空。我们可以用下面方法来获取。 public static String getStackTrace(Throwable throwable)

2017-08-15 09:55:16 30340 2

原创 wait()和sleep()的区别

线程在wait 后,可以被另一个拥有相同线程锁对象的线程通过调用notify方法唤醒,而 sleep不行。wait和notify能正常执行的条件是(否则会抛异常):多个线程的代码,都包在synchronized块中,并且synchronized锁的对象需要是同一个。简而言之,多线程。当线程调用了wait方法后,就会进入等待状态,需要另外一个持有同一个线程锁的线程通过notify通知强锁。如果有多个线

2017-08-11 17:00:48 3116

原创 java填坑:三元操作符的类型不一致导致的问题

三元操作符是if-else的简化写法,我们在项目经常能用到他,但是有时候也容易出现问题,我们先看看下面这段代码: int i = 80; String str1 = String.valueOf(i < 100 ? 90 : 100); String str2 = String.valueOf(i < 100 ? 90 : 100.0); System.out.print

2017-08-10 17:47:11 2887

原创 java:竟然有会生成固定文字“hello world”的随机数

下面代码随机生成的文字竟然是固定内容的”hello world”。System.out.println(randomString(-229985452) + " " + randomString(-147909649));public static String randomString(int i){ Random ran = new Random(i); StringBuilder

2017-08-10 17:14:34 1404

原创 vue: WebStorm设置快速编译运行

WebSorm是一款优秀的前端开发工具,而Vue项目可以使用Node进行编译运行,平常我们可以通过命令行部署项目进行调试。本文介绍设置Webstorm进行快速部署Vue项目。第一步点击启动快捷按钮旁边的向下小箭头,在列表中选择Edit选项:第二步打开启动设置页面后,点击左上角的加号添加新的运行方式:第三步在弹出的选择框中,选择node.js启动模式:第四步在新打开的设置页面中,在红色圈中的地方设置如

2017-08-08 17:47:15 25133 5

原创 Vue.js更改调试地址端口号

Vue项目一般使用自带的脚手架工具vue-cli和webpack打包方式进行项目构建运行。开发中,我们在控制台输入命令行npm run dev部署项目后,默认开启的页面调试地址是8080端口。但是有时候我们在进行多个项目开发需要同时部署多个vue项目,甚至有的还需要启动后台项目,这时就需要修改Vue项目的启动端口(不然会报端口被占用的错误,一个端口号只能一个进程占用)。本文像大家讲解如何找到Vue项

2017-08-08 16:50:49 28273 1

原创 数据库优化:表的优化

一个好的数据库设计方案对于数据库的性能往往会起到事半功倍的效果。需要考虑数据冗余、查询和更新的速度、字段的数据类型是否合理等多方面的内容。1. 将字段很多的表分解成多个表(垂直分割)对于字段较多的表,如果有些字段的使用频率很低,则垂直分割该表,将原来的一个表分解为两个表。垂直分割遵循以下原则:把不常用的字段单独放在同一个表中把大字段独立放入一个表中把经常使用的字段放在一同一个表中2. 水平分

2017-07-31 15:17:39 3265

原创 Java基础面试题 (一)

1、面向对象的三个特征封装,继承,多态。这个应该是人人皆知,有时候也会加上抽象。2、多态的好处允许不同类对象对同一消息做出响应,即同一消息可以根据发送对象的不同而采用多种不同的行为方式(发送消息就是函数调用).主要有以下优点:可替换性:多态对已存在代码具有可替换性可扩充性:增加新的子类不影响已经存在的类结构接口性:多态是超类通过方法签名,向子类提供一个公共接口,由子类来完善或者重写它来实现的

2017-07-27 18:35:24 1169 2

原创 Base64编码

Base64编码要求把3个8位字节(3*8=24)转化为4个6位的字节(4*6=24),之后在6位的前面补两个0,形成8位一个字节的形式。 如果剩下的字符不足3个字节,则用0填充,输出字符使用’=’,因此编码后输出的文本末尾可能会出现1或2个’=’。   为了保证所输出的编码位可读字符,Base64制定了一个编码表,以便进行统一转换。编码表的大小为2^6=64,这也是Base64名称的由来。

2017-07-27 16:09:27 1005

原创 Java property 的加载读取

方法一Properties properties = new Properties(); InputStream stream = PropertiesUtil.class.getClassLoader().getResourceAsStream("setting.properties"); properties.load(stream); 方法二public static URL get

2017-07-10 16:50:51 2941

原创 类加载器:ClassLoader与Class的区别

1、类加载器java字节码(类)的加载是由虚拟机来完成的,虚拟机把描述类的Class文件加载到内存,并对数据进行校验、解析和初始化,最终形成能被java虚拟机直接使用的java类型,这就是虚拟机的类加载机制。JVM中用来完成上述功能的具体实现就是类加载器,类加载器读取.class字节码文件将其转换成java.lang.Class类的一个实例。每个实例表示一个java类。通过该实例的newInstan

2017-07-10 16:47:33 3499

Spring Boot实战

在当今Java EE 开发中,Spring 框架是当之无愧的王者。而Spring Boot 是Spring 主推的基于“习惯优于配置”的原则,让你能够快速搭建应用的框架,从而使得Java EE 开发变得异常简单。 JavaEE开发的颠覆者:Spring Boot实战从Spring 基础、Spring MVC 基础讲起,从而无难度地引入Spring Boot 的学习。涵盖使用Spring Boot 进行Java EE 开发的绝大数应用场景,包含:Web 开发、数据访问、安全控制、批处理、异步消息、系统集成、开发与部署、应用监控、分布式系统开发等。 当你学完本书后,你将能使用Spring Boot 解决Java EE 开发中所遇到的绝大多数问题。

2017-09-13

安卓柱状图表

安卓柱状图表

2016-12-23

一个绚丽的注册动画

一个绚丽的注册成功动画

2016-09-05

安卓仿电商商品详情中间部分滑动时页顶在顶部特效

现在很多电商类app的商品详情页(其他app也有类似效果,比如qq音乐)都有这么一种效果:在详情页面当用户向上滑动页面超过一定距离后,中间的标题栏会顶在顶部,往下拉回到固定高度又会消失。本demo可以实现该效果

2016-08-16

安卓自定义searcherView

一个简单的searcherView,使用简单,功能齐全

2016-07-19

listview万能适配器

一个通用的适配器`BaseCommAdapter<T>,非常简单,继承该`BaseCommAdapter<T>`,利用泛型传入item对应数据的javabean类,我们只需要重写3个方法即可(其中有一个还是构造方法)。

2016-06-28

一个酷炫的安卓加载动画

一个酷炫的安卓加载动画

2016-06-17

android利用注解精简代码

安卓开发通过注解精简代码,使用基类的完美封装

2016-06-05

自定义view

android自定义view,自定义属性的使用

2016-05-18

fragment俩种管理方式

可以实现对fragment的切换显示

2016-05-08

fragment使用封装

android对于Fragment操作的显示封装

2016-05-07

android_ormlite_jar包

android_ormlite_jar包

2016-05-04

Android使用ORMLite进行数据库操作

Android使用ORMLite进行数据库操作的简单教程

2016-05-04

安卓帧动画播放框架

安卓帧动画播放框架,完美解决OOM异常,播放200张图片无压力

2015-10-25

空空如也

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

TA关注的人

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