[Training Video - 7] [Database connection] Part 1
try, catch and finally in db connection
Forming groovy connection string and obtaining Connection Object
Firing Select Query and obtaining results
Foreach and rows functions
Finding number of rows in result
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 | import groovy.sql.Sql // obtain the connection to database // do the transaction // close database connection try { // connecting to db def dbURL= "jdbc:mysql://localhost:3306/retail" def dbUsername= "root" def dbPassword= "" def dbDriver= "com.mysql.jdbc.Driver" def db = Sql.newInstance(dbURL,dbUsername,dbPassword,dbDriver) // interact with DB /**********************Select query*******************************/ def q1 = "select * from product" // simple select query - more than 1 row def q2 = "select * from product where prod_id='4'" // 1 row def q3 = "select * from product where prod_name like '%QTP%'" // more than 1 // eachRow, rows db.eachRow(q3){ //log.info "${it.prod_name}" +" -- " + "${it.prod_price}" log.info it[ 0 ] + " " + it[ 1 ] + " " + it[ 2 ] } // count of the rows which i get // add variables in the query def x = 'Nike' def q4 = "select * from product where prod_name=$x" db.eachRow(q4){ //log.info "${it.prod_name}" +" -- " + "${it.prod_price}" log.info it[ 0 ] + " " + it[ 1 ] + " " + it[ 2 ] } log.info "*******Multiple parameters**********" def name= 'Catch 22' def category_id= '6' def pro_id= '12' def q5 = "select * from product where prod_name=$name and cat_id=$category_id and prod_id=$pro_id" db.eachRow(q5){ //log.info "${it.prod_name}" +" -- " + "${it.prod_price}" log.info it[ 0 ] + " " + it[ 1 ] + " " + it[ 2 ] } log.info "Using list in the query" def params=[ 'Catch 22' , '6' , '12' ] def q6 = "select * from product where prod_name=? and cat_id=? and prod_id=?" db.eachRow(q6,params){ log.info "$it.prod_name" } log.info "****************ROWS Function***********************" def result = db.rows(q1) log.info "Total number of rows in the result " + result. size () log.info result. get ( 0 ). get ( "prod_id" )+ " " +result. get ( 0 ). get ( "prod_name" ) log.info result. get ( 5 ). get ( "prod_id" )+ " " +result. get ( 5 ). get ( "prod_name" ) // complete output for(i= 0 ;i<result. size ();i++){ log.info result. get (i). get ( "prod_id" )+ " " +result. get (i). get ( "prod_name" ) } // adding parameters log.info "Adding parameters in the query with variable" result = db.rows(q4) log.info "Total number of rows " + result. size () log.info result. get ( 0 ). get ( "prod_id" ) + " " + result. get ( 0 ). get ( "prod_name" ) // Map containing the parameters log.info "*******MAP********" def myMap =[x: 'Harry Potter' ,y: '11' ] def query= "select * from product where prod_id=:y and prod_name=:x" result = db.rows(query,myMap) log.info "Total rows " + result. size log.info result. get ( 0 ). get ( "prod_id" ) + " " + result. get ( 0 ). get ( "cat_id" )+ " " +result. get ( 0 ). get ( "prod_name" ) // List containing the parameters log.info "********LIST************" def p1=[ 'Catch 22' , '6' , '12' ] def q7 = "select * from product where prod_name=? and cat_id=? and prod_id=?" result = db.rows(q7,p1) log.info "Total rows " + result. size log.info result. get ( 0 ). get ( "prod_id" ) + " " + result. get ( 0 ). get ( "cat_id" )+ " " +result. get ( 0 ). get ( "prod_name" ) // firing a query } catch (Exception e){ log.info "Some db error" log.info e.getMessage() } finally { // close database connection db.close() } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现