JDK1.7下测试ConnectorJ连接MySQL8.0

直接说,JDK1 .7 配MySQL8 .0,连接有问题,得用5 .1 版MySQL Connector/J。

先用5 .1 .4 6 版试试,不行就降级到5 .1 .4 0版,看看哪版行。

JDK版本搞错了吧?用JAVA_HOME=/usr/lib/jvm/java-1 .7 ...改过来。

测试代码得自己写,比如ShowDbinfo.java,连接数据库看结果。

GreatSQL社区有救,去那里问吧,链接都给你了。

再见Navicat!这个工具才是YYDS

哈,提到DBeaver,这可是个让我印象深刻的小工具。
说实话,自从用了它,我的数据库管理生活真是轻松了不少。
咱们就聊聊这款软件吧。

首先,得说说它的核心特性。
我接触DBeaver是2 01 6 年左右,那时候我刚转行到数据库开发,正愁着没有合适的工具。
DBeaver能跨平台使用,这在当时对我来说是个大福利,因为它支持Windows、Linux、macOS,我换电脑都不用担心数据管理的问题。
而且它是开源的,这就意味着我可以免费使用,省了不少银子。

再来说说插件扩展和工具集成。
这个特点我特别喜欢,因为DBeaver是基于Eclipse框架开发的,这就意味着我可以利用Eclipse的插件系统来扩展它的功能。
我那时候用ER图工具的时候,就是通过这个方式轻松集成的。
我记得当时为了做数据导入导出,我还添加了不少插件,大大提高了效率。

它的数据库支持也很广泛。
通过JDBC连接,几乎所有的主流关系型数据库它都支持,包括MySQL、PostgreSQL、Oracle、SQLServer。
而且,商业版本还支持MongoDB、Redis这些NoSQL和大数据平台,这在我接触大数据项目时,简直就是救星。

安装过程我也得提一提。
社区版可以通过官方网站或Github下载,安装包或解压版任选,还支持中文,安装过程简单,但是得注意,它依赖JRE运行环境。
我第一次安装的时候,就因为没注意这一点,差点出了洋相。

连接数据库这块,我也得说说。
新建连接的流程很简单,通过“数据库”菜单下的“新建连接”就可以打开向导窗口。
比如我那时候用PostgreSQL,填写完主机、端口、数据库、用户、密码等信息,再点击“测试链接”验证一下,就能成功连接。

至于功能使用,我特别喜欢它的ER图生成功能。
操作也很简单,在“项目”视图中的“ER Diagrams”右击,创建新的ER图,选择数据库连接和对象,就能生成ER图了。
虽然目前只能从现有数据库生成ER图,不支持手动创建,但对我来说已经足够了。

功能丰富,但我也得说说它的限制。
比如ER图功能,目前就只能从现有数据库生成,不能手动创建。
不过,ER图支持排版、显示设置及打印为图片,这个对我来说已经足够。

总的来说,DBeaver是个好工具,功能强大,使用方便。
虽然有时候会遇到一些小问题,但瑕不掩瑜,它确实让我在数据库管理上省了不少心。
如果你是数据库开发者,我强烈建议你试试它。

Shutdown SpringBoot App

哎,说起来,这MavenWrapper启动的SpringBoot应用关闭,还真是挺有讲究的。
我之前就遇到过这种情况,得根据不同的启动方式来选择合适的关闭方法。

首先,咱们得看是通过mvnwspring-boot:run启动的。
这种情况下,常规关闭是最推荐的做法。
你只需要在启动应用的终端窗口里直接按Ctrl+C,SpringBoot就会接收到中断信号,然后开始优雅地关闭。
这个过程包括停止接收新请求、完成已接收请求的处理、释放数据库连接、线程池等资源,最后停止内嵌的Web服务器,比如Tomcat或Jetty。

但万一应用挂了或者你急需停止它,那怎么办呢?这时候,你可以在Linux/macOS上用ps-ef|grepjava找到应用的进程ID(PID),然后运行kill-9 来强制终止进程。
在Windows上,你可以在任务管理器里找到Java进程并结束,或者通过命令行taskkill/F/PID来强制关闭。
不过,这强制终止可能会导致数据不一致或者资源泄漏,所以得慎用。

再来说说,如果应用已经打包成JAR文件,然后用java-jartarget/your-app.jar启动,关闭方式跟上面是一样的。
你可以优雅地按Ctrl+C,或者用系统工具强制终止Java进程。

有意思的是,如果你是在IDE里直接运行SpringBoot应用,比如IntelliJ IDEA,那你就简单多了。
直接点击IDE界面中的红色停止按钮,IDE就会发送终止信号,触发优雅停机,效果跟按Ctrl+C一样。

当然,还有一些关键注意事项。
比如,优雅停机可能会有超时问题,SpringBoot默认等待3 0秒完成停机流程,你可以在application.properties里配置调整。
在生产环境,比如在Kubernetes容器环境中,应该通过发送SIGTERM信号来实现优雅退出。

还有一点,MavenWrapper只是用来构建和启动应用的,它不影响运行时的关闭逻辑,所以不管是不是用Wrapper,关闭方式都是一样的。

最后,验证关闭状态也很重要。
你可以检查终端是否退出,查看日志输出,访问应用端口确认无响应,或者用netstat或lsof命令确认端口未被占用。

总的来说,优先使用Ctrl+C或IDE停止按钮实现优雅关闭,只有在必要时才采用强制终止。
这样处理关闭流程,才能避免数据丢失和资源残留问题。