`
chinacq
  • 浏览: 37209 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

grails框架直接使用sql语句

 
阅读更多
    Grails自带了一些查询方法,或者使用hsql语句来进行查询,但是有些时候我们需要执行原生态的sql语句查询,不管该查询是否能进行,执行原生态的sql语句还是有它的好处的,不过具体情况 也得分分情况 。

    有人建议在程序里面直接创建一个数据库连接,然后执行查询,其实可以直接使用默认的数据源:

        需要导入包:

import groovy.sql.Sql
import org.codehaus.groovy.grails.commons.ApplicationHolder
import org.springframework.context.ApplicationContext

        查询代码:

      ApplicationContext ctx = (ApplicationContext) ApplicationHolder.getApplication().getMainContext();
      def dataSource = ctx.getBean('dataSource');
      def sql = new Sql(dataSource);
      String strSql = "select count( a.controll_plane_id) , palne_time from (select id, palne_time,controll_plane_id FROM  plane_time  where true group by palne_time, controll_plane_id,palne_time_status) a group by palne_time";

      sql.eachRow(strSql) {
  println it
      }
这样就能直接输出结果了.
[count( a.controll_plane_id):2, palne_time:2011-08-01]
[count( a.controll_plane_id):2, palne_time:2011-08-02]
[count( a.controll_plane_id):2, palne_time:2011-08-03]
[count( a.controll_plane_id):4, palne_time:2011-08-04]
[count( a.controll_plane_id):1, palne_time:2011-08-05]
[count( a.controll_plane_id):1, palne_time:2011-08-06]
[count( a.controll_plane_id):1, palne_time:2011-08-12]
[count( a.controll_plane_id):1, palne_time:2011-08-18]
0
1
分享到:
评论
3 楼 chinacq 2011-09-02  
1楼的弟兄,你 的
def dataSource = ctx.getBean('dataSource');
def sql = new Sql(dataSource);
这里的dataSource对象是一个单例,运行的时候会时不时的报一个错,解决的方法是将
def dataSource 是controll里进行注明,因为grails框架是基于spring的,它会进行依赖注入的。
如果那东西真的是你写的,非常感谢你提供的代码。
2 楼 feiyan35488 2011-09-02  
直接使用 spring jdbctemplate 不就得了,哪有这么复杂。不累啊
1 楼 vottot 2011-09-02  
我写的嘛,楼主不厚道啊,也不注明哈来源:
http://hi.baidu.com/vottot/blog/item/be4849a7bdb31b98d143589e.html

相关推荐

    the definitive guide to grails 2

    通过GORM(Grails Object Relational Mapping),Grails提供了自动的ORM支持,使得开发者无需编写复杂的SQL语句即可实现数据的持久化操作。 #### Controllers(控制器) 控制器(Controllers)负责处理来自用户的...

    Grails1.1中文文档.rar

    2. **GORM(Grails Object-Relational Mapping)**:这是Grails内置的数据持久化框架,允许开发者使用领域模型对象直接操作数据库,无需编写SQL语句。GORM支持关系型数据库,如MySQL、PostgreSQL,同时也支持NoSQL...

    Grails案例

    - CRUD操作:Grails自动生成了保存和创建新记录的方法,如`save()`,开发者无需编写复杂的SQL语句。 3. **读取数据(Read)** - 查询:GORM提供了丰富的查询API,如`findAll()`, `findOne()`, `findById()`, `...

    grails学习

    这将输出 SQL 查询语句及其参数,便于调试和性能优化。 8. **其他 Grails 配置** Grails 允许自定义不同组件的日志级别,例如: - `'org.codehaus.groovy.grails.web.servlet'`:控制器 - `'org.codehaus....

    grails脚手架2次优化

    在Web开发领域,Grails框架以其高效和便捷的特性深受开发者喜爱。其中,脚手架(Scaffolding)是Grails提供的一种快速开发工具,它能够自动生成基本的CRUD操作,极大地提高了开发效率。然而,尽管脚手架在很多场景下...

    Groovy轻松入门—Grails实战基础篇

    例如,Groovy允许开发者使用更简洁的语句进行方法调用,如`list.each{println it}`,这比Java的for-each循环更为简洁。此外,Groovy的动态类型特性允许在运行时确定变量的类型,提高了开发效率。 2. **Grails架构**...

    Grails开发的通讯录

    例如,`Contact`类可以自动关联到数据库中的`contacts`表,无需编写复杂的SQL语句。 3. **Controllers**:控制器负责处理用户请求并调用服务层进行业务逻辑处理。在通讯录应用中,我们可以创建一个`...

    Grails入门指南

    1. **动态查询器**:提供灵活的数据查询能力,支持条件筛选、排序、分页等功能,无需编写复杂的SQL语句。 2. **动态脚手架**:自动生成基本的CRUD界面,加速开发过程,后期可定制修改。 五、Grails与其他技术的关系...

    Grails基础教程

    - **动态查找器**:Groovy动态查找器提供了一种简洁的方式来查询数据库,简化了SQL语句的编写。 - **动态查找器的多面性**:通过实例演示了动态查找器的不同用法。 - **协调动态查找器和立即与延迟提取**:解释了...

    grails-1.3.7

    GORM支持Hibernate和ActiveRecord风格的ORM,使得开发者可以通过领域类直接操作数据库,无需编写SQL语句。 4. **Scaffolding**:Grails的自动脚手架功能可以根据领域模型快速生成基本的CRUD(创建、读取、更新、...

    Groovy and Grails Recipes(清晰PDF)

    ### Groovy and Grails ...通过这些章节的学习,读者将能够全面了解Groovy编程语言和Grails框架,并掌握如何使用它们来开发高效、可维护的应用程序。无论是新手还是有经验的开发者,都能从中获得宝贵的知识和实践经验。

    学习Grails

    - **对象关系映射(ORM)**:Grails采用GORM(Grails ORM),这是一种简化了对象关系映射的过程,使开发者无需编写复杂的SQL语句即可完成数据操作。 - **路由和验证**:Grails内置了一套简单的路由规则和验证机制,...

    Grails Oracle PostgreSQL

    Grails支持使用`executeQuery`和`executeUpdate`方法执行SQL语句。 6. **性能优化**:在大型应用中,考虑数据库性能是必要的。这可能涉及索引优化、查询优化、连接池配置等。 7. **数据库迁移工具**:Grails有诸如...

    Java框架教程

    Hibernate简化了Java应用程序与数据库之间的交互,通过XML或注解方式定义对象-表映射,自动处理SQL语句,极大地提高了开发效率。它支持事务管理,缓存机制,并提供了查询语言HQL,让开发者可以使用面向对象的方式来...

    Getting-Started-with-Grails-Chinese

    - **动态查询**:Grails 提供了一种灵活的方式来执行动态查询,允许开发者根据不同的条件动态构建查询语句。 - **用户认证**:通过集成 Spring Security 插件或其他安全框架来实现用户身份验证和授权。 - **前端优化...

    Grails 1.1 的动态编码方案(Dynamic Encoding Methods)

    例如,Grails的领域模型(Domain Model)支持动态方法,使得开发者可以通过简单的语法进行CRUD操作,如`save()`, `delete()`, `update()`等,而无需编写SQL语句。此外,GORM(Grails Object-Relational Mapping)还...

    grails-datastore-gorm-tck-1.0.9.RELEASE.zip

    1. Grails框架:基于Java的Web开发框架,使用Groovy语言,提供MVC架构和ORM功能。 2. GORM:Grails的ORM工具,简化了数据库操作。 3. Google App Engine:Google提供的云服务平台,包括Datastore NoSQL数据库服务。 ...

Global site tag (gtag.js) - Google Analytics