DAO的设计-使用泛型来避免重复DAO

DAO的全称是Data Access Object数据访问接口。数据访问:顾名思义就是与数据库打交道。夹在业务逻辑与数据库资源中间。

我大二时候写的一个小型管理系统,那时候老师开始强调分层和MVC的思想,当时我将DAO层分了开来,把所有与数据库的交互操作封装成对应的DAO类,这样最大的好处 是实现了封装和隔离,方便系统的迁移和重构。

分层、封装、接口化是一种基本的解决思路,无论是TCP/IP协议族,还是软件工程,都是很值得使用的方案。

那么接下来的问题就是DAO类的设计,我当时遇到的问题就是DAO类之间存在大量的冗余代码,用敏捷的角度来思考,这绝对是不允许存在的。

讲相同的方法抽象出来,这也是最常见的解决方案,最简单的例子就是函数的产生,其实也是对程序的一种抽象和提炼,避免冗余,达到复用效果。

在Java1.5出来之前,用Object来操作对象,实现方法复用,就可以达到上面的目的,但是,存在类型安全的问题。Java1.5提出了泛型的概念,类似与C+ +中的Template,Java运行环境帮助会检查类型的安全。

这里有一篇IBM资料库的文章,详细阐述了泛型在DAO设计的使用「不要重复DAO」<more ...


禁止WordPress自动替换半角标点符号【转】

转载自「禁止WordPress自动替换半角标点符号 - 布语博客」<点击这里打开>

Wordpress虽好,可毛病也不少,今天发现WordPress会将半角标点符号自动转换成全角的,但并没有替换数据库里的信息,真搞不明白开发团队是怎么想的, 现将解决方法记录如下。

1、 编辑 wp-includes/formatting.php 文件,找到以下代码:

// static strings
$curl = str_replace($static_characters, $static_replacements, $curl);
// regular expressions
$curl = preg_replace($dynamic_characters, $dynamic_replacements, $curl);

正是 str_replace() 和 preg_replace() 两个函数在作怪。

2、 将相应语句注释,禁用自动替换功能:

// static strings
//$curl = str_replace($static_characters, $static_replacements, $curl);
// regular expressions
//$curl = preg_replace ...
more ...

WP速度小优化

今天实在无法忍受WP的速度,打开速度在10s-15s左右,好几个朋友反映,我咨询了一下小张,发现同一台服务器的网站速度都不错,那就是我的设置问题了。

参考了一下几篇速度优化博文,也对自己的博进行了简单的优化。

我没木木和万戈那样的本事,能几乎不用插件自己修改代码,我仅仅能稍微禁用一些插件,界面用的iNove,也不想做太多的改变。

我用FireBug查看了一下同服务器的其他网站,人家的连接数甚至高达80+,速度还比我快,我仔细检查,发现一些cnzz图片读取比较耗时。我在iNove的界面 下修改了end.php的代码,换上了文字代码,而不用去cnzz获取图片。

这样一来,似乎速度快了点。

我又删除了饭否的图片,这几天饭否也访问不了,留了也显示不出来。

我留下12个插件,分别是:Akismet, CodeColorer, Dagon Design Sitemap Generator, Google XML Sitemaps, Mail To Commenter, Shutter Reloaded, Super Switch, WordPress Related Posts, WP-PageNavi ...

more ...

保险中介从业人员资格考试复习大纲

由于一个不可阻挡的原因,我需要参见这次的保险中介从业人员资格考试,我7月25号回学校,1 8号考试,这段时间都不放过我,崩溃了。

想想我也挺惨的,我记性一向不好,本身又是计算机专业,让我背那么一大本书。。。

我认为树形结构的体系记忆起来比较容易,就想去找考试复习大纲,果然Google到一个

保险代理从业人员基本资格考试大纲.doc<more ...


成功的定义

最近在看《我的青春谁做主》,其中有一集是老太太和青楚讲成功的定义,我听了挺有感触,摘录如下:

