优选主流主机商
任何主机均需规范使用

如何使用Navicat高效创建数据库及通过JDBC实现无缝连接的详细操作指南

昨天学习 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 代码

这里先把代码贴上,有一些我遇到的问题,在后面叙述;

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 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?useunicode=true&usejdbccomplianttimezoneshift=true&uselegacydatetimecode=false&servertimezone=utc" ;   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 都是这么写的:

1 string url = "jdbc:mysql://localhost:3306/databasetest"

现在改一下,改成这样:

1 string url = "jdbc:mysql://localhost:3306/databasetest?useunicode=true&usejdbccomplianttimezoneshift=true&uselegacydatetimecode=false&servertimezone=utc" ;

问题就解决了;

可以正常的输出数据库表里的内容。

未经允许不得转载:搬瓦工中文网 » 如何使用Navicat高效创建数据库及通过JDBC实现无缝连接的详细操作指南