`

Grails 框架直接使用sql语句

 
阅读更多

Grails 框架直接使用sql语句

 

grails 框架可以通过SQL语句直接对数据库进行增删改查操作,还可以创建数据库表,具体实现如下:

 

参考文档:Groovy SQL

 

优秀推荐:Groovy的SQL模块

 

    def dataSource
    def dataSource_lookup  // 定义已知数据源

 

    @Transactional
    def insertBySql()
    {
        // 1.第一种插入方式    
        def product = new Product()
        product.name = "Grails"
        product.code = "1109"
        product.lookup.save()

        // 2.第二种插入方式
        def db = new groovy.sql.Sql(dataSource_lookup)
        def params = [29, 0, 'Groovy', '1105']
        db.execute "insert into product (id, version, name, code) values (?, ?, ?, ?)", params
        db.close()

        // 3.第三种插入方式
        def dbParams = [url:'jdbc:postgresql://127.0.0.1:5432/testDataBase2', user:'test', password:'test', driver:'org.postgresql.Driver']
        db = groovy.sql.Sql.newInstance(dbParams.url, dbParams.user, dbParams.password, dbParams.driver)
        def map = [id:20, version: 1, name:'Grails', code:'9999']
        db.execute "insert into product (id, version, name, code) values ($map.id, $map.version, $map.name, $map.code)"
        db.close()

        render product as JSON
    }
 
@Transactional
    def updateBySql()
    {
        def db = new groovy.sql.Sql(dataSource_lookup)
        db.executeUpdate "update product set name='antushengtuhua' where code='1105'"
        db.close()

        render "success"
    }

 

def queryBySql()
    {
        // 1.第一种查询
        def db = new groovy.sql.Sql(dataSource_lookup)
        db.eachRow('select * from product') { row ->
            println row
        }

        // 2.第一种查询,支持分页
        db.eachRow('select * from product', 2, 2) 
        {
            println it
        }

        // 3.第二种查询
        def rows = db.rows("select * from product where name like 'Gra%'")
        println rows.join('\n')

        db.close()

        render "success"
    }

 

@Transactional
    def deleteBySql()
    {
        def db = new groovy.sql.Sql(dataSource_lookup)
        db.execute('delete from product')
        db.close()

        render "success"
    }

 

@Transactional
    def createTable()
    {
        def db = new groovy.sql.Sql(dataSource_lookup)
        db.execute ('''
            create table project (
                id integer not null,
                name varchar(50),
                url varchar(100)
            );
        ''')
        db.close()

        render "success"
    }

 

 

 

分享到:
评论

相关推荐

    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操作,极大地提高了开发效率。然而,尽管脚手架在很多场景下...

    一步一步学grails(7)

    - **GORM**:Grails 的对象关系映射系统,允许开发者以面向对象的方式操作数据库,无需编写 SQL 语句。 - **GSP**:Groovy Server Pages 的简称,类似于 JSP,用于定义 Grails 应用程序的视图层。 - **控制器**:...

    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