发现对hibernate的了解太少了

前几天赶工Virtualcampus,应用了一些hibernate的高级映射,比如<any>等。然后发现对unique, inverse, cascade的了解还是太少,基本上停留在会用工具生成代码的水平上,不知道怎么手写,对于性能上就更不懂了。刚翻出来hibernate_reference,补了一些东西。比如DetachedCriteria,  Bag和Set等等。

代码统计

  大一刚入这行的时候听李开复说过,一个美国计算机专业本科毕业生四年下来需要有100k行代码的积累,才能称得上是合格的。现在对我来说四年也快过去了,正好昨天有个师弟也提起了这个问题,顺便也统计一下~~

  大一的时候还是有个统计的,是10k,那时瞬间就没有信心完成100k这个量级了。于是后来也就没有算。

  大二年的项目,一个是工作室第一版的招新网(现在已经有了第二版,完全重写的,我做的虽然很难看,不过功能还算全了,BS项目的处子作,还是用.NET1.1 C#写的),一个是工作室的lily job(deprecated,技术与之相同)。现在这两个项目都死无全尸了。招新网大概是0.5k吧,lily job代码加上页面(页面代码除半计)差不多是2k。大作业有java(0.5),软工实践(0.5)、操作系统实践(1.2)、计算机组织结构实验实践(0.5)、数据库实践(0.2)、编译原理实践(1.2)。整个大二居然只写了6.6k的代码,真是惭愧。

  大三是比较高产的一年了,呵呵。从阳光教室第一版(0.5),到动力中心(6),然后是失败的vod(3)。第一个比较成功的项目cms(6),apis的初始版(2),在IBM实习的DITA(虽然只有0.2左右,但这可是精心打造的200行),作业倒不是很记得有什么了,软件设计(0.5),手持(0.5),linux(0.5),嵌入式(0.5),图形学(1), 其他(0.5)。这一年写了22K。
 
 大四上学期都干了什么我已然不是很记得了。apis写了3k左右以外,另外一个就是veryftp(2k)吧,virtualcampus到现在已经有了1k了。接下去还要写个2k左右。同时cardagent不知道会不会再写,还有veryftp的改进。这些加起来最多5k吧,呵呵。

所以总体算起来,四年来我最多写了10+6.6+22+13=51.6k。差不多是合格数量的一半,如果合格算是60分的话,本科四年我写的代码的分数只能打个31分了:-(

zz:Tomcat的中文乱码的经典解决方案

(转贴注:原来要用filter还有这么多的问题。要分别对待GET和POST方法。GET要在Connector里设好了URIEncoding(不是URLEncoding),今天被搞死了。。)

引言:
近期在做我们学校(华中科技大学)的注册中心的信息速递系统中又遇到了久违中文乱码的问题。由于注册中心的HUB系统需要团队开发完成,这导致中文 乱码问题尤为突出。万般无奈之下,硬下头皮寻根究底的找出问题的真正原因。皇天不负有心人,在查阅了N多资料和做了无数次试验之后,终于找到了个人认为较 为简单和经典的解决方案。
适用环境:
采用Tomcat 4.x或Tomcat 5.x,应用中出现中文乱码现象,且找不到统一的解决方案。
主要现象:
在应用中采用GET方式或POST方式时会出现中文乱码现象,而且针对这两种方式不能使用唯一的解决方案。一般您可能会使用以下的几种方案:
A.request.setCharacterEncoding(“gb2312”);
B.type = new String(type.getBytes(“ISO8859-1”), “GB2312”);
C.在Tomcat的配置文件Server.xml中的Connector标签中加入“URIEncoding=UTF-8”属性;
D.conf\web.xml 指定多个Encoding参数;
E.编写一个filter,处理Post提交的编码问题;
但有时候您可能会发现,这样做会让问题更糟糕。
问题分析:
要解决中文乱码的问题,首先要了解Tomcat在背后的处理机制,在查阅了许多资料以及许多前辈们写的文章并做了无数次试验之后,我找到了导致Tomcat中出现中文乱码的主要原因,即Tomcat对GET和POST两种方式的处理方法:在Tomcat 4.x时,采用的是GET和POST两种方式使用相同的字符集,也就是UTF-8。但在Tomcat 5.x下,GET和POST方式采用了不同的字符集
解决方案:
首先我想申明,我所给出的只是解决方案的一种,并不代表我给出的方案能解决大家所遇到的所有问题,但是有一点是肯定的,大家在同一个系统中必须使用相同的解决方案,如果可以最好统一您应用中各个组件包括数据库、JDK、WEB服务器等等的字符编码方案。
而我所采用的是下面的这种方案(只针对Tomcat):
Tomcat 4.x
1.页面编码采用“charset=gb2312”;
2.接收参数使用“request.setCharacterEncoding(“gb2312”);”;
3.如果需要在转换编码,如“type = new String(type.getBytes(“ISO8859-1”), “GB2312”);”;
Tomcat 5.x
1.在配置文件Server.xml的Connector标签中加入“useBodyEncodingForURI=”true””,这个属性主要 是让Tomcat 5.x在GET和POST方式使用相同的字符集。如果这样做仍不能解决问题,您可以尝试再加入另一个属性“URIEncoding=UTF-8”;
2.其他处理同Tomcat 4.x
以上方法可做参考,如果您有其他好的方法或觉得本文中有任何问题或遗漏欢迎批评斧正。

busy & happy

最近实在是懒得写spaces了。马上去开项目会了,还有十分钟无聊,写点吧。

现在手头有4个项目,1个毕论的任务。简直不是人过的日子啊。加上3月底已经干了一个月的活,实在有点吃不消了。上个周日第一次去爬了紫金山,来南京四年第一次上山顶,以前去过两次,中山植物园和中山陵,都没上去山顶-头陀岭。和LP很久没出去玩了,觉得出去晒晒太阳还是很好的~下次再去别的地方玩,呵呵~

马上开会了。。