groovy mysql 示例

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,高可用系列 2核4GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 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}"
相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
目录
相关文章
|
SQL 存储 关系型数据库
MySQL的基本操作及实用示例(面试真题老实用了)
在MySQL中,行转列是指将数据表的行转换为列,以实现数据在视图中的重组和重塑。通常,行转列用于将多行数据合并为一行,并将多个列值作为新的列。行转列可以使用多种方法实现,包括使用聚合函数、条件筛选和透视(PIVOT)表等。以下是一些常见的行转列方法:1.使用聚合函数可以使用聚合函数如等对数据进行聚合,并使用CASE语句根据条件选择和返回不同的列值。以将不同的行值转换为列值。2.使用条件筛选可以使用条件判断语句,如IF语句或CASE语句。
|
SQL 关系型数据库 MySQL
MySQL数据库子查询——in多个数据查询的示例
MySQL数据库子查询——in多个数据查询的示例
107 1
|
12月前
|
存储 关系型数据库 MySQL
MySQL基础命令及使用示例
这些基础命令构成了与MySQL数据库交互的核心,理解并掌握它们对于进行有效的数据库操作至关重要。在实际使用中,建议结合实际案例和需求来练习这些命令,以加深理解和提高效率。
167 4
|
12月前
|
存储 关系型数据库 MySQL
MySQL基础命令及使用示例
这些基础命令构成了与MySQL数据库交互的核心,理解并掌握它们对于进行有效的数据库操作至关重要。在实际使用中,建议结合实际案例和需求来练习这些命令,以加深理解和提高效率。
265 3
|
11月前
|
存储 关系型数据库 MySQL
MySQL 字符字段长度设置详解:语法、注意事项和示例
MySQL 字符字段长度设置详解:语法、注意事项和示例
858 0
|
关系型数据库 MySQL OLTP
性能工具之 MySQL OLTP Sysbench BenchMark 测试示例
【8月更文挑战第6天】使用 pt-query-digest 工具分析 MySQL 慢日志性能工具之 MySQL OLTP Sysbench BenchMark 测试示例
652 0
性能工具之 MySQL OLTP Sysbench BenchMark 测试示例
|
存储 关系型数据库 MySQL
MySQL中库/表/字段/主键/用户操作示例与详解
MySQL中库/表/字段/主键/用户操作示例与详解
238 0
|
关系型数据库 MySQL 数据库
DELETE、TRUNCATE 和 DROP 在MySQL中的区别及使用示例
DELETE、TRUNCATE 和 DROP 在MySQL中的区别及使用示例
398 0
|
SQL 存储 关系型数据库
AI代码提示工具可用于教学功能示例——MySQL
AI代码提示工具可用于教学功能示例——MySQL
205 0
|
存储 SQL 关系型数据库
MySQL存储过程——if判断示例
MySQL存储过程——if判断示例
193 0

推荐镜像

更多