JDBC 的使用 (包含 MySQL Navicat安装)

一、准备工作

需要安装的软件:

        1、MySQL  点击打开链接

            因为5.7以后没有my.ini 需要自己配置,请查看 点击打开链接

        2、如果不喜欢命令行,喜欢图形化界面下载 Navicat 点击打开链接

             根据不同的系统选择不同的版本,plantform independent 好像可以适配所有版本,如果你是Windows 下载这个版本,这个是需要付费的,破解教程请参考 点击打开链接(推荐下载这个版本,因为破解操作简单,我使用的是这个版本)

        3、下载驱动器请进入官网 点击打开链接

 

配置环境变量:

请参考:点击打开链接(配置过 Java 环境的应该都知道怎么操作)

MySQL 命令请查看 https://blog.csdn.net/ithomer/article/details/5131863


MySQL 加载 JDBC 驱动(两种方法):

一、一劳永逸

        将 上面下载的第三个软件解压打开,将其中的 mysql-connector-java-8.0.11.jar文件(根据不同的版本名字不一样)复制到你配置 java 环境时的jdk->jre->lib->extm 目录下(打开可以看到有很多.jar 文件,我的是 C:\Program Files\Java\jdk1.8.0_171\jre\lib\ext),不清楚或忘记在哪里的可以通过查看你的环境变量的%JAVA_HOME 去配置。


二、每次新建项目都需要导入(很麻烦)

        在Eclipse中,鼠标选中项目工程,右键点击Build Path,选择 Configure Build Path,会跳出一个属性框图。选择Java Build Path下的Libraries,点击Add External JARs,浏览到 JDBC 的 MySQL 驱动的jar包,点击确定,将其导入到项目中。


        



二、JDBC概念

每个数据库产商有自己的数据库驱动程序(数据库厂商自己写的代码),提供和数据库的交互

数据库驱动程序 <=> 此数据库的交互接口


三、连接的步骤

四、代码实现

package cn.swu.stormliu.testjdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class Demo01 {

    public static void main(String[] args) {
        //声明Connection对象
        Connection con;
        //驱动程序名
        String driver = "com.mysql.cj.jdbc.Driver";
        //URL指向要访问的数据库名studb
        String url = "jdbc:mysql://localhost:3306/studb ";
        //MySQL配置时的用户名
        String user = "root";
        //MySQL配置时的密码
        String password = "root";
        
        //遍历查询结果集
        try {
            
            //加载驱动程序
            Class.forName(driver);
            //1.getConnection()方法,连接MySQL数据库!!
            con = DriverManager.getConnection(url,user,password);
            
            if(!con.isClosed())
                System.out.println("Succeeded connecting to the Database!");
            //2.创建statement类对象,用来执行SQL语句!!
            Statement statement = con.createStatement();
            //要执行的SQL语句
            String sql = "select * from t_stu";
            String sql_insert="insert into t_stu (sname,address) values ('zhupipi','chongqing')";
            
            
            statement.execute(sql_insert);
            //3.ResultSet类,用来存放获取的结果集!!
            
            ResultSet rs = statement.executeQuery(sql);
            System.out.println("-----------------");
            System.out.println("执行结果如下所示:"); 
            System.out.println("-----------------"); 
            System.out.println("姓名" + "\t" + "地址"); 
            System.out.println("-----------------");  
            
            String address = null;
            
            String name = null;
            
            while(rs.next()){
                //获取sname这列数据
                name = rs.getString("sname");
                //获取address这列数据
                address = rs.getString("address");
                //输出结果
                System.out.println(name + "\t" + address);
                
            }
            rs.close();
            con.close();
            
            
            
        }catch(ClassNotFoundException e) {
            //数据库驱动类异常处理
            System.out.println("Sorry,can`t find the Driver!"); 
            e.printStackTrace();
        }catch(SQLException e) {
            //数据库连接失败异常处理
            e.printStackTrace(); 
        }catch (Exception e) {
             e.printStackTrace();
            
        }finally{
            System.out.println("数据库数据成功获取!!");
            
        }

    }

}

 
 

五、可能出现的错误:

网上很多代码都比较老,有很多问题,比如这个,如果运行会出现以下错误:




    使用的数据库是MySQL,驱动是8.0.1,这是由于数据库和系统时区差异所造成的,在jdbc连接的url后面加上serverTimezone=GMT即可解决问题,如果需要使用gmt+8时区,需要写成GMT%2B8,否则会被解析为空。再一个解决办法就是使用低版本的MySQL jdbc驱动,5.1.28不会存在时区的问题


解决方法:在后面添加 TimeZone


还有的的有警告:

Tue May 29 14:43:44 CST 2018 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.

解决方法:

在mysql连接字符串url中加入ssl=true或者false即可,如下所示。

url=jdbc:mysql://127.0.0.1:3306/framework?characterEncoding=utf8&useSSL=true


-------------------------------------------------------------------------------------------------

以上学习参考 尚学堂 Java 300集 点击打开链接

以上链接来自我遇到困难时百度的网友的博客


猜你喜欢

转载自blog.csdn.net/qq_35583772/article/details/80494225