groovy 慢_为什么sql.rows Groovy方法太慢了

在使用Groovy的sql.rows()方法从数据库获取数据时,发现其性能较慢,对比之下,通过标准的JDBC方式(直接操作Connection和Statement)速度提升了150倍。代码示例显示,使用sql.rows()方法耗时约2500毫秒,而传统方式仅需15毫秒。问题在于,如何解释和优化Groovy的sql.rows()方法的性能问题。
摘要由CSDN通过智能技术生成

我试图用sql.rows()Groovy方法获取一些数据,并且返回这些值需要很长时间。

所以我尝试了“标准”方式,速度要快得多(快150倍)。

我错过了什么?

看下面的代码:第一种方法返回结果大约2500毫秒,第二种方法返回15毫秒!

class MyService {

javax.sql.DataSource dataSource

def SQL_QUERY = "select M_FIRSTNAME as firstname, M_LASTNAME as lastname, M_NATIONALITY as country from CT_PLAYER order by M_ID asc";

def getPlayers1(int offset, int maxRows)

{

def t = System.currentTimeMillis()

def sql = new Sql(dataSource)

def rows = sql.rows(SQL_QUERY, offset, maxRows)

println "time1 : ${System.currentTimeMillis()-t}"

return rows

}

def getPlayers2(int offset, int maxRows)

{

def t = System.currentTimeMillis();

Connection connection = dataSource.getConnection();

Statement statement = connection.createStatement();

statement.setMaxRows(offset + maxRows -1);

ResultSet resultSet = statement.executeQuery(SQL_QUERY);

def l_list =[];

if(resultSet.absolute(offset)) {

while (true) {

l_list << [

'firstname':resultSet.getString('firstname'),

'lastname' :resultSet.getString('lastname'),

'country' :resultSet.getString('country')

];

if(!resultSet.next()) break;

}

}

resultSet.close()

statement.close()

connection.close()

println "time2 : ${System.currentTimeMillis()-t}"

return l_list

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值