|
作者:Jcat
|
|
2008-11-06 23:24 |
|
用JDBC操作数据库,对比一下Java和Groovy。
环境:SQL Server 2000 (记得打补丁SP4,不然JDBC访问会报错) JDBC Driver:msbase.jar,mssqlserver.jar,msutil.jar
Java版
package
?jcat.bit.java;
import
?java.sql.
*
;
public
?
class
?JDBC?{ ????
public
?
static
?
void
?main(String[]?args)?
throws
?ClassNotFoundException,?SQLException?{ ????????Class.forName(
"
com.microsoft.jdbc.sqlserver.SQLServerDriver
"
); ????????Connection?conn?
=
?DriverManager.getConnection( ????????????????
"
jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs
"
, ????????????????
"
sa
"
,?
"***
"
);
????????Statement?stmt?
=
?conn.createStatement(); ????????ResultSet?rs?
=
?stmt.executeQuery(
"
select?top?10?*?from?authors
"
);
????????
while
?(rs.next())?{ ????????????System.out.println(rs.getString(
2
)
+
"
?
"
+
rs.getString(
3
));??//?数id ????????}
????????rs.close(); ????????stmt.close(); ????????conn.close(); ????} }
Groovy版
package?jcat.bit.groovy
import?groovy.sql.Sql
class?JDBC?{ ????static?void?main(args)?{ ????????Sql?sql?=?Sql.newInstance( ????????????????"jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs", ????????????????"sa",?"***", ????????????????"com.microsoft.jdbc.sqlserver.SQLServerDriver") ????????sql.eachRow("select?top?10?*?from?authors")?{row?-> ????????????println?row.au_fname?+?"?"?+?row.au_lname????//直接用数据库的字段名就可以操作结果集了,不用去数id ????????} ????} }
总结 1. 建立查询,差别不大,都是JDBC那一套;Groovy不用处理异常 2. 处理查询结果,Groovy因为有闭包,处理这些迭代问题很方便 3. Groovy不用关闭
|
|
最后更新于: 2008-11-06 23:24 |