Java JDBC连接数据库常见操作总结

yizhihongxing

Java JDBC连接数据库常见操作总结

JDBC介绍

Java 数据库连接 (Java Database Connectivity, JDBC) 是一种用于执行 SQL 语句的 Java API,可以为多个关系数据库提供统一访问,它由一组用 Java 语言编写的类和接口组成,可以使 Java 应用程序轻松地访问数据库。

JDBC 本质上是通过 JNI(Java Native Interface)来调用本地代码实现的。这些本地代码组成的库被称作 JDBC 驱动程序(JDBC Driver)。JDBC 主要分为四个部分:JDBC 驱动管理器、JDBC 驱动程序、JDBC API 和 JDBC 数据库的连接。

JDBC连接数据库

使用 JDBC 连接数据库只需以下几步:

  • 导入 JDBC 驱动包:需要将 JDBC 驱动包放到 CLASSPATH 中,否则程序无法找到 JDBC 驱动。
  • 加载 JDBC 驱动程序:可以使用 Class.forName() 方法来加载 JDBC 驱动,例如加载 MySQL 驱动的代码为:Class.forName("com.mysql.jdbc.Driver");
  • 获取数据库连接对象:使用 DriverManager.getConnection() 方法获取数据库连接对象,需要传入数据库 URL、用户名和密码。
  • 执行 SQL 语句:可以使用 Statement 或 PreparedStatement 对象执行 SQL 语句。
  • 处理查询结果:使用 ResultSet 对象处理查询结果。

下面我们将通过两个示例说明如何连接数据库。

示例1:连接 MySQL 数据库

步骤1:导入 JDBC 驱动包

假设我们使用 MySQL 数据库,需要先下载 MySQL 的 JDBC 驱动包,下载地址为:https://dev.mysql.com/downloads/connector/j/。将下载得到的 JDBC 驱动包放到项目的 lib 目录下。

步骤2:加载 JDBC 驱动程序

加载 MySQL 驱动的代码为:

Class.forName("com.mysql.jdbc.Driver");

步骤3:获取数据库连接对象

获取 MySQL 数据库连接对象的代码为:

String url = "jdbc:mysql://localhost:3306/test?useSSL=false";
String user = "root";
String password = "123456";
Connection conn = DriverManager.getConnection(url, user, password);

其中,url 是连接字符串,test 是数据库名称,root 是用户名,123456 是密码。这里的 useSSL=false 表示不使用 SSL 连接。

步骤4:执行 SQL 语句

假设我们要执行一条查询语句,查询表中的所有数据,代码如下:

Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM user");

步骤5:处理查询结果

我们可以使用 ResultSet 对象处理查询结果,代码如下:

while (rs.next()) {
    int id = rs.getInt("id");
    String name = rs.getString("name");
    String email = rs.getString("email");
    System.out.println(id + "\t" + name + "\t" + email);
}

完整的示例代码如下:

import java.sql.*;

public class MySQLDemo {
    public static void main(String[] args) throws Exception {
        Class.forName("com.mysql.jdbc.Driver");

        String url = "jdbc:mysql://localhost:3306/test?useSSL=false";
        String user = "root";
        String password = "123456";
        Connection conn = DriverManager.getConnection(url, user, password);

        Statement stmt = conn.createStatement();
        ResultSet rs = stmt.executeQuery("SELECT * FROM user");
        while (rs.next()) {
            int id = rs.getInt("id");
            String name = rs.getString("name");
            String email = rs.getString("email");
            System.out.println(id + "\t" + name + "\t" + email);
        }

        rs.close();
        stmt.close();
        conn.close();
    }
}

输出结果为:

1   Alice   alice@example.com
2   Bob bob@example.com
3   Carol   carol@example.com

示例2:连接 Oracle 数据库

步骤1:导入 JDBC 驱动包

假设我们使用 Oracle 数据库,需要先下载 Oracle 的 JDBC 驱动包,下载地址为:http://www.oracle.com/technetwork/database/features/jdbc/default-2280470.html。将下载得到的 JDBC 驱动包放到项目的 lib 目录下。

步骤2:加载 JDBC 驱动程序

加载 Oracle 驱动的代码为:

Class.forName("oracle.jdbc.driver.OracleDriver");

步骤3:获取数据库连接对象

获取 Oracle 数据库连接对象的代码为:

String url = "jdbc:oracle:thin:@localhost:1521:orcl";
String user = "scott";
String password = "tiger";
Connection conn = DriverManager.getConnection(url, user, password);

其中,url 是连接字符串,localhost 是主机名,1521 是端口号,orcl 是数据库实例名。这里的 thin 表示用 thin 驱动连接,@ 后面的 : 表示用冒号隔开,依次是主机名、端口号和数据库实例名。

步骤4:执行 SQL 语句

假设我们要执行一条查询语句,查询表中的所有数据,代码如下:

Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM emp");

步骤5:处理查询结果

我们可以使用 ResultSet 对象处理查询结果,代码如下:

while (rs.next()) {
    int empno = rs.getInt("empno");
    String ename = rs.getString("ename");
    String job = rs.getString("job");
    System.out.println(empno + "\t" + ename + "\t" + job);
}

完整的示例代码如下:

import java.sql.*;

