• 使用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`") //返回第一个
    

      

     最后贴上表结构:

  • 相关阅读:
    Redis集群启动脚本
    查看表结构
    MySQL删除冗余数据
    Java中的阶乘
    MySQL中IFNULL,ISNULL和NULLIF
    最小化安装CentOS7后要做的30件事情
    VMware的CentOS部署环境
    CentOS 上的 FirewallD 简明指南
    CentOS安装Java环境
    Linux中一些常用的很巧妙的命令
  • 原文地址:https://www.cnblogs.com/houzheng/p/10684232.html
Copyright © 2020-2023  润新知