使用Groovy的sql模块操作mysql进行多种查询
连接数据库,这里要创建一个sql实例来操作数据库,必须加载jdbc驱动包,使用两个注解,否则会报错:
import groovy.sql.Sql
url='jdbc:mysql://localhost:3307/test?useUnicode=true&characterEncoding=utf8'
driver='com.mysql.jdbc.Driver'
username='root'
passwd='123456'
//可以指定maven仓库
//@GrabResolver(name = 'aliyun', root = 'http://maven.aliyun.com/nexus/content/groups/public/')
//加载数据库连接驱动包
@Grab('mysql:mysql-connector-java:5.1.25')
@GrabConfig(systemClassLoader = true)
//创建sql实例
def sql = Sql.newInstance(url, username, passwd, driver)
查询:
eachRow: 对结果在闭包中进行处理:
sql.eachRow("select * from `user`") {
    println it[0]  //可以按表字段从左到右依次下标访问
    println it.name  //直接按字段名访问
}
//支持元数据闭包显示
sql.eachRow("select * from `user`",{ meta->
    //元数据闭包只会调用一次
    meta.columnCount.times {
        print meta.getColumnName(it+1)+"  "
        print meta.getColumnClassName(it+1)+"  "
        print meta.getColumnDisplaySize(it+1)+"  "
        print meta.getColumnType(it+1)+"---"
        println meta.getColumnTypeName(it+1)
    }
}) {
    //可以按表字段从左到右依次下标访问或者字段名字访问
    println it[0]+"  "+it.name
}
可以看到输出:

还有rows等查询方法,支持非常多的重载方法,可以根据需求传入各种参数,和jdbc用法基本都一样,比如:
println sql.rows(['id':3],"select * from `user` where id>:id").size() //map参数
println sql.rows("select * from `user` where id>?",[3]).size() // list参数
println sql.firstRow("select * from `user`") //返回第一个
  
最后贴上表结构:

使用Groovy的sql模块操作mysql进行多种查询的更多相关文章
- Shell脚本中执行sql语句操作mysql的5种方法【转】
		
对于自动化运维,诸如备份恢复之类的,DBA经常需要将SQL语句封装到shell脚本.本文描述了在Linux环境下mysql数据库中,shell脚本下调用sql语句的几种方法,供大家参考.对于脚本输出的 ...
 - 【MySQL】使用SQL语句操作MySQL
		
前言: MySQL在工作中是最常用的数据库,但在使用Django和Flask的时候,都是使用ORM进行操作,除了select语句外,其他的SQL语句操作MySQL的能力没有啥提高,为了解决这个问题, ...
 - python 通过 pymysql模块 操作 mysql 数据库
		
Python 中操作 MySQL 步骤 安装模块 pip install pymysql 引入模块 在py文件中引入pymysql模块 from pymysql import * Connection ...
 - python学习之模块(pip),列表生成式,模块操作mysql,excel
		
python基础 生成式 列表生成式 格式 [表达式 for 表达式 in 迭代对象 (可加判断)] 原: res1 = [] for i in range(1,5): res1.append(i) ...
 - Shell脚本中执行sql语句操作mysql
		
对于自动化运维,诸如备份恢复之类的,DBA经常需要将SQL语句封装到shell脚本.本文描述了在Linux环境下mysql数据库中,shell脚本下调用sql语句的几种方法,供大家参考.对于脚本输出的 ...
 - MyBatis SQL语句操作Mysql
		
本文记录使用Mybatis操作数据库时碰到的一些语句,供以后参考. 一,多条件查询 示意SQL语句:SELECT t_field1, t_field2 FROM table_name WHERE t_ ...
 - SHELL脚本中执行SQL语句操作MYSQL的5种方法
		
对于自动化运维,诸如备份恢复之类的,DBA经常需要将SQL语句封装到shell脚本.本文描述了在Linux环境下mysql数据库中,shell脚本下调用sql语句的几种方法,供大家参考.对于脚本输出的 ...
 - SQL Server温故系列(2):SQL 数据操作 CRUD 之简单查询
		
1.查询语句 SELECT 1.1.查询语句的 SELECT 子句 1.2.查询语句的 FROM 子句 1.2.1.内连接查询 INNER JOIN 1.2.2.外连接查询 OUTER JOIN 1. ...
 - SQL注入之MySQL常用的查询语句
		
MySQL是一种使用很广的数据库,大部分网站都是用MySQL,所以熟悉对MySQL数据库的注入很重要. 首先来说下MySQL注入的相关知识点 在MySQL5.0版本之后,MySQL默认在数据库存放一个 ...
 
随机推荐
- day9 函数练习题
			
写代码,接受n个数字,求这些数字的和 def sum_func(*args): total = 0 for i in args: total+=i return total print(sum_fun ...
 - 1.Zabbix报错信息:It probably means that the systems requires more physical memory.
			
点击返回:自学Zabbix之路 1.Zabbix报错信息:It probably means that the systems requires more physical memory. 1.报错信 ...
 - 自学Zabbix4.2 web监控项创建+item详解
			
自学Zabbix4.2 web监控项创建+item详解 1. web监控项创建 1.1 Scenario 选项卡 Name: 监控项的名称 Application: 放到哪个应用中 Authenti ...
 - [luogu4265][USACO18FEB]Snow Boots silver
			
题目大意 求出最少需要丢去多少双靴子才能到达终点. 解法 解法一: 看到数据的范围,非常清楚\(O(n^3)\)能过掉所有的数据,那么我们就果断暴力. 解法二: 比较容易会想到用DP做,我一开始定义\ ...
 - sprintf-%s的用法
			
@2018-9-19 sprintf-%s的用法 #include <stdio.h> #include <string.h> char string[] = "I ...
 - 洛谷 P3237 [HNOI2014]米特运输 解题报告
			
P3237 [HNOI2014]米特运输 题目描述 米特是\(D\)星球上一种非常神秘的物质,蕴含着巨大的能量.在以米特为主要能源的D星上,这种米特能源的运输和储存一直是一个大问题. \(D\)星上有 ...
 - WCF快速搭建Demo
			
WCF快速搭建Demo ps:本Demo只是演示如何快速建立WCF 1.首先完成IBLL.BLL.Model层的搭建,由于数据访问层不是重点,WCF搭建才是主要内容,所以本Demo略去数据访问层. 新 ...
 - bracketed-paste-magic:zle:41: not enough arguments for -U
			
原因是zsh的插件出问题了,解法方法如下: 把 ~/.oh-my-zsh/lib/misc.zsh 文件中的第一段 if 注释掉 OK 啦 # ]]; then # for d in $fpath; ...
 - ST表与树状数组
			
ST表 st表可以解决区间最值的问题.可以做到O(nlogn)预处理 ,O(1)查询,但是不支持修改. st表的大概思路就是用st[i][j]来表示从i开始的2的j次方个树中的最值,查询时就从左端点 ...
 - dos初始操作和全屏方法
			
1.初始操作 mount d d:\ ;选择挂载的硬盘 d:\ cd Dos cd MASM ;到达debug/edit/link/masm.exe文件的位置 ;然后可以进行debug/edit xx ...