public class OracleDemo {
    public static void main(String[] args) throws Exception {
        Class.forName("oracle.jdbc.driver.OracleDriver");

        String url = "jdbc:oracle:thin:@localhost:1521:orcl";
        String user = "scott";
        String password = "tiger";
        Connection conn = DriverManager.getConnection(url, user, password);

        Statement stmt = conn.createStatement();
        ResultSet rs = stmt.executeQuery("SELECT * FROM emp");
        while (rs.next()) {
            int empno = rs.getInt("empno");
            String ename = rs.getString("ename");
            String job = rs.getString("job");
            System.out.println(empno + "\t" + ename + "\t" + job);
        }

        rs.close();
        stmt.close();
        conn.close();
    }
}

输出结果为:

7369    SMITH   CLERK
7499    ALLEN   SALESMAN
7521    WARD    SALESMAN
7566    JONES   MANAGER
7654    MARTIN  SALESMAN
7698    BLAKE   MANAGER
7782    CLARK   MANAGER
7788    SCOTT   ANALYST
7839    KING    PRESIDENT
7844    TURNER  SALESMAN
7876    ADAMS   CLERK
7900    JAMES   CLERK
7902    FORD    ANALYST
7934    MILLER  CLERK

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java JDBC连接数据库常见操作总结 - Python技术站

(0)
上一篇 2023年6月16日
下一篇 2023年6月16日

相关文章

  • Spring Security如何实现升级密码加密方式详解

    Spring Security如何实现升级密码加密方式详解 Spring Security是一个强大且灵活的身份验证框架,可以应用于任何Java应用程序中。它允许您轻松地添加身份验证和授权功能到应用程序中,并且提供了强大的加密和解密功能。本文将详细讲解如何使用Spring Security升级密码加密方式。 什么是密码加密和升级密码加密方式? 密码加密是指将…

    Java 2023年6月3日
    00
  • php使用curl模拟登录后采集页面的例子

    下面是php使用curl模拟登录后采集页面的攻略。 1. 了解curl模拟登录的基本原理 在使用curl模拟登录之前,需要了解一下基本的原理。curl是一个命令行工具,能够通过HTTP或FTP发送请求并获取资源,同时也可以通过数据请求来模拟登录网站。 登录页面的基本原理是通过向服务器发送用户名和密码进行验证,然后在浏览器中直接跳转到用户主页。使用curl模拟…

    Java 2023年6月15日
    00
  • Java编程swing组件JLabel详解以及使用示例

    Java编程swing组件JLabel详解以及使用示例 什么是JLabel? JLabel是Java Swing组件库中的一个组件,用于在GUI应用程序中显示文本或图像。它可以用于标识其他组件的含义,显示应用程序状态或显示与应用程序相关的其他信息。 如何在Java编程中使用JLabel? 创建JLabel 创建JLabel非常简单,只需要实例化该类即可。以下…

    Java 2023年5月20日
    00
  • 微信小程序是什么语言开发的 微信小程序的开发语言介绍

    微信小程序是一种轻量级应用(小程序),通过微信平台进行发布和使用。微信小程序的开发使用的主要语言是JavaScript,同时也支持HTML和CSS。 在微信小程序开发中,需要使用微信提供的基础库(WXML、WXSS和基于JavaScript的逻辑代码)来实现页面的设计和交互功能。同时,微信小程序也支持使用第三方框架进行开发,例如使用Vue.js框架进行开发。…

    Java 2023年5月23日
    00
  • Jdbc的步骤以及简单实现代码

    JDBC是Java Database Connectivity的缩写,它是一种标准的数据库访问方式,可用于连接各种关系型数据库。 JDBC基本步骤包括以下几个环节: 加载数据库驱动程序:通过导入JDBC驱动包将驱动程序加载进来。 建立数据库连接:通过DriverManager类的getConnection方法连接数据库,返回一个Connection对象。 创…

    Java 2023年5月19日
    00
  • 详解jdbc实现对CLOB和BLOB数据类型的操作

    详解JDBC实现对CLOB和BLOB数据类型的操作 什么是CLOB和BLOB CLOB (Character Large OBjects) – 用于存储大文本数据,如文章、博客、新闻等 BLOB (Binary Large OBjects) – 用于存储二进制数据,如图像、音频、视频等 JDBC操作CLOB和BLOB JDBC API提供了对CLOB和BLO…

    Java 2023年5月20日
    00
  • JSP利用过滤器解决request中文乱码问题

    解决request中文乱码问题是Web开发中经常遇到的问题,而JSP中利用过滤器可以非常方便的解决这个问题。下面是基于JSP利用过滤器解决request中文乱码问题的完整攻略: 1. 确定过滤器需求 在使用过滤器解决request中文乱码问题之前,我们需要明确自身需求。即使在同一个项目中,不同的程序员也可能使用不同的过滤器解决request中文乱码问题。 常…

    Java 2023年6月15日
    00
  • 浅谈java异常处理(父子异常的处理)

    浅谈java异常处理(父子异常的处理) 什么是Java异常处理? Java中的异常处理是在程序执行过程中可能出现的问题,并且这些问题可能导致程序运行失败或者终止。Java异常处理机制就是为了解决这些问题而设计的。 在Java中,异常指的是一个事件,它会影响程序的正常执行,需要进行相应的处理。Java中的异常分为两种类型:Checked Exception 和…

    Java 2023年5月28日
    00
合作推广
合作推广
分享本页
返回顶部