
学习总结
文章平均质量分 68
wangpeng047
这个作者很懒,什么都没留下…
展开
-
MySql事务无法回滚的原因
使用MySQL时,如果发现事务无法回滚,但Hibernate、Spring、JDBC等配置又没有明显问题时,不要苦恼,先看看MySQL创建的表有没有问题,即表的类型。InnoDB和MyISAM是在使用MySQL最常用的两个表类型,各有优缺点,视具体应用而定。基本的差别为:MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持。MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不提供事务支持,而InnoDB提供事务支持已经外部键等高级数据库功能。原创 2014-07-31 14:29:12 · 15210 阅读 · 3 评论 -
初识Maven
Maven简介Maven是一个项目管理工具,它包含了一个项目对象模型(Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来定义生命周期阶段(Phase)中插件(plugin)目标(gole)的逻辑。当你使用Maven的时候,你用一个明确定义的项目对象原创 2013-08-17 23:15:18 · 4073 阅读 · 2 评论 -
Junit使用教程(四)
一、会用Spring测试套件的好处在开发基于Spring的应用时,如果你还直接使用Junit进行单元测试,那你就错过了Spring为我们所提供的饕餮大餐了。使用Junit直接进行单元测试有以下四大不足:1)导致多次Spring容器初始化问题根据JUnit测试方法的调用流程,每执行一个测试方法都会创建一个测试用例的实例并调用setUp()方法。由于一般情况下,我们在setUp()方法中初原创 2013-08-17 16:52:14 · 24853 阅读 · 7 评论 -
Junit使用教程(三)
四、实例总结1. 参数化测试有时一个测试方法,不同的参数值会产生不同的结果,那么我们为了测试全面,会把多个参数值都写出来并一一断言测试,这样有时难免费时费力,这是我们便可以采用参数化测试来解决这个问题。参数化测试就好比把一个“输入值,期望值”的集合传入给测试方法,达到一次性测试的目的。package test;import static org.junit.Assert.*;i原创 2013-07-30 18:24:40 · 18745 阅读 · 4 评论 -
Junit使用教程(一)
几乎所有程序员都听说过Junit的大名,但不知真正懂得运用它的人有多少,我便是其中的一个小白。知道Junit是用来测试的,但却把“宝刀”当成了“菜刀”用。为了从此不再菜鸟,特此总结整理了下Junit的知识点。一、建立Junit测试类1. 右击test测试包,选择New-->Oher... 2. 在窗口中找到Junit,选择Junit Test Case3. 输入名称(N原创 2013-07-30 15:09:29 · 78432 阅读 · 7 评论 -
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 · 20345 阅读 · 11 评论 -
hibernate注解(三)
我们继续介绍hibernate注解的相关内容1. OneToOne懒加载问题一对一注解时,若采用外键列进行实体的关联的话,懒加载问题是需要注意下的。如下:Student表:id int not nullname varchar(50) not nullcard_id int not nullCard表:id int not nullcard_no v原创 2013-05-31 14:16:54 · 16216 阅读 · 2 评论 -
Spring国际化实现
spring作为一个开源框架,对国际化自然提供了支持。说到国际化,有些人认为用处不大,那是因为仅仅从语言的角度考虑的。确实,如果仅简体中文就够了的话,没必要用国际化,但国际化另一特点特对我们来说非常有用。那就是提示信息的统一管理。我们可以将所有提示语都统一写在国际化资源文件里,而且它还支持动态传入参数,即可以写一个提示语模板,根据参数动态生成提示语。这样不但可以避免因为代码文件编码的原因造成的原创 2013-05-31 16:09:49 · 17262 阅读 · 3 评论 -
小问题大智慧
说到字符串比较,大家都知道,但你真的知道如何比较才是最正确的吗?不知道的人,几乎都是用以下方法来比较的String str = nullif (str == null || str.equals("")) {}这实际上是效率最低的,正确的做法是:String str = null;if (str == null || str.isEmpty()) {}但上述方法需要jd原创 2013-05-28 15:53:43 · 2395 阅读 · 3 评论 -
Spring Aop详尽教程
一、概念AOP(Aspect Oriented Programming):面向切面编程。面向切面编程(也叫面向方面编程),是目前软件开发中的一个热点,也是Spring框架中的一个重要内容。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。二、用途日志记录,性能统计,安全控制,权限管理,事务处理,异常处理,资原创 2013-01-30 19:07:15 · 40641 阅读 · 15 评论 -
Junit使用教程(二)
二、核心——断言断言是编写测试用例的核心实现方式,即期望值是多少,测试的结果是多少,以此来判断测试是否通过。1. 断言核心方法assertArrayEquals(expecteds, actuals)查看两个数组是否相等。assertEquals(expected, actual)查看两个对象是否相等。类似于字符串比较使用的equals()方法原创 2013-07-30 17:01:12 · 53118 阅读 · 4 评论 -
如何正确合理的设计一个接口项目
在手机广泛流行的今天,手机应用也随之越来越多,而且成长的速度也非常快。手机应用软件开发实现方式同普通PC软件一样,也分为BS和CS方式。而采用CS方式,在服务器端大多采用接口的形式提供数据交互(主流数据交互方式有:Json、WebService等),今天要说的就是如何设计接口。接口作为连通客户端与数据库进行数据流通的桥梁,起着举足轻重的作用,直接影响着程序的效率性、稳定性、可靠性以及数据的正确性、完整性。客户端注重的是界面美观,操作方便顺畅,是用户最直接的感受体验,而接口则是所有数据的提供者,是用户深层原创 2013-09-28 17:15:26 · 22442 阅读 · 1 评论 -
我为什么写博客
今天不谈技术,来说说我写博客的理由以及今后写博客的方向,以及自己的一点点想法。我至今为止写博客也有4年多的历程了(前两年在新浪),其实纵观我所有的文章,会发现我所有的文章都是以类似“教程、简介、心得、实例”的标题命名。我之所以会这么做完全是出于我写文章的目的:我希望我的文章能尽快帮助到大家,在浏览器搜索时更方便的查询到我的文章。而且我的文章内容大多是以技术分析、说明、使用方法、注意事项为主,这原创 2013-09-28 11:47:45 · 2597 阅读 · 11 评论 -
HttpURLConnection与HttpClient区别及联系
HTTP 协议可能是现在 Internet 上使用得最多、最重要的协议了,越来越多的 Java 应用程序需要直接通过 HTTP 协议来访问网络资源。在 JDK 的 java.net 包中已经提供了访问 HTTP 协议的基本功能:HttpURLConnection。 HttpURLConnection是java的标准类,HttpURLConnection继承自URLConnection,可用于转载 2014-03-31 15:33:22 · 10016 阅读 · 4 评论 -
Mysql无法创建外键的原因
在Mysql中创建外键时,经常会遇到问题而失败,这是因为Mysql中还有很多细节需要我们去留意,我自己总结并查阅资料后列出了以下几种常见原因。1. 两个字段的类型或者大小不严格匹配。例如,如果一个是int(10),那么外键也必须设置成int(10),而不是int(11),也不能是tinyint。另外,你还必须确定两个字段是否一个为 signed,而另一个又是unsigned(即:无符号),这两字段必须严格地一致匹配,更多关于signed和unsigned的信息,请参阅:http://www.verysi原创 2014-02-26 11:09:59 · 45490 阅读 · 10 评论 -
如何正确进行异常处理
你觉得自己是一个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 · 6047 阅读 · 6 评论 -
spring+mybatis 物理分页
新项目用的spring mvc 和 mybatis 分页。研究了一下,集众家之长然后形成现在的项目。我把分页部分剥离出来与大家分享。如有不妥的地方欢迎交流拍砖。单独做了一个小项目,放到了下载区,如果有用到的朋友可以去下载。本项目采用了拦截器,就是mybaits自带的plus功能。将每次select操作都进行拦截。项目架构如下:1:首先从cotroller层出发,转载 2013-12-27 19:39:32 · 9601 阅读 · 2 评论 -
mybatis与hibernate区别
以前没怎么用过mybatis,只知道与hibernate一样是个orm数据库框架。随着使用熟练度的增加,发现它与hibernate区别是非常大的,结合至今为止的经验,总结出以下几点:hibernate是全自动,而mybatis是半自动。hibernate完全可以通过对象关系模型实现对数据库的操作,拥有完整的JavaBean对象与数据库的映射结构来自动生成sql。而myb原创 2013-11-30 12:19:02 · 86052 阅读 · 18 评论 -
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 · 6478 阅读 · 6 评论 -
Java内部类详解(三)
首先,静态内部类实际上与普通类(即类名必须与文件名一样的顶级类)一样,只是静态内部类在某一类的内部定义了而已,既然是类,要想使用就必须实例化。概念上与静态变量、静态方法是不一样的,不要被“静态”两个字迷惑了(不要以为凡是静态的东西就不需要实例化就可以直接使用,静态内部类是有区别),而且只有静态内部类,而没有静态类(顶级类)的概念。例如,下面定义类是错误的:原创 2013-11-23 21:39:47 · 6685 阅读 · 3 评论 -
定时任务——表达式
Quartz cron 表达式的格式十分类似于 UNIX cron 格式,但还是有少许明显的区别。区别之一就是 Quartz 的格式向下支持到秒级别的计划,而 UNIX cron 计划仅支持至分钟级。许多我们的触发计划要基于秒级递增的(例如,每45秒),因此这是一个非常好的差异。在 UNIX cron 里,要执行的作业(或者说命令)是存放在 cron 表达式中的,在第六个域位置上。Quartz 用 cron 表达式存放执行计划。引用了 cron 表达式的CronTrigger 在计划的时间里会与 job原创 2013-10-28 21:34:04 · 22169 阅读 · 6 评论 -
写SQL要学会使用"执行计划"
能写SQL是程序员的基本功,而能写出性能优异的SQL是优秀程序员的必备技能。可那些性能好的SQL语句是怎么写出来的?难道他们了解数据库底层的东西吗?其实了解数据库原理是一方面,更快捷的是借助“执行计划”(Explain Plan)来分析SQL语句执行的步骤及过程。不同的数据库,使用执行计划的方式有些不同,本篇以MySql数据库为例。原创 2013-10-28 21:02:30 · 25436 阅读 · 3 评论 -
java处理时区的注意事项
说起java中的时间,大家或许都很熟悉,朗朗上口的Date、Calendar、SimpleDateFormat等。但是大家对他们的认识真的很深刻吗?今天我要想大家说的是TimeZone,即时区。经常有人发现时间不对,比如相差8个小时等等,其真实原因便是TimeZone。只有正确合理的运用TimeZone,才能保证系统时间无论何时都是准确的。影响TimeZone的因素:1. 操作系统的时原创 2013-01-31 23:30:31 · 35269 阅读 · 2 评论 -
寿星天文历Java版源码
这个月好忙,一直没时间弄“寿星天文历”,其实翻译早就在元旦弄完了,但始终没空做梳理整合,后来我考虑到一些朋友们或许需要原始版的寿星天文历Java代码,所以我还是先发一原始翻译的版本,大家自行根据需要去修改和封装。由于代码很多,所以我以文件的形式上传到了优快云资源库里,博文里就不贴了。这里需要说明的有几点:1. 我仅仅翻译了月历和气朔中定气的部分,不包括日月食、地方食、星历等。2.原创 2013-01-29 20:51:40 · 4335 阅读 · 2 评论 -
mongodb入门简介
一、基本概念MongoDB 是一个高性能,开源,无模式的文档型数据库,是当前NoSQL 数据库产品中最热门的一种。它在许多场景下可用于替代传统的关系型数据库或键/值存储方式,MongoDB 使用C++开发。MongoDB 的官方网站地址是:http://www.mongodb.org/,大家可以在此获得更详细的信息。MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据原创 2012-05-29 18:42:53 · 2832 阅读 · 7 评论 -
Map,Set,List区别
首先,大的分类: 1. Collection:一组各自独立的元素,即其内的每个位置仅持有一个元素。 List:以元素安插的次序来放置元素,不会重新排列。 Set:不接爱重复元素,它会使用自己内部的一个排列机制 2. Map:一群成对的key-value对象,即所持有的是key-value pairs。 Map中不能有重复的key,它拥有自己的内部排列机制。 元素类型都为Obje转载 2012-04-30 15:29:38 · 1389 阅读 · 0 评论 -
多思考
4月份,我开始带着七期做项目,七期的能力跟我想象中的还是有些差距,知识的广度上有了,但是在实际项目中应用的广度上却要差很多,最主要的弊端就是体现在“思考”二字上。思考不是说的思想,思想上,作为提高班的学生并不欠缺,而欠缺的是自身对知识的理解和消化。很多东西,其实在学习的过程中都认识到了,可是到实际应用中却怎么也体现不出来,那种“稚嫩”的天真行为很明显。虽然都知道一个项目的实现,不是仅功能实原创 2012-04-30 15:05:26 · 2112 阅读 · 10 评论 -
初识jbpm(二)
在了解到jbpm的点和线后,接下来就要说说jbpm的内部结构和执行原理了。先来看看下面的整体图● 内部结构:1. ProcessDefinition流程定义:定义流程规则。比如请假流程、办公流程、申报流程等。2. ProcessInstance流程实例:按照流程定义的规则来流转的具体信息。比如张三的请假单、张三的办公单或信息、张三的申报单等。signal方法:按定义原创 2012-04-27 19:09:42 · 1421 阅读 · 2 评论 -
初识jbpm(一)
jbpm,即主流的工作流之一,在OA里面是一大重要内容,共占到60%,在大型企业项目中也是经常要用到的主要模块,因此在学习过程中,必须要高度重视起来,以下就是学习内容梳理性的总结。工作流,即“业务过程的部分或整体在计算机应用环境下的自动化”。它主要解决的是“使在多个参与者之间按照某种预定义的规则传递文档、信息或任务的过程自动进行,从而实现某个预期的业务目标,或者促使此目标的实现”。(百度百科)原创 2012-04-24 16:46:09 · 1180 阅读 · 6 评论 -
权限管理二进制算法
权限管理在一个系统中是不可或缺的,一个成熟的系统框架必然含有一个完善的权限管理机制,笔者初次尝试设计权限管理框架,了解到普遍采用二进制算法方式实现的,这里总结一下分享给大家。其实关于二进制算法,说白了就是运用了“按位与”、“按位或”、“按位异或”运算,下面看看这个例子 public void testBinary() { // 判断是否有权限 String binaryVal =原创 2012-03-31 22:10:19 · 6592 阅读 · 7 评论 -
录视频的那点感想
就在昨天,漫长的“持久战”终于结束了,“抗战”一个月后圆满(大概吧)结束。当然仗打完了,接下来必然会抒发下战后感言了。以前学习一直是再看别人的视频,虽然心想以后如果当个老师的话,未来的某一天也许就会站在他们的高度上去给学生讲课,但怎么也没想到这一天竟然来的这么快,老实说,现在的自己真谈不上什么有什么高水平,不过是在专研和掌握某种技术上有着自己的一套方法,离讲师的高度还是望尘莫及,距离=天涯海角原创 2012-03-08 13:00:36 · 2624 阅读 · 15 评论 -
技术成长的三个月(更新中)
在这三个月中,我的技术和经验呈现了爆发式的增长,经过这段时间的历练,让我深刻理解了什么是“企业级”项目开发,以及“企业级”的项目管理。让我从一个不因世事的小孩进化为一个企业级的员工。坚持提高班的学习理念,为了日后的成长、技术的积累、经验的沉淀,因此写了本篇比较系统全面的技术经验性总结。由于内容较多,特此写了目录,并且本篇博文只起到一个提纲的作用,具体内容将会分为多个博文进行详细讲解,这里仅给出各个原创 2011-12-28 11:59:20 · 2509 阅读 · 2 评论 -
Ubuntu操作系统下修改应用软件提示框背景色
ubuntu下eclipse提示框背景色为黑色看起来很不舒服,这是因为eclipse默认使用系统的主题,ubuntu11.10 以前的版本可以通过 系统设置>外观>修改主题 自定义颜色来修改。但ubuntu11.10版本以后便不再提供直接修改主题的接口,只能修改文件:/usr/share/themes/Ambiance/gtk-2.0/gtkrc(注意:Ambiance是主题文件夹名,请根据自己系原创 2012-05-07 15:34:37 · 1780 阅读 · 5 评论 -
如何从List集合中删除对象
这个问题看似好像挺简单挺幼稚的,然而就这个幼稚的问题还曾经困扰过我一阵呢,其实犯这个错误的根本原因是我们对于基础知识的理解和掌握上还有不足的表现,基本功有些人总是觉得不重要,认为更多的扩大学习的广度才是最重要的,我认为这是很容易犯的,同时也是很致命的错误观点!对基础知识掌握不牢靠,或理解不深刻,写出的代码必然会有40%的概率是错误的、低效的,一段代码不是说没有编译错误就一定是对的,不是说简单的原创 2012-05-22 14:34:16 · 67648 阅读 · 16 评论 -
log4j.xml实例
tomcat/webapps/myProject/WEB-INF/log4j.xml:转载 2012-05-22 18:14:46 · 1840 阅读 · 8 评论 -
Spring Aop实例
在上篇博文中,我向大家介绍了Aop重要概念和教程,这回给出代码示例。一、XML方式1. TestAspect:切面类package com.spring.aop;import org.aspectj.lang.JoinPoint;import org.aspectj.lang.ProceedingJoinPoint;public class TestAspect { pu原创 2013-01-31 21:48:20 · 83457 阅读 · 24 评论 -
2012年度总结
2012,我的本命年已经是过去时了,在这一年中,发生了太多太多,从学校到工作,从工作到家庭,别人2到4年的时光,全部让我在一年就经历了,如此的速度,让我自己都觉得很惊讶。1月:我从北京实习而归5月:我正式走向了社会,有了真正的第一份工作9月:我去了第二家公司,结果让我大跌眼镜10月:我完成了自己的终身大事,与我爱的人走上了婚礼的教堂10月底:我找到了第三家公司,也是我现在任职的原创 2013-02-26 21:30:53 · 1229 阅读 · 5 评论 -
java代码长度不能大于65535字节的解决办法
由于java虚拟机的限制,在java中变量、方法的代码长度是不能大于65535字节的,针对此问题我总结了相关的解决办法。1. 数据库这是最为传统的,也是大多数人第一想到到的办法了。2. 文件这其实是替代数据库的另一种方法了。3. 类将复杂的类细化为多个类。4. 方法将复杂的方法细化为多个方法。其实,介绍这四种方案并不是我本篇想要说的重点,而是要从程序性能的角度来原创 2012-12-31 17:23:04 · 14202 阅读 · 3 评论 -
那点随心的感慨
我这人很少爱表达自己的感情,所以博客里也几乎没有哪篇文章是讨论感情的,不过技术文章这多了,发现偶尔转换下文章风格也有点意思。最近我的情况不是很好,处在左右为难的境地。工作不是很顺利,总是在换工作找工作的,心里也属实有些烦躁了,在一家公司没待多长时间就赶上裁员,虽然客观因素是主因,但自身也是有原因的,反复思量最终还是归究于经验不足。想想去家小公司可能会好点,结果更是让我大跌眼睛,憋了一肚子火。到原创 2012-11-01 13:34:47 · 1401 阅读 · 10 评论 -
老师——再生父母
曾几何时,我是一个天不怕地不怕的坏小孩,是一个每天充满理想、梦想、幻想的傻男孩,是一个什么事都不懂的小毛孩。而这一切,从我遇见米老师的那一刻起,就都改变了。现在,我有了爱人,有了房子,更有了好的工作......没有米老师,不可能塑造出现在的我,是米老师给了我新的人生、新的生命。在我成功、幸福的背后,洒满了老师血与泪铺成的道路,在我写完每一篇博客后,始终都有一位最忠实的读者,在我优异的工作表现背原创 2012-07-31 23:39:24 · 2387 阅读 · 4 评论