groovy mysql 示例

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: 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}"
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
7月前
|
SQL 存储 关系型数据库
MySQL的基本操作及实用示例(面试真题老实用了)
在MySQL中,行转列是指将数据表的行转换为列,以实现数据在视图中的重组和重塑。通常,行转列用于将多行数据合并为一行,并将多个列值作为新的列。行转列可以使用多种方法实现,包括使用聚合函数、条件筛选和透视(PIVOT)表等。以下是一些常见的行转列方法:1.使用聚合函数可以使用聚合函数如等对数据进行聚合,并使用CASE语句根据条件选择和返回不同的列值。以将不同的行值转换为列值。2.使用条件筛选可以使用条件判断语句,如IF语句或CASE语句。
|
19天前
|
存储 SQL 关系型数据库
mysql存储过程示例
mysql存储过程示例
11 0
|
5月前
|
存储 关系型数据库 MySQL
MySQL中库/表/字段/主键/用户操作示例与详解
MySQL中库/表/字段/主键/用户操作示例与详解
111 0
|
2月前
|
SQL 关系型数据库 MySQL
MySQL日期函数的SQL代码示例和使用场景
MySQL日期函数的SQL代码示例和使用场景
25 0
|
4月前
|
存储 SQL 关系型数据库
MySQL中不同类型参数存储过程示例
MySQL中不同类型参数存储过程示例
49 0
|
SQL 存储 关系型数据库
MySQL中 LBCC 和 MVCC 的理解,常见问题及示例:
MySQL中 LBCC 和 MVCC 的理解,常见问题及示例:
258 1
MySQL中 LBCC 和 MVCC 的理解,常见问题及示例:
|
Java 关系型数据库 MySQL
【Java】Java连接Mysql数据库的demo示例
【Java】Java连接Mysql数据库的demo示例
203 0
【Java】Java连接Mysql数据库的demo示例
|
SQL 安全 关系型数据库
MySQL数据库基础命令语句部分合集【超全面示例】
包含MySQL数据库前期学习的基础命令语句,简单实用,清楚明了。
270 0
MySQL数据库基础命令语句部分合集【超全面示例】
|
SQL 关系型数据库 MySQL
通过sqoop将mysql数据导入到hive中进行计算示例
通过sqoop将mysql数据导入到hive中进行计算示例
116 0
通过sqoop将mysql数据导入到hive中进行计算示例
|
SQL 存储 缓存
mysql执行计划解读--大量示例sql语句执行计划
以mysql的官方示例数据库sakila作为示范表,演示mysql执行计划中各列的含义及如何用户性能诊断,文档中也包含了环境搭建的过程,包括数据库的安装及示例数据库的创建,对每个列的含义都有具体的sql语句作为示范 1 演示环境的搭建 1.1 MySQL数据库的安装 1.2 MySQL数据库初始化及启动 1.3 导入sakila示例数据库 1.4 主要示例表介绍 2 MySQL数据库执行计划 3 MySQL执行计划关键信息解释 3.1 id 3.2 select_type,possible keys, key,table,ref 3.3 type 3.4 extra 4 使用物化优化子查询
234 0
mysql执行计划解读--大量示例sql语句执行计划