The Apache Groovy programming language - Working with a relational database
Groovy 自身提供一套比 JDBC 更加抽象简便的数据库访问 API(该API依赖于JDBC) ,Groovy sql API 支持 Oracle,MySQL,SQL Server,HSQLDB,MongoDB 等主流的数据库访问;
以下以 MySQL 访问为例,演示 Groovy sql API 的基本使用,同样,需要在工程依赖导入 mysql-jdbc 驱动文件 mysql-connector-xxxx-bin;
import groovy.sql.Sql
class SQLtest {
static void main(String[] args){
//数据库连接
def connect = Sql.newInstance('jdbc:mysql://127.0.0.1:3306/testDB','root','123','com.mysql.jdbc.Driver');
//查询操作
def selectSql = 'select name,city,age from person';
connect.eachRow(selectSql){
row ->def name = row.name
def age = row.age
def city = row.city
println("${name},${age},${city}");
}
//插入,更新,删除操作,这里只演示插入操作
def insertSql = "insert into person values('assad','Gunagzhou','20')";
connect.execute(insertSql);
connect.close();
}
}
实际上,对于插入、更新、删除操作,一般不会自动提交,而是手动提交事务,并判断回滚条件,如下:
class SQLtest {
static void main(String[] args){
//数据库连接
def connect = Sql.newInstance('jdbc:mysql://127.0.0.1:3306/testDB','root','123','com.mysql.jdbc.Driver');
connect.connection.autoCommit = false; //关闭事务自动提交
def insertSql = "insert into person values('assad','Gunagzhou','20')";
try{
connect.execute(insertSql);
connect.commit(); //手动提交事务
}catch(Exception ex){
connect.rollback(); //回滚事务
}finally{
connect.close();
}
}
}