昨天学习 Java 的数据库部分,就试着写了一下 JDBC 连接的代码,并尝试与数据库进行连接。中间也是遇到了一些问题,解决之后,在这里分享一下,也算做个记录。(有写的不对的地方,欢迎留言)
一、Navicat 创建数据库
1.首先装这个数据库可视化的软件:Navicat for MySQL
(就是下面这个啦)这个就不多说了,需要的自己百度教程;
2. 建立连接
输入连接名称,用户名、密码,然后 OK 就可以创建新的连接了。
这样新的连接就建立好了
3. 创建数据库
右键 刚创建的 Test 连接,然后 New Database,创建数据库,就是下面的界面;
输入数据库名称,选择编码格式,OK;
点击 Test ,会发现里面已经有刚才创建的数据库 databasetest,数据库创建成功;
4. 创建数据库表
点击 databasetest 后,右键 Table,选择 New Table,新建表;
新建表的界面如下,输入表头内容,以及数据类型,设置主键 等等;
保存表,输入表名;
保存的时候发现,主键那块设置可以为 NULL 了,就会提示错误,改一下再保存;
创建表完成,发现 Table 下多了一张新的表;
5. 给表中添加内容
自己添加数据库表的内容即可;
这样就好了,在 Navicat 里的简单操作就是这些了。
下面讲一下在 Java 代码里的操作。
二、JDBC 连接Java代码
1. Java 代码
这里先把代码贴上,有一些我遇到的问题,在后面叙述;
public class ConnMySQL { public static void main(String[] args) throws Exception { //加载驱动 Class.forName("com.mysql.cj.jdbc.Driver"); String url = "jdbc:mysql://localhost:3306/databasetest"; String user = "root"; String password = "root"; try( //用 DriverManager 获取数据库连接 //返回的 Connection 就代表了 Java 程序和数据库的连接 Connection conn = DriverManager.getConnection(url, user, password); //使用 Connection 来创建一个 Statement 对象 Statement stmt = conn.createStatement(); //执行 SQL 语句 ResultSet rs = stmt.executeQuery("select * from student")) { while (rs.next()){ String number = rs.getString("number"); String name = rs.getString("name"); int age = rs.getInt("age"); System.out.println(number + "---" + name + "---" + age); } } } }
2. 报错:Exception in thread “main” java.lang.ClassNotFoundException: com.mysql.jdbc.
查了原因之后发现,是因为少了一个包:mysql-connector-java-x.x.x-bin.jar;(注意:看自己的 MySQL 版本,选择合适的安装包)
这里放一个链接,是 8.0.15 的,如果需要的话可以下载;
链接: https://pan.baidu.com/s/1CZIPnDzn5XUTggQ-M05W1Q
提取码: kdev
下载这个包解压之后,进行如下安装:
这样问题就解决了
3. 报错:Exception in thread “main” java.sql.SQLException: The server time zone value ‘Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.
没错,就是这么长的错,嗯。。。虽然不知道具体什么原因,但查了之后,解决方法如下 :
之前看到的很多 URL 都是这么写的:
String url = "jdbc:mysql://localhost:3306/databasetest"
现在改一下,改成这样:
String url = "jdbc:mysql://localhost:3306/databasetest";
问题就解决了;
可以正常的输出数据库表里的内容;
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
更新日志
- 文章.2004-被遗忘的时光【华博音乐】【WAV+CUE】
- 群星《青葱韶歌》原力计划·毕业季企划合辑[FLAC+分轨][661M]
- 群星《抖烧 DSD》抖音神曲 [WAV分轨][992M]
- 庾澄庆《哈林天堂》索尼音乐[WAV+CUE][1G]
- 英雄联盟全球总决赛多久打一次 全球总决赛举办频率介绍
- 第二届老头杯什么时候开始选人 第二届老头杯选人时间介绍
- 英雄联盟第二届老头杯什么时候开始 老头杯s2赛程时间队伍名单汇总
- AI赋能卓越显示技术共筑数字未来:三星显示器产品矩阵亮相2024进博会
- 技术剖析:天玑9400如何打造移动最强GPU和游戏体验?
- 顶级装备 实力登顶:三星显示器双十一焕新升级最后冲刺
- 陈影《绝色靓声》WAV+CUE
- 龚玥《禅是一枝花(6N纯银SQCD)》原抓WAV+CUE
- 刘德丽《寂寞在唱歌HQCD+A2HD5》[WAV+CUE]
- 萧亚轩《钻石糖》金牌大风[WAV+CUE][989M]
- 王菲《王菲精选-菲卖品》环球唱片SHM-SACD[ISO][1.9G]