读出操作是通过使用SQL类的eachRow方法进行。
句法
eachRow(GString gstring, Closure closure)
执行给定的SQL查询调用,结果集的每一行给出闭幕。
参数
GString的 -这需要执行的SQL语句。
封闭 -封闭语句来处理来自读操作retrived行。执行给定的SQL查询调用,结果集的每一行给出闭幕。
下面的代码示例演示了如何来从雇员表中的所有记录。
import java.sql.*; import groovy.sql.Sql class Example { static void main(String[] args) { // Creating a connection to the database def sql = Sql.newInstance('jdbc:mysql://localhost:3306/TESTDB', 'testuser', 'test123', 'com.mysql.jdbc.Driver') sql.eachRow('select * from employee') { tp -> println([tp.FIRST_NAME,tp.LAST_NAME,tp.age,tp.sex,tp.INCOME]) } sql.close() } }
从上面的程序的输出将是 -
[Mac, Mohan, 20, M, 2000.0]
更新操作
任何数据库上进行更新操作手段来更新一个或多个记录,这已经在数据库中。下面的过程更新过性别为“M”的所有记录。在这里,我们一岁增加所有男子的年龄。
import java.sql.*; import groovy.sql.Sql class Example { static void main(String[] args){ // Creating a connection to the database def sql = Sql.newInstance('jdbc:mysql://localhost:3306/TESTDB', 'testuser', 'test@123', 'com.mysql.jdbc.Driver') sql.connection.autoCommit = false def sqlstr = "UPDATE EMPLOYEE SET AGE = AGE + 1 WHERE SEX = 'M'" try { sql.execute(sqlstr); sql.commit() println("Successfully committed") }catch(Exception ex) { sql.rollback() println("Transaction rollback") } sql.close() } }
删除操作
当你想从数据库中删除一些记录DELETE操作是必需的。以下是从哪里EMPLOYEE年龄超过20删除所有记录的过程。
import java.sql.*; import groovy.sql.Sql class Example { static void main(String[] args) { // Creating a connection to the database def sql = Sql.newInstance('jdbc:mysql://localhost:3306/TESTDB', 'testuser', 'test@123', 'com.mysql.jdbc.Driver') sql.connection.autoCommit = false def sqlstr = "DELETE FROM EMPLOYEE WHERE AGE > 20" try { sql.execute(sqlstr); sql.commit() println("Successfully committed") }catch(Exception ex) { sql.rollback() println("Transaction rollback") } sql.close() } }
执行事务
事务是确保数据一致性的机制。交易有以下四个属性 -
原子性 -事务完成或根本没有任何事情发生。
一致性 -事务必须以一致的状态开始,并使系统保持一致状态。
隔离 -事务的中间结果在当前事务外部不可见。
持久性 -一旦事务提交,即使系统发生故障,影响仍然持续。
这里是一个如何实现事务的简单示例。我们已经从DELETE操作的上一个主题中看到了这个示例。
def sqlstr = "DELETE FROM EMPLOYEE WHERE AGE > 20" try { sql.execute(sqlstr); sql.commit() println("Successfully committed") }catch(Exception ex) { sql.rollback() println("Transaction rollback") } sql.close()
提交操作
提交操作是告诉数据库继续操作并完成对数据库的所有更改。
在我们的上述例子中,这是通过下面的语句实现 -
sql.commit()
回滚操作
如果您对一个或多个更改不满意,并希望完全还原这些更改,请使用回滚方法。在我们上面的例子中,这是通过以下语句实现的:
sql.rollback()
断开数据库
要断开数据库连接,使用Close方法。
sql.close()
标签:Groovy
相关阅读 >>
更多相关阅读请进入《Groovy》频道 >>
深入理解Java虚拟机 JVM高级特性与实践 周志明 第3版
这是一部从工作原理和工程实践两个维度深入剖析JVM的著作,是计算机领域公认的经典。