jdbc - Groovy Sql rows -


hello trying rows using groovy sql connection returns me records list inside list. following:

sql sql = new sql(datasource) list<groovyrowresult> row = sql.rows('select * user username=:username , password=:password, [username:'groovy',password:'123']) 

returns result [[return record map]]

any 1 me figure out why result list inside list. how single level list using rows method?

your results coming list of maps, not list of lists. @ ':' , ',' chars in inner part. can use standard groovy extraction of values these.

in case, looks you're using primary key search, return 1 result, use firstrow in case, don't have extract single map result list.

see documentation groovy sql class examples.

in more general case returning multiple rows, data looks this:

[[username:"foo", password:"foopass"], [username:"bar", password:"barpass"]] 

assuming line:

def results = sql.rows('select * user') 

you can things spread operators:

assert results.username == ["foo", "bar"] assert results.password == ["foopass", "barpass"] 

or iterate on results

results.each { println it.username } ==> foo ==> bar 

or use of many collection functions

println results.collect { "${it.username} -> ${it.password}" } ==> [ "foo -> foopass", "bar -> barpass" ] 

i think main issue not recognising single map entry in list.


Comments