华丽的痘痘

努力成为一个有价值的程序员

2009年07月04日

翻译 理解JPA,第二部分:JPA中的关系


     你用JAVA写的web程序非常依赖于数据之间的关系,如果你处理不好的话,结果将会变得非常糟糕。在这篇文章中,作者将向你展示,如何利用JPA的标注,在面向对象代码与关系数据之间创建一个透明的接口。最终的数据关系将会更容易管理,并且更具备可移植性。
     数据对于任何一个应用程序来讲都是必不可少的,而数据之间存在的关系也具有同样的重要性。关系型数据库能够支持数据表之间的各种关系,并且还要满足完整性约束。
     在这个系列文章的下半部分中,你将了解到如何使用JPA以及Java 5的标注来按照面向对象的方式处理数据间的关系。这篇文章面向的读者是那些掌握了基本的JPA概念,了解一般的关系型数据库编程,以及那些想要更深入地了 解使用JPA来进行面向对象的关系设计的人们。对于JPA的简单介绍,请参考本系列文章的上半部分 。一个现实生活中的例子
     假设有一家名叫XYZ的公司,为它的顾客提供5中商品,分别是A、B、C、D、E。顾客可以自由的同时订购多种商品(可以享受折扣优惠),也可以订购单一 的商品。在订购商品的时候顾客不用付阅读全文>

发表于 @ 2009年07月04日 18:23:00|评论(loading...)|举报|收藏

翻译 理解JPA,第一部分:面向对象的数据持久化方案


很多JAVA项目在处理数据持久化的时候,都努力想寻找一种很自然的面向对象的方式。JPA ,作为JSR220的一个产物,提供了一种标准化的操作方式。这个介绍JPA的系列文章一共有2部分,在第一部分里,您将了解到JPA是如何使得数据持久化操作融入到你的面向对象架构当中的。 Why JPA ?     对于许多JAVA开发者来说,都会问到同一个问题:“为什么要推出JPA , 既然Hibernate和Toplink等技术已经非常成熟,我为什么还要学习JPA?”答案很简单,JPA并不是一项新技术,更确切地说,它综合了 Hibernate、Toplink和JDO等各种数据持久化技术的精髓,从而产生一个标准的规范来处理数据持久层,这样就不依赖任何一个特定的产品提供 商。
    不管你是否喜欢,数据都是任何一个应用程序中不可缺少的一部分,尤其是哪些面向对象的应用程序。JAVA程序员在处理数据持久层的时候,比较传统的方式是 写一些复杂的SQL查询语句,但是随着应用程序规模的不断增长,这些内容会使得程序变得难以管理。如果能够用面向对象的方式来处理这些查询,充分运用阅读全文>

发表于 @ 2009年07月04日 12:50:00|评论(loading...)|举报|收藏

2009年04月03日

原创 将数字格式设置为文本格式,并使其出现左上角绿色小三角


    ActiveCell.NumberFormatLocal = "@"
    ActiveCell.FormulaR1C1 = ActiveCell.Formula
    ActiveCell.Offset(1).Select阅读全文>

发表于 @ 2009年04月03日 09:54:00|评论(loading...)|举报|收藏

2009年01月22日

翻译 火车票:绝不是闹着玩的


    所以胡锦涛主席不得不指示铁道部长,对于火车票的出售应该更有秩序。对于中国之外的其他读者可能会感到奇怪,一个管理着13亿人民的国家主席,居然会去过 问火车票出售这种细节问题?但是在中国,特别是春节前夕,这绝对是个巨大的问题,并且引起了社会的强烈不满,由于经济危机,社会上失业人口剧增,所以政府 对此事特别关注。在这个被定义为“地球上最大规模的人口迁移”中,中国人都要回家过新年(或者叫春节,这个概念很早以前由中共提出,目的是清除遗留的封建 思想,比如阴历的新年)。包括政府官员在内的每一个人都清楚,春运买票难这一问题的根源在于腐败。铁道部官员、售票员还有黄牛党合谋买下大量的火车票,然 后再高价卖出。这种事情每年都发生,并且这似乎是中国最难解决的问题之一。其实要解决这一问题很容易。正如 Danwei 网站报道的,春节回家旅行中的噩梦般遭遇已经被总结为一些黑色幽默(如下图)。

一个比较有代表性的笑话说:过年了,北京的一个商人非常想回到他的家乡郑州(中国腐败比较严重的河南省的省会,本地官员就是法律,根本没有国法,地方官员派遣一些流氓常驻北京,阻止有阅读全文>

发表于 @ 2009年01月22日 16:43:00|评论(loading...)|举报|收藏

2008年10月03日

原创 初学遗传算法,一个练手的小程序

    最近研究了一下遗传算法,挺有意思的,在一个老外的网站上看到了这个小例子,比较有趣,自己用java实现了一下(老外是用c++实现的)。
    问题:有10张纸牌,编号分别是1到10,现在要将这10张纸牌分为2堆,其中一堆求和为36,另一堆求积为360,问应该怎么分?(也就是说,最终的结果应该是:一堆为2+7+8+9+10=36,另一堆为1*3*4*5*6=360。当然,如果修改题目中的参数,改为32和360,那么结果就是2+3+4+6+7+10=32 和 1*5*8*9=360)
原文地址:http://www.codeproject.com/KB/recipes/Genetic_Algorithm.aspx
另外,这个算法不保证每次都有结果,一般多运行几次是会得到结果的,当然,如果本身无解,那自阅读全文>

发表于 @ 2008年10月03日 20:32:00|评论(loading...)|举报|收藏

2008年09月05日

转载  JAVA文件操作类和文件夹的操作(转帖)

JAVA文件操作类和文件夹的操作阅读全文>

发表于 @ 2008年09月05日 00:11:00|评论(loading...)|举报|收藏

2008年09月04日

转载 大型网站架构演变和知识体系(转载)

大型网站架构演变和知识体系阅读全文>

发表于 @ 2008年09月04日 09:46:00|评论(loading...)|举报|收藏

2008年09月03日

转载 Hibernian中各种保存方法的区别(转载)

原文地址如下:http://www.blogjava.net/dreamstone/archive/2007/07/29/133071.html


hibernate的保存
hibernate对于对象的保存提供了太多的方法,他们之间有很多不同,这里细说一下,以便区别:
一、预备知识:
在所有之前,说明一下,对于hibernate,它的对象有三种状态,transient、persistent、detached
下边是常见的翻译办法:
transient:瞬态或者自由态
persistent:持久化状态
detached:脱管状态或者游离态
脱管状态的实例可以通过调用save()、persist()或者saveOrUpdate()方法进行持久化。
持久化实例可以通过调用 delete()变成脱管状态。通过get()或load()方法得到的实例都是持久化阅读全文>

发表于 @ 2008年09月03日 22:26:00|评论(loading...)|举报|收藏

Csdn Blog version 3.1a
Copyright © 华丽的痘痘