摘要: Mybatis分页插件请使用这位帅哥开发的, 看起来不错.https://github.com/miemiedev/mybatis-paginatorMybatis3.0出来已有段时间了,其实自己挺喜欢这样的一个持久化框架的,因为它简单实用,学习成本低。Mybatis3.0在整体结构上和ibatis... 阅读全文
posted @ 2011-08-09 14:07 海鸟 阅读(52970) 评论(16) 推荐(4) 编辑
摘要: 记得刚学jdbc的时候,总有这么一条语句:Class.forName("com.mysql.jdbc.Driver");DriverManager.getConnection(url,name,password);第一条语句是向DriverManager注册jdbc驱动,在加载Driver类时会执行里面的如下静态代码块:static { try { java.sql.DriverManager.registerDriver(new Driver()); } catch (SQLException E) { throw new RuntimeExcepti... 阅读全文
posted @ 2011-08-09 14:02 海鸟 阅读(635) 评论(0) 推荐(0) 编辑
摘要: 毕业也有4年了,做了也有几个不大不小的项目,不停的coding,不停的思考,每做完一个项目,总感觉没有做好,想重头再来,其实这就是一种进步,想法有变化了,总结每个项目在设计上有哪些欠缺,下次应该注意哪些陷井。在这里想总结下一些自己的经验,并提出一些疑问,希望大家能一起探讨。 每个新项目开始阶段,显然是每个程序员最兴奋,最有抱负的阶段,总想做出个很NB,很有成就感的项目。这时候做为项目技术负责人,架构师也好,技术经理也好,也要考验自己综合能力的时候。在技术选型上,在团队合作开发方式上,在团队结构组成上,都要在这个时候列出计划,有产出文档。特别是以java语言开发的项目,在这个java开源框架、工 阅读全文
posted @ 2011-08-09 14:02 海鸟 阅读(557) 评论(0) 推荐(0) 编辑
摘要: 本机环境:ubuntu9.10 ruby1.87 rails 2.2.2 mysql 5.1 step 1: 从http://www.tmtm.org/en/mysql/ruby/下载 mysql-ruby-2.X.tar.gz step 2: 解压后,cd 到当前目录,运行 : ruby extconf.rb 如果报错: no such file to load -- mkmf (LoadError) from extconf.rb:1 则运行 :sudo apt-get install ruby1.8-dev step 3: 运行 : ruby extconf.rb --with-mysq 阅读全文
posted @ 2011-08-09 14:01 海鸟 阅读(471) 评论(0) 推荐(0) 编辑
摘要: 之前给国内一家综合性金融公司开发wap版系统。上线用手机内测时发现网站显示特别慢。然后感觉是页面大小太大导致下载消耗时间较多,因为手机浏览带宽本身就很小。可是之后访问了下“空中网”等其它wap站点后,发现它们的页面也不会比我们的小,但是速度却快多了。比如访问我们的首页要6-8秒,可是它们只需要2秒左右即可完全渲染。当在电脑上用oper测试(用一些限速工具把服务的上传速度限制为1K/s,这样可以模拟手机的慢网速)时,发现我们开发的网站渲染时间也不慢。一旦用真机测试,时间就长了很多。可是在手机上没有相关工具软件(像httpwatch)监控时间耗在哪里了。好在公司以前有一款产品,可以用USB接在电. 阅读全文
posted @ 2011-08-09 14:00 海鸟 阅读(428) 评论(0) 推荐(0) 编辑
摘要: 这个有“标题党”之嫌了。名字但是像模像样。关于网页爬虫(就是抓取网页内容)的小工具大家都写过吧。可是一般写这样的东西都是类似完成某个简单的需求而写的类似脚本语言的东西,一般代码不多,类似黑客程序代码风格。大家应该没有做过大型项目全部以抓取网页内容为数据源吧?我就做过这样的项目,呵呵。如果真是一个多人合作,周期较长,又是一个产品型的项目,需要维护,升级,那代码就不是一次性的了。得有点企业开发的代码风格。如果数据源都是要从网页抓取的话,开发就很装简单了,先通过URLConnection之类的api得到网页内容,再用正则表达式分析出里面有用的内容。就这么简单。可是如果是一个项目,页面上千个,而且,. 阅读全文
posted @ 2011-08-09 13:59 海鸟 阅读(256) 评论(0) 推荐(0) 编辑
摘要: 请参考原文:http://lihongfu-84.blog.163.com/blog/static/82703042011026114150801/step 1: 右键工程:Run as ---> open run dialog设置启动类 :org.jivesoftware.openfire.starter.ServerStarterstep 2: 设置启动参数加上这句:-DopenfireHome="${workspace_loc:openfire}/target/openfirestep 3: 选中"User Entries" ---> Advan 阅读全文
posted @ 2011-08-09 13:55 海鸟 阅读(524) 评论(0) 推荐(0) 编辑
摘要: sasl在很多场景中都有用到,如xmpp,pop3等等。详细协议可参见:ietf(SASL)在j2se中,大家如果平时做网络方面的工作时如果要用到身份认证这一块的可以使用sasl协议。 大概使用比较简单:public class AuthMain { /** * @param args * @throws SaslException */ public static void main(String[] args) throws SaslException { Map<String, String> props = new TreeMap<String, String> 阅读全文
posted @ 2011-08-09 13:54 海鸟 阅读(1979) 评论(0) 推荐(0) 编辑
摘要: 大家都知道,平时我们要用到的集合大部分是List和Set。集合,在数学严格定义上讲,具有以下三个特征:确定性:集合中的元素应该是确定的,不能模棱两可。互异性:集合中的元素应该是互不相同的,相同的元素在集合中只能算作一个。无序性:集合中的元素是无次序关系的。 根据上面三个特征,所以我觉得Set才是真正意义上的集合概念。而List(可以有重复的元素)最多只能算是一个容器,把具有一致性的东西都可以装在里面。至于“确定性”和“无序性”,这里不讨论。那都是数学上的抽象概念。我们这里只讨论集合中元素的唯一性问题。其实集合的存在,就是对集合一系列的操作,比如数学上我们有相交,相并,补集的概念。而具体到程序里 阅读全文
posted @ 2011-08-09 13:53 海鸟 阅读(1404) 评论(0) 推荐(0) 编辑
摘要: 红黑树的作用大 家都知道“树结构”在整个数据结构是比较重要的一种,它既有线性表的查找速度,也有链表结构的插入删除性能。不错,理想中的平衡二叉树确实这样,但是现实 中情况并不总这样如意。如果一组数据比较有序,如递增,或递减的出现,那整个树将变得极其不平衡起来,假如我们现在的一组数据 是:2,4,45,65,76,形成的树如下图:这种树其实已经是一种链表结构了,查找复杂度为O(n)。或许你想到办法了,对,就是这样。树变得不平衡了,我们必需使之再平衡起来。这就是笔者这篇文章要说的问题:平衡二叉树,有时也叫红黑树。平衡规则:每个结点不是红色就是黑色(这也是红黑树来由)根结点总是黑色的如果父结点是红色, 阅读全文
posted @ 2011-08-09 13:49 海鸟 阅读(1113) 评论(0) 推荐(0) 编辑