groovy mysql 示例

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: groovy mysql 示例

package com.bliu.demo
@GrabConfig(systemClassLoader = true)
@Grab(group = 'mysql', module = 'mysql-connector-java', version = '5.1.6')
import com.beust.jcommander.ParameterException
import groovy.sql.Sql
import java.sql.SQLException
import java.util.stream.Collectors
//db settting
def url = 'jdbc:mysql://localhost:3306/xxx'
def user = 'xxx'
def password = 'xxxl'
def driver = 'com.mysql.jdbc.Driver'
def sql = Sql.newInstance(url, user, password, driver)
class SqlHelper {
    Sql sql
    def retMap = [:]
    // 查找表中列值超过某个值的列
    void findUnValidates(String tableName, int max) throws ParameterException {
        if (!tableName?.trim()) {
            throw new ParameterException("table can't be null or ''")
        }
        retMap[tableName] = []
        def col = (0..15 as List).stream().map(it -> "F${it}").collect Collectors.toList()
        String sqlStr = """
            select ${col.join(',')} ,
                cur_time from ${tableName}
            where cur_time > :cur_time
        """
        sql.eachRow(sqlStr, [cur_time: '2021-05-01 09:04:23']) { row ->
            //each row
            for (int i in 0..15) {
                //each col
                if (row[i].getClass() == Integer.class
                        && row[i] > max) {
                    //may add same col
                    retMap[tableName].add "F${i}"
                }
            }
        }
    }
}
def sqlHelper = new SqlHelper(sql: sql)
def TableName, t1, t2
t1 = System.currentTimeMillis()
try {
    sql.query('SELECT `table_name` FROM relationtable WHERE port = 53455') { resultSet ->
        while (resultSet.next()) {
            TableName= resultSet.getString(1)
            sqlHelper.findUnValidates(TableName, 10000)
        }
    }
} catch (SQLException e) {
    e.printStackTrace()
} catch (Exception e1) {
    e1.printStackTrace()
}
sqlHelper.retMap.eachWithIndex { k, v, i ->
    println "${i}:${k} ${v.unique()}"
}
t2 = System.currentTimeMillis()
println "spend time ${t2 -t1}"
相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
SQL 存储 关系型数据库
MySQL的基本操作及实用示例(面试真题老实用了)
在MySQL中,行转列是指将数据表的行转换为列,以实现数据在视图中的重组和重塑。通常,行转列用于将多行数据合并为一行,并将多个列值作为新的列。行转列可以使用多种方法实现,包括使用聚合函数、条件筛选和透视(PIVOT)表等。以下是一些常见的行转列方法:1.使用聚合函数可以使用聚合函数如等对数据进行聚合,并使用CASE语句根据条件选择和返回不同的列值。以将不同的行值转换为列值。2.使用条件筛选可以使用条件判断语句,如IF语句或CASE语句。
|
4月前
|
SQL 关系型数据库 MySQL
MySQL数据库子查询——in多个数据查询的示例
MySQL数据库子查询——in多个数据查询的示例
30 1
|
11天前
|
存储 关系型数据库 MySQL
MySQL基础命令及使用示例
这些基础命令构成了与MySQL数据库交互的核心,理解并掌握它们对于进行有效的数据库操作至关重要。在实际使用中,建议结合实际案例和需求来练习这些命令,以加深理解和提高效率。
19 3
|
12天前
|
存储 关系型数据库 MySQL
MySQL基础命令及使用示例
这些基础命令构成了与MySQL数据库交互的核心,理解并掌握它们对于进行有效的数据库操作至关重要。在实际使用中,建议结合实际案例和需求来练习这些命令,以加深理解和提高效率。
38 4
|
2月前
|
关系型数据库 MySQL OLTP
性能工具之 MySQL OLTP Sysbench BenchMark 测试示例
【8月更文挑战第6天】使用 pt-query-digest 工具分析 MySQL 慢日志性能工具之 MySQL OLTP Sysbench BenchMark 测试示例
191 0
性能工具之 MySQL OLTP Sysbench BenchMark 测试示例
|
4月前
|
关系型数据库 MySQL 数据库
DELETE、TRUNCATE 和 DROP 在MySQL中的区别及使用示例
DELETE、TRUNCATE 和 DROP 在MySQL中的区别及使用示例
109 0
|
4月前
|
SQL 存储 关系型数据库
AI代码提示工具可用于教学功能示例——MySQL
AI代码提示工具可用于教学功能示例——MySQL
61 0
|
4月前
|
存储 SQL 关系型数据库
MySQL存储过程——if判断示例
MySQL存储过程——if判断示例
63 0
|
4月前
|
SQL 存储 关系型数据库
MySQL 示例数据库大全
我们练习 SQL 时,总会自己创造一些测试数据或者网上找些案例来学习,其实 MySQL 官方提供了好几个示例数据库,在 MySQL 的学习、开发和实践中具有非常重要的作用,能够帮助初学者更好地理解和应用 MySQL 的各种功能和特性,特别是练习 SQL 的好帮手。
284 0
|
4月前
|
存储 SQL 关系型数据库
MySQL数据库——存储过程-介绍以及基本语法(特点、创建、调用、查看、删除、示例)
MySQL数据库——存储过程-介绍以及基本语法(特点、创建、调用、查看、删除、示例)
65 0
下一篇
无影云桌面