zl程序教程

您现在的位置是:首页 >  后端

当前栏目

Windows系统下,采用java原生操作JDBC连接数据库,并进行操作

2023-09-27 14:24:43 时间

文章转载自:https://www.joshua317.com/article/17

1.java中mysql的jdbc驱动版本选择

Java 如何使用 JDBC 连接 MySQL 数据库呢?

首先我们先看下下载驱动的官方地址:

驱动版本下载地址:https://dev.mysql.com/downloads/connector/j/

image

但是jdbc选择哪个版本比较合适呢?也就是说,jdk版本、mysql的版本对应的jdbc的版本的选择如何保持一直呢?

请看下官方的说明:

https://dev.mysql.com/doc/connector-j/5.1/en/connector-j-versions.html

https://dev.mysql.com/doc/connector-j/8.0/en/connector-j-versions.html

image

image

image

2.jdbc驱动的目录位置,由于此次是原生的java调用,不涉及到其他方式(如maven,源码安装等形式),所以直接放到类库里面,

官方文档参考:

https://dev.mysql.com/doc/connector-j/5.1/en/connector-j-installing.html

https://dev.mysql.com/doc/connector-j/8.0/en/connector-j-installing.html

一般放在jre目录下的ext目录里面或者jdk目录下面的jre目录下面的ext目录,我选择的是jdbc 5.1.X的版本。

image

3.原生JDBC连接数据库代码示例

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

/**
 * Windows系统下,采用java原生操作JDBC连接数据库,并进行操作
 * 不依赖于任何框架,直接通过记事本或者EditPlus,notepad++、 vim、sublime等编辑器等编写java
 * Java中使用JDBC连接数据库
 *  1) 加载驱动
 *  2) 获取数据库连接
 *  3) 创建执行sql的语句
 *  4) 执行语句
 *  5) 处理数据库的返回结果
 *  6) 释放资源
 * @author joshua317
 */

public class MysqlJDBCTest {
    public static void main(String[] args) {
        connect();
    }
    public static void connect () {
        //根据自己的mysql地址进行调整
        String url = "jdbc:mysql://192.1.1.198:3306/joshua317?characterEncoding=utf-8&useSSL=false";
        String user = "joshua317";
        String password = "WlfEQXUBCvnZbZhV";
        try {
            //1.加载驱动程序
            Class.forName("com.mysql.jdbc.Driver");
            //2.获得数据库链接
            Connection conn = DriverManager.getConnection(url, user, password);
            //通过数据库的连接操作数据库
            int id = 110000;
            //3.创建执行sql的语句
            String sql="select * from area where id=?";
            PreparedStatement statement = conn.prepareStatement(sql);
            statement.setInt(1, id);
            //3.执行语句
            ResultSet rs = statement.executeQuery();
            //4.处理数据库的返回结果(使用ResultSet类)
            while (rs.next()) {
                System.out.println(rs.getString("id") + " " + rs.getString("name"));
            }
            //6.释放资源
            conn.close();
            rs.close();
            statement.close();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

4.遇到的问题

4.1.jdbc驱动未找到

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

参考文档:

https://blog.csdn.net/huangbiao86/article/details/6428608

https://www.cnblogs.com/hejjon/p/10987070.html

https://www.cnblogs.com/swxj/archive/2013/06/05/3119206.html

4.2.ssl链接问题

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 complian ce with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disab le SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.

参考文档:

https://www.cnblogs.com/morganlin/p/12090944.html

5.参考的文档:

5.1.mysql:Java通过驱动包(jar包)连接MySQL数据库---步骤总结及验证

https://blog.csdn.net/m0_37482190/article/details/86497497

5.2.jdk放置的目录位置

https://segmentfault.com/q/1010000020087736?utm_source=tag-newest

5.3.java链接mysql使用jdbc的示例

Java中使用JDBC连接数据库

https://blog.csdn.net/weixin_43287508/article/details/86613644