现在社会上给人灌输的成功观念太单一,你们年轻人追求的无外乎就是赚钱、成名,给自己贴上成功的标签。千篇一律,千人一面。这是典型的唯结果论。

其实不是所有得到的结果都成功,也不是没有结果就失败。从我自己的体验来说,成功藏在过程里,将来回头看,乐趣肯定不在最后撞线的那一下。结果就像是买东西的赠品,有 了算白赚,没有也没什么

我觉得这几句话很淳朴,但的确很有道理,和大家分享了。

more ...

MySQL Command Line Client乱码问题及解决方案

以前用MySQL时候都是可视化界面,如MySQL Admin使用,现在学着使用MySQL Command Line client,初次接触,就遇到乱码问题。

乱码是中文字符串的,Google后,找到一些解决方案。摘录如下:

引用自今天去祸害哪家的闺女呢?<猛击这里打开>

1:改变数据库的默认编码配置,在MYSQL的安装目录中,找到my.ini,修改默认编

码为:default-character-set=utf8

2:建立数据库时,CREATE DATABASE ms_db CHARACTER SET utf8 COLLATE

utf8_general_ci;

3:执行脚本:指定编码格式set names utf8(注意,不是UTF-8)

4:如果你采用的是外部接入的方式,在连接中确定请求的编码格式如:

jdbc:mysql://localhost:3306 /ms_db?

useUnicode ...

more ...

推荐一个美食博客

还记得小当家的那句话:料理是给人带来幸福和满足感的(大意啦)

今天搜索皮蛋瘦肉粥时候发现了这个博客「地瓜的厨房笔记」<猛击这里打开>,光是看到这些图片 就让我很感动,相当羡慕博主的老公,太享受了。

粗粗浏览一遍,好多好多各种口味的美食,过程详细,而且插图都很漂亮的说。

博主貌似是在新加坡,看到一大推烹调工具。

烹调果然是一门高雅的艺术。。。fighting!!!

想当初要是不读计算机,我也厨师去了。。。

more ...


贴吧小结报告

终于完成了这个贴吧系统,虽然还有很多地方不完善,但是却包含了我很多心血和精力,也实践了我的很多想法。

具体的不说了,稍微说一下开发使用的技术:Java、Struts2、Hibernate、OGNL、Eclipse、Tomcat、MySQL、AJAX、jQue ry、SVN、UP开发模式、UML。

之中学习了很多内容,我恨兴奋,说起来这是我第一个完整写的一个网站系统,之前的asp啊,asp.NET多多少少借鉴了别人的代码。

终于知道其实资历代表着经验,很多东西只有自己试过才知道怎么做,这一块我太欠缺了,对于JaveEE开发,也终于开始有了接触,寒假回家3个星期,应该在Java的 本质技术上合Hibernate高级内容、设计模式上花时间了。

09_11_16 Update:

今天又check out了一下,然后加入About和Links,当初贴吧在课程设计之后就没有完善,现在加上这两个模块,也就能release了。

相关链接:

项目在Google Code托管 (你可以check out,不知道游客有没有权限,需要可以Mail我)

相关开发博客链接

more ...

Eclipse代码统计插件

贴吧快完成主要功能了,想统计一下代码量,找到这么一个插件

我 自己试用了一下,发现需要注意两个地方:1.必须在JAVA透视图下使用才能有效;2.必须为项目的选项下的Metrics选择启动Metrics才能统 计;3.这个插件原意是分析代码质量、复杂性的,在分析结果中包含了代码量统计。4.只统计java代码,不统计jsp文件。

最后,Metrics可以以图形化的形式显示包的依赖关系,很好玩,大家可以试试。

转载自:三亩地<猛击这里打开>,谢谢作者

***以下为原文*****

Metrics插件可以从多个角度对Eclipse中的代码进行统计:

metrics

官方网站http://metrics.sourceforge.net/

添加方法:Run Eclipse, go to Help menu -> Software Updates -> Find and Install ... On the opening dialog choose ...

more ...