domain类如下:
package com.lt
class Book {
String bookName
double bookPrice
static constraints = {
}
}
service类如下:
package com.lt
import com.lt.Book
import java.sql.DriverManager
class LtSqlService {
static transactional = false //关闭service的事务
def addBook(){
//获得数据库连接
def con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root","root")
def db = new groovy.sql.Sql(con)
con.autoCommit=false //关闭连接的自动提交
try{
def bookName='JAVA'
def bookPrice=22.1
def sql="INSERT INTO book VALUES(NULL,0,'${bookName}',${bookPrice})"
db.execute(sql)
con.commit() //提交事务
}catch(Exception ex){
println "出现异常"
con.rollback() //回滚事务
}
}
}
用控制器调用会在数据库插入成功,如果把
def bookPrice='cc'
就会报错,事务回滚。
分享到:
相关推荐
在服务层,Grails支持声明式事务,并允许通过依赖注入将服务集成到应用程序中。服务的作用域和生命周期是Grails服务管理的一部分。Grails还支持使用Java服务,这允许Java开发者可以更容易地迁移到Grails。 测试是...
《Grails 1.1 中文文档》是一个非常宝贵的资源,尤其对于国内的开发者来说,由于Grails在中文社区中的资料相对较少,这份文档的价值不言而喻。Grails是一个基于Groovy语言的开源Web应用框架,它借鉴了Ruby on Rails...
Grails的服务是单例的,支持事务管理,提供了一种组织和复用业务逻辑的方式。 7. **插件(Plugins)** Grails插件是可重用的代码模块,提供了预定义的功能和行为。它们可以扩展Grails核心功能,如安全、缓存、搜索...
- 提供了事务感知的数据源代理,增强了事务处理能力。 - 集成了数据库管理界面,方便管理和监控数据库状态。 - 支持多数据源配置,适用于复杂的应用场景。 **外部配置** - 支持从外部文件读取配置信息,增强灵活性...
1. **模型(Model)**: 在Grails中,模型通常由Domain Classes表示,它们是持久化的实体,与数据库表对应。Domain Classes使用Groovy的元编程特性,如属性验证和动态方法,提供数据验证和业务逻辑。 2. **视图...
- **部署**:讲解了在各种Java EE容器中部署Grails应用的方法。 2. **配置**: - **基本配置**:讨论了Grails的基础配置选项,包括内置选项和日志设置。 - **数据源**:详细介绍了数据源的配置,包括与环境的...
7. **Grails服务(Service)**:服务层在Grails中的作用,如何定义服务并进行事务管理。 8. **Grails过滤器(Filters)**:过滤器在应用程序中的应用,如何在特定的HTTP请求或响应之前/之后执行代码。 9. **Grails...
3. **GORM(Grails Object-Relational Mapping)**:Grails 的数据访问层由 GORM 提供,它允许开发者使用Groovy语法进行数据库操作,提供了CRUD(创建、读取、更新、删除)功能以及事务管理。 4. **GRAILS 插件系统...
- **遗留数据处理**:在已有数据表基础上进行Grails应用开发的方法。 - **ORM问题解决**:针对对象关系映射中遇到的问题提出解决方案。 - **Grails版本升级**:指导如何从旧版本平稳过渡到新版本。 #### 四、...
本文将详细介绍如何在Grails应用中调用存储过程,并讨论如何在这些操作中实现事务控制。 #### 二、访问存储过程 **1. 配置DataSource** 在Grails项目中,首先要确保已经正确配置了数据源。Grails默认使用...
Spring的DI允许组件之间的松耦合,而AOP则可以方便地处理横切关注点,如事务管理。通过Spring,Grails提供了强大而灵活的服务层,以及数据访问对象(DAO)的支持。 ### Hibernate持久化 Hibernate是Java世界中广泛...
6. **Services**:Service层是Grails应用中实现业务逻辑的地方,它们是单例的,可注入其他组件,通常用于处理复杂的业务流程或跨Controller的共享逻辑。 7. **Filters**:Filters允许在Controller Actions执行前后...
这使得Grails在开发过程中能够减少许多重复工作,让开发者更多地关注业务逻辑。 2. **Groovy语言** Groovy是Java平台上的动态编程语言,它的语法简洁且富有表达力,支持函数式编程和元编程。Groovy与Java代码可以...
在Grails中,你可以利用MVC(Model-View-Controller)架构模式来构建复杂的Web应用程序。这个"grails中文帮助"压缩包可能是为了辅助中国开发者更好地理解和使用Grails框架,提供了一系列的中文文档和教程。 首先,...
在5.1.2版本中,GORM可能已经进行了优化,提供了更好的性能和新的查询API,支持多数据源,以及事务管理和缓存功能。 4. **GRAILS CLI (Command Line Interface)**: Grails 提供了一个强大的命令行接口,用于项目...
此外,Grails还支持AOP(面向切面编程),允许开发者通过声明式的方式处理横切关注点,如日志、事务管理等。 Grails 1.2.2在1.x系列中的改进主要体现在以下几个方面: 1. 性能优化:Grails 1.2.2对核心库进行了...
3.9.3 在eclipse中运行grails应用程序 3.10 本章小结 第4章 grails中的域(domain) 4.1 简化的orm和grails对象关系映射(gorm) 4.2 gorm基础 4.3 设置属性可选 4.4 gorm中的关系 ...
9. **国际化与本地化**:Grails 提供了强大的i18n(国际化)支持,允许开发者轻松处理多语言环境。 10. **Scaffolding**:Grails 的快速原型功能(scaffolding)能自动生成基本的CRUD界面,帮助开发者快速搭建应用...