- 博客(117)
- 资源 (6)
- 收藏
- 关注
原创 Eclipse查找替换巧妙技巧用法
用Eclipse时,查找替换,可能是我们经常用的工具,但大多数只是查找替换简单的单词文本(如查找替换warnings),但遇到复杂的情况时,大多数人可能就手工改了。例如:/* */ public class Configuration/* */ {/* */ private List contexts;/* */ private List cl
2014-12-18 13:03:06
26090
6
原创 SpringMVC验证框架Validation特殊用法
基本用法不说了,网上例子很多,这里主要介绍下比较特殊情况下使用的方法。1. 分组有的时候,我们对一个实体类需要有多中验证方式,在不同的情况下使用不同验证方式,比如说对于一个实体类来的id来说,保存的时候是不需要的,对于更新时是必须的,可以如下配置:2. 组序列默认情况下,不同组别的约束验证是无序的,然而在某些情况下,约束验证的顺序却很重要,如下面两个例子:(1)第二个组中的约束验证依赖于一个稳定状态来运行,而这个稳定状态是由第一个组来进行验证的。(2)某个组的验证比较耗时,CPU 和内存的使用率相对
2014-12-11 13:00:21
81128
8
原创 SpringMVC验证框架Validation自定义注解实现传递参数到国际化资源文件
关于SpringMVC验证框架Validation的使用方法,不是本篇的重点,可参见博文SpringMVC介绍之Validation在使用Validation时,一定有朋友遇到过一个问题,那就是:无法传递参数到国际化资源文件properties错误描述中。
2014-12-04 16:24:40
29595
5
原创 寿星天文历Java封装整理版
由于生活和工作的原因,“寿星天文历”我一直没有动,长时间的丢弃后,当重新拾起时,比较费劲。编程就是这样,思维的火花只在当初的那一瞬,一旦熄灭,重新再点燃断掉的思维是很困难的。因为人的“忘记”能力,真的是挺强的,有时回顾或维护以前的代码时,常常会感叹道:这是我写的吗?够牛逼,看不懂!呵呵,这时候注释的作用的凸显出来了,尽管如此有时仅仅靠注释找以前的思路也是很困难。跑题了,那么,首先对于等着“寿星天文历”封装整理版代码的各位,说声抱歉。这回整理的代码,修复了部分小bug和线程安全问题,同时整理的结构更易于理解
2014-08-14 16:39:52
9761
9
原创 MySql事务无法回滚的原因
使用MySQL时,如果发现事务无法回滚,但Hibernate、Spring、JDBC等配置又没有明显问题时,不要苦恼,先看看MySQL创建的表有没有问题,即表的类型。InnoDB和MyISAM是在使用MySQL最常用的两个表类型,各有优缺点,视具体应用而定。基本的差别为:MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持。MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不提供事务支持,而InnoDB提供事务支持已经外部键等高级数据库功能。
2014-07-31 14:29:12
15133
3
原创 Java使用HttpURLConnection上传文件
从普通Web页面上传文件很简单,只需要在form标签叫上enctype="multipart/form-data"即可,剩余工作便都交给浏览器去完成数据收集并发送Http请求。但是如果没有页面的话要怎么上传文件呢?由于脱离了浏览器的环境,我们就要自己去完成数据的收集并发送请求,所以就很麻烦了。首先我们来写个JSP页面并看看浏览器发出的Http请求是什么样的
2014-07-31 12:51:49
65784
13
原创 Java如何获取Content-Type的文件类型Mime Type
在Http请求中,有时需要知道Content-Type类型,尤其是上传文件时,更为重要,虽然有些办法可以解决,但都不太准确或者繁琐,索性我发现一个开源的类库能够解决相对完美的解决这个问题,它就是jMimeMagic。
2014-07-30 16:50:13
32341
3
转载 HttpURLConnection与HttpClient区别及联系
HTTP 协议可能是现在 Internet 上使用得最多、最重要的协议了,越来越多的 Java 应用程序需要直接通过 HTTP 协议来访问网络资源。在 JDK 的 java.net 包中已经提供了访问 HTTP 协议的基本功能:HttpURLConnection。 HttpURLConnection是java的标准类,HttpURLConnection继承自URLConnection,可用于
2014-03-31 15:33:22
9971
4
原创 Junit测试用例配置Log4j
用Junit测试非常方便,但有时我们想要看日志来方便排除,使用spring+log4j时,用Junit测试看日志很多人都不太会,即如何将Junit与log4j进行整合。我也是研究了半天,才终于找到了方法,特此拿来与大家分享下。Junit+spring+log4j整合之所以麻烦,是因为spring与log4j的整合,是放在web.xml里的,随tomcat启动后,spring才会加载log4
2014-03-31 15:03:24
43438
9
原创 连接MySql超时断开报错问题
使用Mysql数据库时,最让人头疼的一个问题就是不定时会出现连接报错异常Exception,类似的Exception如下(Hibernate为例):org.hibernate.util.JDBCExceptionReporter - SQL Error:0, SQLState: 08S01org.hibernate.util.JDBCExceptionReporter - The last
2014-03-31 12:13:11
11598
1
原创 HttpClient使用详解
Http协议的重要性相信不用我多说了,HttpClient相比传统JDK自带的URLConnection,增加了易用性和灵活性(具体区别,日后我们再讨论),它不仅是客户端发送Http请求变得容易,而且也方便了开发人员测试接口(基于Http协议的),即提高了开发的效率,也方便提高代码的健壮性。因此熟练掌握HttpClient是很重要的必修内容,掌握HttpClient后,相信对于Http协议的了解会更加深入。一、简介HttpClient是Apache Jakarta Common下的子项目,用来提供高效的
2014-02-28 11:04:29
885863
92
原创 Thumbnailator使用简介
Thumbnailator是一个非常好的图片开源工具,使用起来很方便,不过文档不是非常全面,如果遇到问题的话,有时也是不好解决的,我之前研究过,所以分享下经验,以便大家使用时更顺手些。之前文章中Java图片处理开源框架已说明的功能我这里不再重复了。场景一:图片尺寸不变,修改图片文件类型
2014-02-26 16:13:27
43591
14
原创 Mysql无法创建外键的原因
在Mysql中创建外键时,经常会遇到问题而失败,这是因为Mysql中还有很多细节需要我们去留意,我自己总结并查阅资料后列出了以下几种常见原因。1. 两个字段的类型或者大小不严格匹配。例如,如果一个是int(10),那么外键也必须设置成int(10),而不是int(11),也不能是tinyint。另外,你还必须确定两个字段是否一个为 signed,而另一个又是unsigned(即:无符号),这两字段必须严格地一致匹配,更多关于signed和unsigned的信息,请参阅:http://www.verysi
2014-02-26 11:09:59
45165
10
原创 Hibernate @OneToOne懒加载实现解决方案
在hibernate注解(三)中,我提高过一对一(@OneToOne)懒加载失效的问题。虽然给出了解决方法,但并没有给出完整的解决方案。今天我专门针对该问题进行讨论。至于懒加载失效的原因,在之前的文章中已经我已经叙述过了,就不再重复了,不明白的可以去看看。
2014-02-25 17:16:14
20529
1
原创 如何正确进行异常处理
你觉得自己是一个Java专家吗?是否肯定自己已经全面掌握了Java的异常处理机制?在下面这段代码中,你能够迅速找出异常处理的六个问题吗? OutputStreamWriter out = ... java.sql.Connection conn = ... try { // ⑸ Statement stat = conn.createStatement(); ResultSet rs = stat.executeQuery( "select uid, name from user")
2013-12-27 20:18:02
6011
6
原创 MyBatis分页返回数据不对问题
使用mybatis的分页时,一定要注意使用方法。当表关系为一对多、多对多时,普通直接分页是有问题的,例如:一个老师有多个学生,假设每个老师有2个学生,一共有15名老师,此时分页查询老师,每页显示10条。然而查询到的结果是:每页老师只有5名,一共有3页。
2013-12-27 20:05:31
13826
7
转载 spring+mybatis 物理分页
新项目用的spring mvc 和 mybatis 分页。研究了一下,集众家之长然后形成现在的项目。我把分页部分剥离出来与大家分享。如有不妥的地方欢迎交流拍砖。单独做了一个小项目,放到了下载区,如果有用到的朋友可以去下载。本项目采用了拦截器,就是mybaits自带的plus功能。将每次select操作都进行拦截。项目架构如下:1:首先从cotroller层出发,
2013-12-27 19:39:32
9522
2
原创 Java图片处理开源框架
图片处理是当今软件开发中非常重要的一环,然而处理图片的开源框架却并不多。现金网上流传的Java处理图片的代码,虽然可对图片进行简单处理,但效果并不理想。虽然也有些其他解决方案,但都摆脱不了繁琐,使用起来十分不方便。为了解决这个问题,我也是在网上找了好久,看了很多资料,功夫不负有心人,最终找到了一个处理图片十分棒的开源框架。特此拿出来与大家分享。Thumbnailator 是一个优秀的图片处理的Google开源Java类库。处理效果远比Java API的好。从API提供现有的图像文件和图像对象的类中简
2013-12-27 17:55:52
57822
11
转载 Maven核心之pom详解
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0http://maven.apache.org/maven-v4
2013-11-30 16:03:16
6199
6
原创 浅谈mybatis优缺点
通过上篇介绍mybatis与hibernate区别,我们已经能得出一些mybatis的优缺点,但那只是相对于hibernate的,并不全面,我来继续总结mybatis的优缺点,以便大家对于mybatis的了解能更全面些。但我所说的优缺点,仅是我个人总结并结合使用体验后得出的结果,并不能代表大众想法,因此才以“浅谈”作为文章标题。如果大家的见解与我不同,欢迎积极提出来一块讨论,我也借以弥补自己认识的不足和短见。
2013-11-30 14:24:35
76817
27
原创 mybatis与hibernate区别
以前没怎么用过mybatis,只知道与hibernate一样是个orm数据库框架。随着使用熟练度的增加,发现它与hibernate区别是非常大的,结合至今为止的经验,总结出以下几点:hibernate是全自动,而mybatis是半自动。hibernate完全可以通过对象关系模型实现对数据库的操作,拥有完整的JavaBean对象与数据库的映射结构来自动生成sql。而myb
2013-11-30 12:19:02
85921
18
原创 Java内部类详解(三)
首先,静态内部类实际上与普通类(即类名必须与文件名一样的顶级类)一样,只是静态内部类在某一类的内部定义了而已,既然是类,要想使用就必须实例化。概念上与静态变量、静态方法是不一样的,不要被“静态”两个字迷惑了(不要以为凡是静态的东西就不需要实例化就可以直接使用,静态内部类是有区别),而且只有静态内部类,而没有静态类(顶级类)的概念。例如,下面定义类是错误的:
2013-11-23 21:39:47
6639
3
原创 定时任务——表达式
Quartz cron 表达式的格式十分类似于 UNIX cron 格式,但还是有少许明显的区别。区别之一就是 Quartz 的格式向下支持到秒级别的计划,而 UNIX cron 计划仅支持至分钟级。许多我们的触发计划要基于秒级递增的(例如,每45秒),因此这是一个非常好的差异。在 UNIX cron 里,要执行的作业(或者说命令)是存放在 cron 表达式中的,在第六个域位置上。Quartz 用 cron 表达式存放执行计划。引用了 cron 表达式的CronTrigger 在计划的时间里会与 job
2013-10-28 21:34:04
21645
6
原创 写SQL要学会使用"执行计划"
能写SQL是程序员的基本功,而能写出性能优异的SQL是优秀程序员的必备技能。可那些性能好的SQL语句是怎么写出来的?难道他们了解数据库底层的东西吗?其实了解数据库原理是一方面,更快捷的是借助“执行计划”(Explain Plan)来分析SQL语句执行的步骤及过程。不同的数据库,使用执行计划的方式有些不同,本篇以MySql数据库为例。
2013-10-28 21:02:30
25319
3
原创 Java内部类详解(一)
很多人对于Java内部类(Inner Class)都十分陌生,甚至听都没听过也没有使用过,内部类在Java中其实是比较重要的一块内容,掌握好这门知识对于编程来说,犹如插上一对翅膀。
2013-10-26 20:54:50
3993
1
原创 Hibernate占位符问题[use named parameters or JPA-style positional parameters instead.]
hibernate 4.1之后对于HQL中查询参数的占位符做了改进,如果仍然用老式的占位符会有类似如下的告警信息:[main] WARN [org.hibernate.hql.internal.ast.HqlSqlWalker] – [DEPRECATION] Encountered positional parameter near line 1, column 95. Positional parameter are considered deprecated; use named paramet
2013-09-29 16:08:56
25815
15
原创 hibernate之c3p0连接池配置详解
数据库连接池,项目中一旦配置好后一般很少改动,所以很多人并没有细细的研究过(有时甚至是运维的人负责配置),其实这个知识点还是很重要的,所以我在这里总结分享下,需要用到的时候拿出来看看就可以啦。这里我们介绍的是c3p0的配置方式。
2013-09-28 18:54:52
6547
2
原创 如何正确合理的设计一个接口项目
在手机广泛流行的今天,手机应用也随之越来越多,而且成长的速度也非常快。手机应用软件开发实现方式同普通PC软件一样,也分为BS和CS方式。而采用CS方式,在服务器端大多采用接口的形式提供数据交互(主流数据交互方式有:Json、WebService等),今天要说的就是如何设计接口。接口作为连通客户端与数据库进行数据流通的桥梁,起着举足轻重的作用,直接影响着程序的效率性、稳定性、可靠性以及数据的正确性、完整性。客户端注重的是界面美观,操作方便顺畅,是用户最直接的感受体验,而接口则是所有数据的提供者,是用户深层
2013-09-28 17:15:26
22161
1
原创 我为什么写博客
今天不谈技术,来说说我写博客的理由以及今后写博客的方向,以及自己的一点点想法。我至今为止写博客也有4年多的历程了(前两年在新浪),其实纵观我所有的文章,会发现我所有的文章都是以类似“教程、简介、心得、实例”的标题命名。我之所以会这么做完全是出于我写文章的目的:我希望我的文章能尽快帮助到大家,在浏览器搜索时更方便的查询到我的文章。而且我的文章内容大多是以技术分析、说明、使用方法、注意事项为主,这
2013-09-28 11:47:45
2559
11
原创 初识Maven
Maven简介Maven是一个项目管理工具,它包含了一个项目对象模型(Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来定义生命周期阶段(Phase)中插件(plugin)目标(gole)的逻辑。当你使用Maven的时候,你用一个明确定义的项目对象
2013-08-17 23:15:18
4043
2
原创 Junit使用教程(四)
一、会用Spring测试套件的好处在开发基于Spring的应用时,如果你还直接使用Junit进行单元测试,那你就错过了Spring为我们所提供的饕餮大餐了。使用Junit直接进行单元测试有以下四大不足:1)导致多次Spring容器初始化问题根据JUnit测试方法的调用流程,每执行一个测试方法都会创建一个测试用例的实例并调用setUp()方法。由于一般情况下,我们在setUp()方法中初
2013-08-17 16:52:14
24789
7
原创 Junit使用教程(三)
四、实例总结1. 参数化测试有时一个测试方法,不同的参数值会产生不同的结果,那么我们为了测试全面,会把多个参数值都写出来并一一断言测试,这样有时难免费时费力,这是我们便可以采用参数化测试来解决这个问题。参数化测试就好比把一个“输入值,期望值”的集合传入给测试方法,达到一次性测试的目的。package test;import static org.junit.Assert.*;i
2013-07-30 18:24:40
18640
4
原创 Junit使用教程(二)
二、核心——断言断言是编写测试用例的核心实现方式,即期望值是多少,测试的结果是多少,以此来判断测试是否通过。1. 断言核心方法assertArrayEquals(expecteds, actuals)查看两个数组是否相等。assertEquals(expected, actual)查看两个对象是否相等。类似于字符串比较使用的equals()方法
2013-07-30 17:01:12
52854
4
原创 Junit使用教程(一)
几乎所有程序员都听说过Junit的大名,但不知真正懂得运用它的人有多少,我便是其中的一个小白。知道Junit是用来测试的,但却把“宝刀”当成了“菜刀”用。为了从此不再菜鸟,特此总结整理了下Junit的知识点。一、建立Junit测试类1. 右击test测试包,选择New-->Oher... 2. 在窗口中找到Junit,选择Junit Test Case3. 输入名称(N
2013-07-30 15:09:29
78356
7
原创 HQL使用小技巧——混合SQL
偶然间发现HQL一个非常有意思的用法,拿来分享下。示例如下:1. student数据库表(MySQL)CREATE TABLE `student` ( `ID` int(11) NOT NULL, `NAMES` varchar(50) NOT NULL, `AGE` int(3) NOT NULL, PRIMARY KEY (`ID`)) ENGINE=InnoDB
2013-07-30 11:48:59
7609
原创 Spring Aop异常处理
在Spring Aop实例的文章中,我向大家介绍了Spring Aop的相关知识,今天我进一步细化下Aop中异常处理的相关知识。 public void doThrowing(JoinPoint jp, Throwable ex) { System.out.println("method " + jp.getTarget().getClass().getName() + "." + jp.
2013-06-30 15:57:02
5114
1
原创 MyEclipse常用插件使用教程
一、Findbugs1. 配置1.1 打开FindBugs视图:Windows => Show View => Other… => FindBugs => Bug Info 、Bug Explorer、Bug Reviews1.2 配置FindBugs选择你的项目=>右键 => Properties => FindBugs => 选中“Run automatically”
2013-06-30 14:44:41
20286
11
原创 ibatis传递日期Date参数
这本来是一个简单的问题,但是在网上查阅了半天也没找到结果,最后阅读官方文档后,终于找到了方法。其实非常简单,只需要在接口方法参数上加上@Param注解。另外如果需要传递多个参数时,可以使用该注解来实现。例子:public List selectTeacher(@Param(value="id") String id, @Param(value="sex") String sex,
2013-06-29 22:44:18
15653
1
原创 静态变量缓存需要注意的事
在项目过程中,我们有时经常喜欢用静态变量(static)来缓存一些不便的公共数据,但是这么做有一点需要注意:静态变量的保护。由于一些因素(比如查询数据库),我们无法对静态变量加上final属性,因此如果静态变量暴漏后,如果有对静态变量写操作(即修改变量)的话,很可能会引起意想不到的错误。当然平时我们用缓存几乎都是读取操作,所以这个问题不容易引起我们的注意。例子说明:package te
2013-06-29 21:59:36
12174
1
Spring动态切换多数据源Demo
2015-02-03
寿星天文历Java封装整理版
2014-08-14
Java获取MIME开源类库jmimemagic-0.1.2.jar
2014-07-30
寿星天文历Java版源码
2013-01-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人