`
rsljdkt
  • 浏览: 454364 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Groovy学习笔记之JDBC编程篇

阅读更多

连接数据库

GroovyJava JDBC API进行了封装,提供了一个Facade -- groovy.sql.Sql,从而隐藏了获取数据库连接、关闭资源等细节

用法如下:

	import groovy.sql.Sql;
	
	db = Sql.newInstance (
			url:"jdbc:sqlserver://localhost;databaseName=db_test",
			user:"sa",
			password:"sa",		driverClassName:"com.microsoft.sqlserver.jdbc.SQLServerDriver"
			)

 

查询

Sql对象中有很多查询方法,常用的方式如下所示:

Query(GString, Closure),对返回的ResultSet执行Closure,示例方法如下:

	db.query "Select * From T_Sport", {
		while(it.next()){
			println it.getString("F_Name")
		}
	}

 

rows(GString),返回List。示例用法如下:

db.rows( "Select * From T_Sport").each {row->
	println row['F_Name']
}

 

eachRow(GString,Closure),对结果集的每行执行Closure。示例用法如下:

db.eachRow "Select * From T_Sport", {
	println it['F_Name']
}

 

firstRow(GString),返回结果集的第一条记录,示例用法如下:

def arow = db.firstRow("Select * From T_Sport")
println arow

 

常用GUID方法

execute(GString)execute(String)或者execute(string,paramsList),可用于增加、更新、删除记录;

使用execute(GString)执行插入的代码如下:

def ACode = "ACode"
def AName = "AName"
def AMemo = "AMemo"
db.execute """insert into T_User(F_Code, F_Name, F_Memo)
			Values(${ACode}, ${AName}, ${AMemo})"""

 

使用PreparedStatement的代码如下:

val = db.execute ("select * from T_User where F_ID = ?", [1])

 

使用execute(String)执行Sql脚本的代码如下:

String sqlFilePath = 'path/to/your/script.sql'
String sqlString = new File(sqlFilePath).text
db.execute (sqlString)

 

executeInsert(GString)executeInsert(String)或者executeInsert(string,paramsList),用于增加记录;

executeUpdate(GString)executeUpdate(String)或者executeUpdate(string,paramsList),用于更新记录。

数据集(DataSet

这里要重点介绍的是另外一种快捷增加记录的方法--DataSet

DataSet和数据库里的表对应,可以对DataSet内容进行查询、增加操作。请看如下代码:

def users = db.dataSet ('T_User')
users.each { println it }
users.add (
	F_Name:'李四',
	F_Code:'M002',
	F_Memo:'memo'
	)
users.findAll {it.F_ID>0 }.sort{it.F_Name desc}.each {println it}

Date.findAll方法的成功运行要将groovy类文件的src目录放在classpath下,详情参见:

http://jira.codehaus.org/browse/GROOVY-2450

http://jira.codehaus.org/browse/GROOVY-544

从上述代码中可以看到,创建DateSet实例后,就能够获得一个Map,可以对这个Map执行findAll(whereClosure)以及sort(sortClosure)。而这里增加数据使用的是add(Map)方法。在对数据库进行增加、更新或者删除时,需要考虑事务性,以保证数据的完整性。对于此,Groovy同样提供了一个非常方便的用法。对于需要在同一个事务中完成的代码,可以使用Sql或者DataSet的withTransaction(Closure)方法实现,参见如下代码:

db.withTransaction {
	for(i in 0..<5){
		users.add (
				F_Name:"name"+i,
				F_Code:"code"+i,
				F_Memo:"memo"+i)
	}
	db.execute 'delete from T_User Where i>0'
}

 

上述代码中,由于在第8行代码会出错,所以整段代码不会在T_user表中插入新的纪录的。读者可以将withTransaction方法去掉,再看看程序运行的结果。

DateSet虽然进一步简化了SQL操作,但缺点是只能适用于一张表可以使用SQL将复杂的结果生成一个视图,之后用DataSet来访问这个视图。

上述这些就是Groovy提供的方法,它们使得跟数据库的交互变得轻松了许多!

<!--EndFragment-->

1
6
分享到:
评论

相关推荐

    JAVA6.0学习笔记PDF版

    Java 6.0是Oracle公司推出的Java开发工具集(JDK)的一个重要版本,它在Java 5.0的基础上进行了一...此外,由于还包含了"jdk 5.0学习笔记",读者也可以对比学习,了解两个版本之间的差异,进一步巩固Java编程的基础。

    Java JDK 6学习笔记——ppt简体版.rar

    这份"Java JDK 6学习笔记——ppt简体版"提供了关于这个关键版本的详细教程,适合初学者和有一定经验的开发者来深入理解Java编程。 首先,我们要了解Java JDK是什么。Java Development Kit,简称JDK,是Oracle公司...

    良葛格java jdk 6.0学习笔记代码.rar

    在"良葛格"的学习笔记中,可能包含了各种Java 6.0特性的实例代码,如使用新的JDBC API进行数据库操作,使用ScriptEngine执行脚本,或者利用NIO.2进行文件操作。通过这些示例,学习者可以更好地理解和应用这些新特性...

    JAVA JDK6 学习笔记

    "Java JDK6 学习笔记"作为一份参考资料,可能包含了关于这些特性和改进的详细解释,以及如何在实际编程中应用它们的实例。通过这份笔记,你可以深入理解JDK6的核心概念,掌握如何利用新特性优化代码,提高开发效率。...

    Java+JDK+6学习笔记

    本学习笔记将深入探讨Java JDK 6中的关键知识点,帮助初学者和有经验的开发者更好地理解和应用这个版本的Java。 一、Java基础 Java是一种面向对象的编程语言,其特点包括跨平台性、垃圾回收机制和自动内存管理。在...

    java学习笔记JDK6课件和课本代码

    Java是世界上最流行的编程语言之一,尤其在企业级应用开发领域占据主导地位。JDK(Java Development Kit)是Java开发的核心工具集,包含了编译器、调试器、文档生成工具等,使得开发者能够编写、测试和运行Java程序...

    java_JDK6_code.rar_javajdk6

    在"java学习笔记JDK6课件和课本代码"中,可能包含了对这些特性的详细解释,以及如何在实际项目中应用它们的示例。PPT课件通常会提供清晰的理论讲解,而代码示例则可以帮助读者理解如何在代码中实现这些概念。通过...

    Spring_Note.zip

    这个"Spring_Note.zip"文件很可能包含了一系列关于Spring框架的学习笔记或者教程资料,特别是聚焦于Spring 3版本的知识点。Spring 3是Spring框架的一个重要版本,它引入了许多新特性并优化了现有功能,使得开发者能...

    Spring-Boot-DB-IP

    2. **Groovy编程**:学习Groovy语法,如何在Spring Boot中使用Groovy编写控制器、服务层和其他组件。 3. **数据库集成**:如何在Spring Boot中配置和使用数据库,例如JDBC、Hibernate或MyBatis等数据访问技术。 4. *...

    Java vert.x微服务框架资料

    - **多语言环境:** Vert.x 支持多种语言,包括 Java、Groovy、Ruby、Scala、JavaScript 等,这使得开发者可以根据项目需求选择最适合的语言进行开发。 **2.5 数据库集成** - **数据访问:** Vert.x 提供了对多种...

Global site tag (gtag.js) - Google Analytics