【这是一猿小讲的第 41 篇原创分享】
今天雅兴又起,再续爱情36技。大概率你们已经淡忘了 Java 那小子与 Python 菇凉浪漫的爱情故事,容我再帮着给大家回味一下。
Java 那小子先是靠着《爱情36技之追美妹的技术》抱得美人归;考虑到爱情保鲜,Java 那小子又借着《爱情36技之暗送秋波的技术》实现了对 Python 菇凉的暗送秋波;为了能够能让爱情更长远,然后两人靠着《爱情36技之趣味相投》实现了志同道合,Python 菇凉从此也踏上学习编程之路;为了让努力学习编程的 Python 菇凉稍微放松一下,特意安排一次游玩,没成想,游玩途中却出现了《爱情36技之Bug大战》;为了让 Python 菇凉能学好编程技术,考虑到好的学习方法是成功的一半,于是 Java 那小子在猿门开坛设法进行了《爱情36技之猿门授渔》;由于繁琐的编程知识向 Python 菇凉的袭来,Python 唯恐浪漫的旅行记忆,会被繁琐的编程知识抹去,考虑到好记性不如烂笔头,于是让 Java 那小子实现《爱情36技之记忆永存》。
让故事给技术加点料,说句心里话,未曾想爱情36技,还真连载了几篇,无论质量如何,总之是数量是跟上了(捂嘴笑),希望你们能够喜欢。
好了,准备好小板凳,今天的故事又要开始啦。
1.
承接上次,在 MySQL 兄弟的帮助下,Java 那小子完成了 Python 菇凉的浪漫旅途记忆的存储,但是 Python 菇凉感觉查询不太方便,每次要打开一个黑布隆冬的界面,能否自研一套个性化的工具,完成对 MySQL 兄弟的 CRUD?
Java 那小子会意一笑。“这不就是我的专长么,看来今天有必要,再给你介绍一个新朋友 JDBC?”
“JDBC?啥是JDBC?” Python 菇凉一脸懵的问。
Java 那小子发自内心的说道:“JDBC 是定义的一套数据库连接规范,也就是定义了一系列的接口,然后让各个数据库厂商去实现,其中 MySQL 兄弟就实现了规范,出了一套 mysql-connector-java。”
Python 菇凉满怀期待的说:“那别瞎扯啦,咱们赶紧用它实现一个 MySQL 的客户端呗?”
“好,那你坐稳扶好,我要开车啦。” Java 那小子兴奋的说道。
2.
首先咱们要引入 MySQL 兄弟实现的驱动包。
代码语言:javascript复制<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.17</version>
</dependency>
接着要拆分一下目标,把大象放到冰箱里大概分为那几步?
接着定义能够获取对 MySQL 兄弟的连接方法。
考虑到功能复用,紧接着定义一个接收控制台输入的方法。
接下来就可以依据不同的命令,做不同的操作了,我们可以支持 quit 退出系统、commit 提交事务、rollback 回滚事务。
考虑到功能复用,我们定义一个可以实现从控制台输入中,截取出实际输入命令的方法。
接着定义处理事务的方法,相当之简单,输入是 commit 指令,就进行提交事务,否则就回滚事务。
紧跟着就实现重头戏,CRUD 全在这里啦,可以认为是这篇分享的 C 位。
然后就是定义工具类 JdbcUtil,完成结果集打印以及资源释放,重点在结果集打印,资源释放的图就不截了。
代码码完,能否经得起检验,是骡子是马,是时候牵出来溜一圈啦。运行程序,根据提示依次输入数据库连接 URL、用户名、密码,效果如下:
意料之中,成功连上数据库。
为了更好的体验,把上次为 Python 菇凉创建的浪漫旅行的数据库先删除。
然后看看是否真删除掉了呢?
接下来就为 Python 菇凉再创建一个专门存储浪漫旅行的数据库 travel。
接下来使用 travel 库。
在 travel 库下,创建表 memories。
插入 Python 菇凉去土耳其的旅行记录。
查询记录是否插入成功。
事务回滚试一下,效果也是杠杠滴。
看到实现效果,Python 菇凉流露出甜蜜的笑容。
3.
经验分享,如果中文出现“???”,检查一下数据库连接URL,把 useUnicode=true&characterEncoding=utf-8 拼接上就行了。
好了,今天的分享就到这儿吧,主要分享一款玩转 JDBC 的工具,适合 Java 猿(媛)们入门学习使用,如果面试中再问道 JDBC的问题,不妨提提这次的编码经历,说不定会加分。另外剩下的 update、delete、drop、quit 等等就交给你们自己去验证吧。