首页 > 数据库 >Java JDBC 入门:通过 JDBC 访问 MySQL

Java JDBC 入门:通过 JDBC 访问 MySQL

时间:2022-08-31 22:44:26浏览次数:76  
标签:JDBC java rs MySQL 点击 mysql Java

下载驱动包

MySQL 官网下载驱动包,最新版本是 8.0.x。我选择的是稍老一点的版本 5.1.49,需要点击 Archives 进入新的下载页面。

再次选择版本号,Operating System 只有一个选项“Platform Independent”,点击 Download 按钮,我选择的是 Zip Archive。

解压刚刚下载的压缩包,可以看到文件 mysql-connector-java-5.1.49.jar 就是后面需要的驱动包。

导入驱动包

如果不导入驱动包,使用 JDBC 时会报错 java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

将上一步准备好的驱动包复制到项目内或者项目外合适的目录,只要文件不丢、方便管理即可。

这里导入驱动包,以 IntelliJ IDEA CE 为例。点击菜单栏 File > Project Structure...,在打开的界面点击左侧的 Modules,

再点击右侧的 Dependencies,会看到一个列表。再点击列表的添加按钮(+符号),选择 Jars or Directories...,找到驱动包文件,即可添加到该列表,最后点击当前界面的 Apply 或者 OK,完成导入。

编写代码

以下代码是一个通过 JDBC 访问 MySQL 的样例代码

package com.ericling.exercise;

import java.sql.*;

/**
 * @author EricLing
 */
public class MySqlExercise {
    public static void main(String[] args) {
        try {
            // 加載驅動包
            Class.forName("com.mysql.jdbc.Driver");
        } catch (ClassNotFoundException exception) {
            exception.printStackTrace();
        }

        try {
            // 連接數據庫
            Connection connection = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/demo", "test_user", "*this-is-password*");

            // 创建 Statement 对象,用于执行 SQL 语句
            Statement statement = connection.createStatement();
            ResultSet rs = statement.executeQuery("select * from students");
            // ResultSet 是结果集,相当于迭代器,一次获取一行记录
            while (rs.next()) {
                System.out.println(rs.getInt(1) + "\t" + rs.getString(2));
            }

            rs.close();
            connection.close();
        } catch (SQLException throwable) {
            throwable.printStackTrace();
        }
    }
}
复制代码

在使用 JDBC 操作 MySQL 数据时,当程序结束时,它会自动关闭 MySQL 连接。但最好是在不需要的时候,立即关闭连接。

常见问题

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

Caused by: java.net.ConnectException: Connection timed out: connect

连接错误,连接超时,无法与数据库建立连接。可能是数据库的地址、端口错误,或者网络异常。

java.sql.SQLException: Access denied for user 'test_user'@'192.168.11.107' (using password: YES)

准备连接 MySQL 数据库的账号或密码错误。

java.sql.SQLException: Before start of result set

ResultSet 是结果集,如果结果集中有数据,必须调用 next() 方法才能拿到第一行记录,再次调用则拿到第二行数据。


注:本文首发于掘金

标签:JDBC,java,rs,MySQL,点击,mysql,Java
From: https://www.cnblogs.com/yangcaoderen/p/16644780.html

相关文章

  • 菜鸟学Java之JDBC(一)
    JDBC(JavaDatabaseConnectivity):一组通用的SQL数据库存取和操作的公用API,定义了用来访问数据库的标准java类库(java.sql,javax.sql),包括供开发人员使用的面向应用的JavaAPI......
  • JSP(Java Server Pages)
    JSP(JavaServerPages)Java特有的页面技术 淘汰原因:1.必须要有java环境2.必须要有tomcat环境3.jsp要有编译过程解析成本太高效率低 jsp脚本片段语法:<%....%......
  • MySQL连接查询
    目录左连接右连接子查询左连接​ 左连接以tb_students_info为基表,以tb_course为参考表,进行查询时可以查询到基表tb_students_info和参考表tb_course匹配的条件,如果基表......
  • Java从json串中获取某个值
    Java从json串中获取某个值java对象是不能直接传输,只有json对象转成字符串可以进行传输故传输中都是json进行的接收到json数据之后java在进行解析转换成为字符串。......
  • JavaScript之数组常用API
    这篇文章主要帮助大家简单理解数组的一些常用API用法,许多小伙伴常用方法记不住?别急,看完下面的介绍您一定就会明白各个方法是如何用的了......
  • 【Java基础】类和对象
    1.类人这个类有3个属性和会走路的方法2.对象新建两个具体的对象,每个对象都有类的属性和方法publicstaticvoidmain(String[]args){Personzhangsan......
  • redis+java简单6位数验证码验证
    实现思路定义一个方法实现随机二维码publicstaticStringgetCode(){//发送六位数验证码Randomrandom=newRandom();Stringcode="......
  • Java实现greenplum数据库中csv文件的导入和导出
    Java实现greenplum数据库中csv文件的导入和导出背景:greenplum数据库是在开源的PostgreSQL的基础上采用MPP架构实现的关系型分布式数据库,在使用greenplum数据库进行开发的......
  • Java中“接口”可以作为方法的返回值吗?
    可以返回接口,接口虽然不能被实例化,但是接口的实现类都可以向上转型为接口。所谓面向接口编程是指我们在编写代码时对数据参数的定义尽量写成接口,待真正实现的时候再用实际......
  • Java常用类之StringBuffer、StringBuilder类
    由于String的特性:内容一旦声明则不可改变,如果要改变,改变的肯定是String的引用地址。那么如果一个字符串要经常改变,此时使用String就不太合适,从而使用StringBuffer或StringB......