Groovy环境变量配置Mysql连接

头像
码农笔录
2022-12-02 后端 阅读量 2786

最近接触了一下groovy,网上的资料还是比较少的,而且比较旧。今天写个文章记录一下groovy环境配置和连接数据库,以及一个可能踩坑的地方。如果你会java,那你上手groovy很快,如果你不会java,那你自求多福。

一、下载sdk

作者写文章时,最新版本是4.0.6,windows和linux都点击这个下载。有一点需要注意的是groovy需要jdk环境,1.8+

官网下载地址, 如果下载不下来,可以点击国内下载地址

image.png

二、环境变量

windows环境

首先配置 GROOVY_HOME,是不是很熟悉,然后在path中增加 %GROOVY_HOME%\bin 这样就配置好了

image.png

image.png

linux环境

执行 vi /etc/profile 在最底下增加如下配置,然后执行source /etc/profile让配置生效

export GROOVY_HOME=/data/groovy-4.0.6 export PATH=$GROOVY_HOME/bin:$PATH

到这里环境变量就配置好了,验证一下,还是熟悉的配方 groovy -verison

image.png

image.png

三、实战

环境配置好了,就来实战吧,编辑器可以用idea,提示还是比较友好的。

执行 groovy MysqlClassFunc.groovy 就可以执行。有没有像python

可以选择class,或者单个脚本。如果选择class就和java一样,你需要整个main方法运行,如果是脚本,就像python一样,直接写代码就可以运行。

image.png

class方式,如果会java看一眼就懂了,这不就是java么。

file

脚本就是单文件,从上到下执行,有没有像python

println 'hello word' import groovy.sql.Sql url = 'jdbc:mysql://127.0.0.1:3306/groovytst?useUnicode=true&characterEncoding=utf8' driver = 'com.mysql.cj.jdbc.Driver' username = 'root' passwd = 'root' //可以指定maven仓库 @GrabResolver(name = 'aliyun', root = 'https://maven.aliyun.com/repository/public') //加载数据库连接驱动包 @Grab('mysql:mysql-connector-java:8.0.23') @GrabConfig(systemClassLoader = true) //创建sql实例 def sql = Sql.newInstance(url, username, passwd, driver) rows = sql.rows('select * from testab') println(rows) println("共有${rows.size()}行数据") rows.each { println(it) } rows.each { println "name:${it['name']}" }

四、连接mysql

//可以指定maven仓库,不指定就去默认的maven仓库去下载
@GrabResolver(name = ‘aliyun’, root = ‘https://maven.aliyun.com/repository/public’)

//加载数据库连接驱动包,用过gradle的人是不是很眼熟,gradle就是用的groovy
@Grab(‘mysql:mysql-connector-java:8.0.23’)
对应的maven pom文件的写法

<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.26</version> </dependency>

如果用脚本方式,参考上面的代码,如果class,稍微有点区别,参考下面的代码

import groovy.sql.Sql @Grapes([ @GrabResolver(name = 'aliyun', root = 'https://maven.aliyun.com/repository/public'), @Grab('mysql:mysql-connector-java:8.0.23'), @GrabConfig(systemClassLoader = true) ]) class Mysqlcls { static void main(String[] args) { testStaticMysql() } void testMysql() { testStaticMysql() } static void testStaticMysql() { def url = 'jdbc:mysql://127.0.0.1:3306/groovytst?useUnicode=true&characterEncoding=utf8' def driver = 'com.mysql.cj.jdbc.Driver' def username = 'root' def passwd = 'root' def sql = Sql.newInstance(url, username, passwd, driver) def rows = sql.rows('select * from testab') println(rows) println("共有${rows.size()}行数据") rows.each { println(it) } rows.each { println "name:${it['name']}" } } }

五、踩坑记录

1.如果你print打印乱码

groovy --encoding=UTF-8 mysql.groovy

–encoding=UTF-8 要放到源文件之前,可以解决乱码问题

2.jar下载目录

默认的包会下载到 .groovy/grapses下,如果你服务器不能连接外网,那你就把本地的jar包直接传上去,如果想从指定目录读取

groovy -Dgrape.root=/repo/grape mysql.groovy

-Dgrape.root=/repo/grape 指定jar包位置

image.png