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" }
相关推荐
通过GORM(Grails Object Relational Mapping),Grails提供了自动的ORM支持,使得开发者无需编写复杂的SQL语句即可实现数据的持久化操作。 #### Controllers(控制器) 控制器(Controllers)负责处理来自用户的...
2. **GORM(Grails Object-Relational Mapping)**:这是Grails内置的数据持久化框架,允许开发者使用领域模型对象直接操作数据库,无需编写SQL语句。GORM支持关系型数据库,如MySQL、PostgreSQL,同时也支持NoSQL...
- CRUD操作:Grails自动生成了保存和创建新记录的方法,如`save()`,开发者无需编写复杂的SQL语句。 3. **读取数据(Read)** - 查询:GORM提供了丰富的查询API,如`findAll()`, `findOne()`, `findById()`, `...
这将输出 SQL 查询语句及其参数,便于调试和性能优化。 8. **其他 Grails 配置** Grails 允许自定义不同组件的日志级别,例如: - `'org.codehaus.groovy.grails.web.servlet'`:控制器 - `'org.codehaus....
在Web开发领域,Grails框架以其高效和便捷的特性深受开发者喜爱。其中,脚手架(Scaffolding)是Grails提供的一种快速开发工具,它能够自动生成基本的CRUD操作,极大地提高了开发效率。然而,尽管脚手架在很多场景下...
例如,Groovy允许开发者使用更简洁的语句进行方法调用,如`list.each{println it}`,这比Java的for-each循环更为简洁。此外,Groovy的动态类型特性允许在运行时确定变量的类型,提高了开发效率。 2. **Grails架构**...
例如,`Contact`类可以自动关联到数据库中的`contacts`表,无需编写复杂的SQL语句。 3. **Controllers**:控制器负责处理用户请求并调用服务层进行业务逻辑处理。在通讯录应用中,我们可以创建一个`...
1. **动态查询器**:提供灵活的数据查询能力,支持条件筛选、排序、分页等功能,无需编写复杂的SQL语句。 2. **动态脚手架**:自动生成基本的CRUD界面,加速开发过程,后期可定制修改。 五、Grails与其他技术的关系...
- **动态查找器**:Groovy动态查找器提供了一种简洁的方式来查询数据库,简化了SQL语句的编写。 - **动态查找器的多面性**:通过实例演示了动态查找器的不同用法。 - **协调动态查找器和立即与延迟提取**:解释了...
GORM支持Hibernate和ActiveRecord风格的ORM,使得开发者可以通过领域类直接操作数据库,无需编写SQL语句。 4. **Scaffolding**:Grails的自动脚手架功能可以根据领域模型快速生成基本的CRUD(创建、读取、更新、...
### Groovy and Grails ...通过这些章节的学习,读者将能够全面了解Groovy编程语言和Grails框架,并掌握如何使用它们来开发高效、可维护的应用程序。无论是新手还是有经验的开发者,都能从中获得宝贵的知识和实践经验。
- **对象关系映射(ORM)**:Grails采用GORM(Grails ORM),这是一种简化了对象关系映射的过程,使开发者无需编写复杂的SQL语句即可完成数据操作。 - **路由和验证**:Grails内置了一套简单的路由规则和验证机制,...
Grails支持使用`executeQuery`和`executeUpdate`方法执行SQL语句。 6. **性能优化**:在大型应用中,考虑数据库性能是必要的。这可能涉及索引优化、查询优化、连接池配置等。 7. **数据库迁移工具**:Grails有诸如...
Hibernate简化了Java应用程序与数据库之间的交互,通过XML或注解方式定义对象-表映射,自动处理SQL语句,极大地提高了开发效率。它支持事务管理,缓存机制,并提供了查询语言HQL,让开发者可以使用面向对象的方式来...
- **动态查询**:Grails 提供了一种灵活的方式来执行动态查询,允许开发者根据不同的条件动态构建查询语句。 - **用户认证**:通过集成 Spring Security 插件或其他安全框架来实现用户身份验证和授权。 - **前端优化...
例如,Grails的领域模型(Domain Model)支持动态方法,使得开发者可以通过简单的语法进行CRUD操作,如`save()`, `delete()`, `update()`等,而无需编写SQL语句。此外,GORM(Grails Object-Relational Mapping)还...
1. Grails框架:基于Java的Web开发框架,使用Groovy语言,提供MVC架构和ORM功能。 2. GORM:Grails的ORM工具,简化了数据库操作。 3. Google App Engine:Google提供的云服务平台,包括Datastore NoSQL数据库服务。 ...