仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 496|回复: 10
打印 上一主题 下一主题

[学习教程] 发布一篇精晓Grails: GORM - 风趣的称号,严厉的手艺

[复制链接]
透明 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:08:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
到时我们不用学struts,不用学spring,不用学Hibernate,只要能把jsf学会了,完全可以替代所有的框架,包括AJAX,都知道AJAX并不是新技术,虽说我没深入学习jsf但我认为jsf应该已经能通过其它技术替代AJAX,实现无缝刷新。
在上个月开篇的精晓Grails文章中,先容了名为Grails的新Web框架。Grails分离了最新的实践,比方模子-视图-把持器的存眷点断绝和商定优于设置。经由过程将这些理论与个中内置的scaffolding功效分离,利用Grails只需花几分钟就可以创建并运转起一个Web站点。
这篇文章的重点是利用Grails能够完成简化的另外一范畴:利用Grail对象干系映照(GrailsObjectRelationalMapping,GORM)API举行耐久化。我将起首先容甚么是对象干系映照器(object-relationalmapper,ORM),和怎样创立一对多干系。然后将进修数据考证(确保使用程序不会呈现无用信息输出/无用信息输入(garbagein/garbageout)成绩)。然后将看到怎样利用GrailsORM的领域特定言语(domain-specificlanguage,DSL),利用DSL语句可以在幕后对一般的旧Groovy对象(plainoldGroovyobjects,POGO)的耐久化体例举行微调。最初,将看到可以轻松地切换到另外一个干系数据库。任何有JDBC驱动程序和Hibernae方言的数据库都受撑持。
ORM界说
干系数据库呈现于20世纪70年月末,可是软件开辟职员至今仍然在追求无效的办法来存进和掏出数据。现今软件的基本并非多半盛行数据库所利用的干系实际,而是基于面向对象的准绳。
为此发生了一整套称为ORM的程序,用来减缓在数据库和面向对象的代码之间往返转移数据的疾苦。Hibernate、TopLink和Java耐久性API(JavaPersistenceAPI,JPA)是处置这一成绩的三个盛行的JavaAPI(请参阅参考材料),不外它们都其实不完善。这个成绩云云耐久(不是存心一语双关,而是实情),以致于有了本人公用的术语对象干系阻抗掉谐(请参阅参考材料)。
GORM是在Hibernate上的一层薄薄的Groovy层。(我猜“Gibernate”不像“GORM”那样简单上口)。这意味着现有的一切Hibernate技能仍旧有效—比方,HBM映照文件和标注失掉周全撑持—但这篇文章的重点是GORM带来的风趣功效。
创立一对多干系
关于将POGO保留到数据库表所面对的应战,很简单被低估。实践上,假如只是将一个POGO映照到一个表,那末事情相称复杂—POGO的属性刚好映照到表列。可是当对象模子稍稍变庞大一点,比方有两个相互相干的POGO,那末事变将很快变得坚苦起来。
比方,请看上个月文章中入手下手的游览计划网站。明显,TripPOGO在使用程序中有主要的感化。请在文本编纂器中翻开grails-app/domain/Trip.groovy(如清单1所示):
清单1.Trip类
classTrip{
 Stringname
 Stringcity
 DatestartDate
 DateendDate
 Stringpurpose
 Stringnotes
}
清单1中的每一个属性都轻松大度地映照到Trip表中的对应字段。还记得在上一期的文章中说过,在Grail启动时,一切存储在grails-app/domain目次下的POGO城市主动创立对应的表。默许情形下,Grails利用内嵌的HSQLDB数据库,可是到本文停止时,就可以够利用本人喜好的其他恣意干系数据库。
路程中常常要包括航行,以是还应当创立一个Airline类(如清单2所示):
清单2.Airline类
classAirline{
 Stringname
 Stringurl
 StringfrequentFlyer
 Stringnotes
}
<p>
首先java功能强大的背后是其复杂性,就拿web来说,当今流行的框架有很多,什么struts,spring,jQuery等等,而这无疑增加了java的复杂性。
只想知道 该用户已被删除
沙发
发表于 2015-1-20 14:54:15 | 只看该作者
关于设计模式的资料,还是向大家推荐banq的网站 [url]http://www.ckuyun.com/[/url],他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。
admin 该用户已被删除
板凳
发表于 2015-1-25 09:40:23 | 只看该作者
你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。
飘灵儿 该用户已被删除
地板
发表于 2015-1-26 05:13:16 | 只看该作者
J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。
若天明 该用户已被删除
5#
发表于 2015-1-27 13:39:56 | 只看该作者
在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
老尸 该用户已被删除
6#
发表于 2015-2-3 12:24:33 | 只看该作者
不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。
金色的骷髅 该用户已被删除
7#
发表于 2015-2-8 23:04:12 | 只看该作者
科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
柔情似水 该用户已被删除
8#
发表于 2015-2-26 12:27:11 | 只看该作者
自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。
爱飞 该用户已被删除
9#
发表于 2015-3-8 14:55:18 | 只看该作者
吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧
不帅 该用户已被删除
10#
发表于 2015-3-16 02:33:19 | 只看该作者
是一种将安全性(Security)列为第一优先考虑的语言
兰色精灵 该用户已被删除
11#
发表于 2015-3-22 18:39:50 | 只看该作者
接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-15 05:24

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表