» 阅读全文
一个不安分的程序员对技术和商业的思考...
Written by shine on 2008, December 26, 11:03 AM
» 阅读全文
Written by shine on 2008, December 3, 4:54 PM
Hibernate是一个流行的Java对象关系映射框架,grails的数据访问层GORM就是建立在Hibernate的基础上。Hibernate 能够根据配置自动生成sql语句,使得程序员可以随心所欲的使用对象编程思维来操纵数据库。然而如果使用不当,往往容易造成性能问题,例如N+1次查询问 题。在开发过程中,常常需要通过查看Hibernate生成的SQL来对数据访问层进行调优。Grails使用了Log4j作为日志组件,因此可以像传统 的基于Hibernate的Java项目那样,通过配置Log4j来达到输出Hibernate SQL Log的功能,这里就不再详述。Grails提供了两种更加简单的方法:
1.修改config.groovy文件中的log4j configuration,把hibernate="off"改成hibernate="on",这样就可以输出Hibernate运行的详细日志,包括SQL Log。
2. 一般情况下,我们不需要方法1输出的详细的日志,仅仅需要输出SQL Log,可以DataSource.groovy中的数据库环境配置(environment specific settings),例如在development的dataSource中添加logSql = true即可。
- // environment specific settings
- environments {
- development {
- dataSource {
- dbCreate = "update"
- url = "jdbc:hsqldb:mem:devDB"
- logSql = true
- }
- }
- }
Written by shine on 2008, November 27, 4:40 PM
grails为开发者提供了一个controller列表的默认主页,在开发时用起来确实很方便,但总不能把它用到产品环境下吧。可是在grails- app/views下面怎么找不到这个文件,也没有哪个controller和主页相关?实际上这个默认的主页独立放在web-app下,文件名是 index.gsp。
» 阅读全文
Written by shine on 2008, November 26, 4:29 PM
使用ORM时,常常碰到N+1次查询的问题。hibernate采用立即加载(eager load)和延迟加载(lazy load)来解决这一问题,GROM建立在Hibernate的基础之上,理论上同样适用。但事实如何?
» 阅读全文
Written by shine on 2008, November 19, 4:22 PM
由于java语言的局限性,实现一个rails-like的Java开发框架一直是一个难题。在Java上想体验Rails-like的开发模式,只能选 择grails或者jruby on Rails。然而这两种框架都是动态语言实现的框架,只是基于JVM而不是基于Java语言本身。动态语言确实有很多优点,但往往难以调试。是否有一个 Java语言实现的Rails-like框架?答案是Play!
» 阅读全文