阅读更多

13顶
3踩

编程语言

原创新闻 Persistence4j 1.1发布,Java ORM框架

2010-09-07 16:39 by 副主编 just_cool 评论(29) 有10775人浏览

近日,Persistence4j 1.1版本发布了,它是一个小型、轻量级的 Java 对象持久层类库,实现关系数据库和 Java 对象之间的持久化。此版本主要是对bug的修复,点击查看更新详情:http://code.google.com/p/persistence4j/

 

Persistence4j的目标就是开发一款操作简单使用方便的Java ORM框架,秉承这一设计理念设计出的Persistence4j拥有及其简单的配置,其语法基于JDK 1.6中的注释,使用起来十分方便。

 

 

示例代码:

//First lets create a simple pojo which you like to persist.
@Entity(schema="library",table="book")
public class Book{
@Column(isPrimaryKey=true)
private String isbn;
@Column
private String title;
@Column
private int authorid;
public Book(){

}
public Book(String isbn, String title, int authorid){
  this.isbn = isbn;
  this.title = title;
  this.authorid = authorid;
}
// getters
}

DataProviderFactory dataProviderFactory = new DataProviderFactoryImpl(config);
String databaseName = "library";
String dbmsName = "mysql"
boolean isTransactional = false;
DataProvider dataProvider =  dataProviderFactory.getDataProvider(databaseName, dbmsName, isTransactional);

// Now lets create a object of Book class and persist it
Book book = new Book("123432","TestBook",5);
TransferUtil.registerClass(Book.class);
GenericDAO<Book> genericDAO = new GenericDaoImpl<Book>(dataProvider.getDataFetcher());

//Persist Book
genericDAO.createEntity(book);

//Remove Book
genericDAO.deleteEntity(book);

//Test if Entity Exists
genericDAO.isEntityExists(book);

// findByPrimaryKey
Object obj[] = new Object[1];
obj[0] = "123432";
genericDAO.findByPrimaryKey(Book.class, obj);

//If you want to use transactions.This how to get TransactionService.Make sure //isTransactional variable should be true and underlying dbms supports ACID.
TransactionService ts = dataProvider.getTransactionService();
try{
    ts.beginTransaction();
    genericDAO.createEntity(book);
    ts.commitTransaction();
}catch(Exception exp){
ts.rollbackTransaction();
}

// Check the GenericDAO interface for all the available methods..
You can extend GenericDAOImpl and override the methods and add your own methods.
13
3
评论 共 29 条 请登录后发表评论
29 楼 mimang2007110 2010-09-16 09:07
还真是没有用过这个框架,一直用的都是hibernate框架,了解一下
28 楼 caoyangx 2010-09-09 21:38
zxc005 写道
看了这么多还是感觉这个酷:http://code.google.com/p/siena/wiki/QuickStart

看了一下入门教程,说实话,这种实体继承数据操作的方法我不敢苟同,实体bean应该保持初期的作用,这样灵活性也很差,更容易产生意外的麻烦。
27 楼 caoyangx 2010-09-09 21:35
allskylove 写道
明白的人 一看就知道是一个业余水平的,没有入门级别的人写的框架。哈哈!哎,说句实话,别丢人了! 我敢说,作者本人都不知道为什么要写这个东西,这个东西有什么优势!

只能说你太不了解作者,这个框架已经很久了,你不会用,不代表别人不用。
26 楼 ideal46 2010-09-09 09:16
好多的新东西,wow
25 楼 wendal 2010-09-09 08:22
恩,又看到新的东西,哈哈!!
研究研究再发表评论,单单看简介/示例,并不能反映其全貌.
24 楼 vcok 2010-09-09 01:59
不论如何,作者的探索精神值得学习.毕竟不是每个人都能写的.我相信那些冷嘲热讽的人没有一个能写得出来.
23 楼 lyqiang 2010-09-08 21:57
框架不在于多,在于有个标准
22 楼 ray_linn 2010-09-08 18:55
感觉不就是microsoft的entity framework么。。
21 楼 keating 2010-09-08 15:18
我一直叫注解或者标注,从来不叫注释,太容易混了...
20 楼 keating 2010-09-08 15:17
zdmcjm 写道
看到用java代码操作的持久层,看到xxxDao,看到getXXX setXXX就想吐。

没人逼你写xxxDao,getXXX setXXX
19 楼 zxc005 2010-09-08 14:50
看了这么多还是感觉这个酷:http://code.google.com/p/siena/wiki/QuickStart
18 楼 zxc005 2010-09-08 14:15
看了这么多还是感觉这个酷:

http://code.google.com/p/siena/wiki/QuickStart
17 楼 kjj 2010-09-08 12:58
看起来一般般,特点在哪里,没有不同于hibernate
等的地方!!
16 楼 zdmcjm 2010-09-08 12:01
看到用java代码操作的持久层,看到xxxDao,看到getXXX setXXX就想吐。
15 楼 aninfeel 2010-09-08 10:48
算了,还是老老实实用jpa
14 楼 http4j 2010-09-08 10:29
不错,值得鼓励,毕竟基于JDK1.6的东西。JPA的支持和增强还是关键。另外这个project的主页似乎太简单了,就一个sample, 其他什么都没有。至少应该有一个diff, 去对比一下hibernate, toplink等等这些的不同, 人家为什么要使用你。既然1.1版, 还是有必要有些文档和tutorial的工作。
13 楼 benqend 2010-09-08 09:57
java 越来越悲哀
  泛而不精,多而不强

以后的java开发难倒要用大部分的时间在配置上?
12 楼 _j_ 2010-09-08 09:50
"其语法急于JDK 1.6中的注释使用起来十分方便"


基于

11 楼 kingwood2005 2010-09-08 09:50
学了英文,忘了中文
10 楼 pxlfxl2 2010-09-08 09:46
是注解吧,注释是啥?

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 我的程序人生 (一)学生时代

    题记:都说每个程序员的经历都可以出一本书,我想想我的经历,应该也能出一本书吧。所以,来回忆一下咯。正所谓,前事不忘,后事之师。先简单说一下自己吧,一名普通二本院校的本科生,家里来自普通农村,计算机专业,总之,背景是各种普通,平凡吧。但是,最终的我,一定是不普通不平凡的。(一)编码启蒙:大一,我是一名网瘾少年…记得大学asp(asp.net)这门课 挂了。这里尤其说说我的这门课吧,因为正是因为这门课...

  • 我的程序人生

    写了这么久的博客还从来没写过类似的文章,今天借此机会就写一篇吧。关于《新程序员》这本杂志我还没有看过全套的,以后有机会一定仔细拜读一下。今天借即将毕业之际来写一下我的程序人生的初始阶段,和大家聊一聊是怎样的契机让我称为一名程序员,聊一聊自己大学四年的时光以及自己技术之路的起起伏伏,分享一下自己的一些学习经验。第一次写类似的文章,不喜勿喷哈。同时谨以此文纪念自己的大学时光。

  • 我的程序人生·完全真实版

     再以这首《海边的阿蒂丽娜》作为开始,深恐我已忘年,文不如前!望着窗外,秋走冬来,好一个岁月无情,时不我待!虽然时不我待,依然 We are here,We are waiting... 是的,我们在这里,我们等待着...仅用本文回顾一下我这几年的程序路,同时聊以文字感谢一下我的朋友们、领导们、学生们![起点]昨夜风网站2002年,记得那是大学,有一天忽有想法,想把我的诗歌放到

  • 我的程序人生(一)

       “我的程序人生”这个标题,我相信很多人都写过。而我只想写自己的在IT行业打拼的故事,记录自己职业生涯的轨迹。这个轨迹包含着自己的成功和失败,只有不断寻觅自己轨迹,才能找到自己的未来。如果按照爱因斯坦的相对论来讲,未来只存在于过去。  我不知道这个世界真的有命运存在,但是我相信上帝为每个人都做了命运的安排,我选择IT纯属一些偶然,因为我在高中的时候,非常喜欢化学,化学在高考的时候几乎是满分

  • 我的大学梦——我的程序人生

          人生是一条漫长的路,我们每个人都是行路者,没有地图也没有路标,只能在黑暗中摸索着前进。“大学应该学什么”、“出国、读研还是工作”、“如何找到自己的人生理想”、“如何应对命运的挫折”、“人生真的可以走直线么”……青春有太多的岔路口,而那些失败的经历曾一次又一次浇熄前进的热情。    其实成功的青年偶像也曾经和我们一样默默无闻,也曾经遭受过命运的锤炼,也曾经在迷惘和挫折中徘徊:为了毕业

  • 我的程序人生(一)—— 今昔起步,共勉

    时光总是在不知不觉中就慢慢流逝,每一个人的青春都是如此,会走的很快,而且充斥者酸甜苦辣咸。 我是一名普通本科的大三学生,念的是软件工程专业,大学已经过了一半有余,我才猛然发现,自己已经21。这是我的第一篇博客,我想用它来总结一下我的大学两年,来谈谈大学这个让人充满迷茫、充满矛盾、充满挑战和选择的小社会。当然,这也许只是我个人的一些特有经历,和感受,但希望能通过他,给一些大一的,还在迷茫的同学们一...

  • 我的程序人生——初识代码,从学好C语言开始

    我正在参与CSDN《新程序员》有奖征文,本次活动的地址为:《新程序员》有奖征文 文章目录从学好C语言开始稀里糊涂就进入实验室从烙铁杀手到主要程序员竞赛中的坎坷大学中我的建议1. 绩点很重要2. 从事本专业或许是你最容易的选择 聊聊我自己吧,这一路是怎么走来的。 如果你有兴趣,我讲给你听。 从学好C语言开始 2011年,刚上大学的时候,大家还是很迷茫的。特别是大一的时候,面对十几门课程的时候,完全没有想法。 也不知道哪个重要,哪个不重要。唯一的做法就是雨露均沾,学习时间平均分配。 其中有一门课程就是《.

  • 雷军-我十年的程序员生涯

    最近,和UCWEB同事讨论,怎么才能把我们的UCWEB做到极致。我说,“手机上的平台非常多,如果想做好,需要足够多、足够优秀的程序员。优秀的程序员如何定义呢?首先必须热爱写程序,其次必须是一个完美主义者。只有这样的人,才能把事情做得极致。”     说着说着,我怀念起我过去写程序的日子,从1987年到1996年,那是一段阳光灿烂的日子。几年前我无意中从网上找到了1996年在金山西点BBS上写几篇

  • 雷军:如果程序人生的话,这条路太漫长

    这篇文章是在雷总个人博客看到的,里面聊到了他作为程序员的一些经历、初衷以及思考。写的不错,便转来给大家看看。-- 如果程序人生的话,这条路太漫长我并非天生喜欢写程序,上高中时也没有想过程...

  • 我的程序人生路

                                                                    我的程序人生路1996年5月写于金山西点BBS 【题记】 如果程序人生的话,这条路太漫长  我并非天生喜欢写程序,上高中时也没有想过程序员的生活。我学电脑非常偶然,小时好友上大学时选择了计算机系,为了和这个朋友有更多的共同语言,我也选择了计算机系,开始

  • Apollo 7.0行为预测模块升级:轨迹交互与评估器设计详解及其应用

    内容概要:本文详细解析了Apollo 7.0行为预测模块的关键升级点,主要包括新增的Inter-TNT模式、VECTORNET_EVALUATOR以及JOINTLY_PREDICTION_PLANNING_EVALUATOR。这些组件通过引入轨迹交互模拟、动态归一化、联合预测规划等创新机制,显著提高了障碍物轨迹预测的准确性和场景适应性。特别是在处理复杂交通场景如高速公路变道、十字路口交汇时表现出色。此外,文中还介绍了增量式特征更新机制的应用,有效减少了CPU占用,提升了系统的实时性能。 适用人群:适用于对自动驾驶技术感兴趣的开发者、研究人员和技术爱好者,尤其是那些希望深入了解Apollo平台行为预测模块工作原理的人群。 使用场景及目标:①帮助读者理解Apollo 7.0行为预测模块的技术细节;②指导开发者如何利用这些新技术提升自动驾驶系统的预测精度;③为研究者提供有价值的参考资料,促进相关领域的进一步探索。 其他说明:文章不仅提供了详细的代码解读,还包括了实际应用场景中的效果对比,使读者能够全面掌握新旧版本之间的差异。同时,附带的思维导图有助于快速理清各个子模块之间的调用关系和数据流向。

  • 基于S7-200 PLC与MCGS组态的智能交通灯控制系统设计及应用

    内容概要:本文详细介绍了利用西门子S7-200 PLC和MCGS组态软件构建智能交通灯控制系统的方法。首先阐述了系统的硬件配置,包括选用的PLC型号、输入输出设备及其具体的功能分配。接着深入探讨了梯形图编程的核心逻辑,如定时器嵌套、车流量检测与响应机制,确保红绿灯能够根据实际情况灵活调整。此外还讲解了MCGS组态界面的设计要点,通过图形化方式呈现交通状况并提供人机交互功能。最后分享了一些实际调试过程中遇到的问题及解决方案。 适合人群:从事工业自动化领域的工程师和技术人员,特别是对PLC编程和组态软件有一定了解的人群。 使用场景及目标:适用于城市交通管理部门或相关科研机构进行智能交通系统的研究与开发;旨在提高道路交叉口的通行效率,减少拥堵现象。 其他说明:文中不仅提供了详细的理论指导,还包括了许多实践经验教训,对于初学者来说非常有价值。同时提到一些进阶话题,如加入V2V通信模块的可能性,为未来研究指出了方向。

Global site tag (gtag.js) - Google Analytics