Java基础之JDBC的数据库连接与基本操作

Java基础之JDBC的数据库连接与基本操作

Java数据库连接(JDBC)是Java语言中用于与关系型数据库进行交互的一种API(Application Programming Interface)。

本篇攻略主要讲解JDBC的数据库连接和基本操作,包括以下内容:

  • 数据库连接步骤
  • JDBC基本操作(插入、更新、删除、查询)
  • 操作示例

数据库连接步骤

使用JDBC连接数据库,主要需要以下几步:

  1. 注册JDBC驱动:在使用JDBC连接数据库之前,需要先注册相应的JDBC驱动。比如,使用MySQL数据库,则需要注册com.mysql.jdbc.Driver驱动。

示例代码:

java
// 注册JDBC驱动
Class.forName("com.mysql.jdbc.Driver");

  1. 建立数据库连接:使用JDBC连接的关键在于建立数据库连接。为此,需要提供数据库URL、用户名和密码等信息。

示例代码:

java
// 建立数据库连接
String url = "jdbc:mysql://localhost:3306/test";
String user = "root";
String password = "123456";
Connection conn = DriverManager.getConnection(url, user, password);

其中,url是数据库的连接地址,格式一般为:

jdbc:mysql://host:port/databaseName

user和password分别是连接数据库所需的用户名和密码。

  1. 执行SQL语句:建立数据库连接之后,就可以执行SQL语句进行数据库操作了。常见的SQL语句包括插入、更新、删除和查询等。

  2. 关闭数据库连接:完成数据库操作之后,需要及时关闭数据库连接,以释放资源和避免占用过多的系统资源。

示例代码:

java
// 关闭数据库连接
conn.close();

JDBC基本操作

JDBC支持各种各样的数据库操作,下面列举常用的插入、更新、删除和查询操作。

插入数据

插入数据是向数据库中插入一条新纪录的操作。传统的SQL语句一般为INSERT INTO语句。

示例代码:

// 插入一条新纪录
String sql = "INSERT INTO users (name, age, gender) VALUES (?, ?, ?)";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setString(1, "张三");
pstmt.setInt(2, 18);
pstmt.setString(3, "男");
pstmt.executeUpdate();

注:上述代码中的?表示需要通过pstmt.setString()和pstmt.setInt()等方法进行参数设置。

更新数据

更新数据是修改数据库中已有的记录。传统的SQL语句一般为UPDATE语句。

示例代码:

// 更新一条记录
String sql = "UPDATE users SET age = 20 WHERE name = ?";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setString(1, "张三");
pstmt.executeUpdate();

注:上述代码中的?表示需要通过pstmt.setString()和pstmt.setInt()等方法进行参数设置。

删除数据

删除数据是从数据库中删除指定的记录。传统的SQL语句一般为DELETE FROM语句。

示例代码:

// 删除一条记录
String sql = "DELETE FROM users WHERE name = ?";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setString(1, "张三");
pstmt.executeUpdate();

注:上述代码中的?表示需要通过pstmt.setString()和pstmt.setInt()等方法进行参数设置。

查询数据

查询数据是从数据库中读取记录的操作。传统的SQL语句一般为SELECT语句。

示例代码:

// 查询记录
String sql = "SELECT name, age, gender FROM users";
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
  String name = rs.getString("name");
  int age = rs.getInt("age");
  String gender = rs.getString("gender");
  System.out.println(name + "\t" + age + "\t" + gender);
}

注:上述代码中的getString()和getInt()等方法用于获取ResultSet对象中的数据。

操作示例

下面是一个完整的JDBC操作示例,包括数据库连接、数据插入、数据修改、数据删除、数据查询和关闭数据库连接等操作。该例子实现了对学生信息表的操作。

import java.sql.*;

public class JDBCExample {

  static final String DB_URL = "jdbc:mysql://localhost:3306/test";
  static final String USER = "root";
  static final String PASS = "123456";

  public static void main(String[] args) {
    Connection conn = null;
    Statement stmt = null;
    try{
      // 注册JDBC驱动
      Class.forName("com.mysql.jdbc.Driver");

      // 建立数据库连接
      System.out.println("Connecting to database...");
      conn = DriverManager.getConnection(DB_URL,USER,PASS);

      // 执行插入操作
      System.out.println("Creating statement...");
      String sql;
      sql = "INSERT INTO student (name, age, gender) VALUES (?, ?, ?)";
      PreparedStatement pstmt = conn.prepareStatement(sql);
      pstmt.setString(1, "张三");
      pstmt.setInt(2, 18);
      pstmt.setString(3, "男");
      pstmt.executeUpdate();

      // 执行更新操作
      System.out.println("Creating statement...");
      sql = "UPDATE student SET age = 20 WHERE name = ?";
      pstmt = conn.prepareStatement(sql);
      pstmt.setString(1, "张三");
      pstmt.executeUpdate();

      // 执行删除操作
      System.out.println("Creating statement...");
      sql = "DELETE FROM student WHERE name = ?";
      pstmt = conn.prepareStatement(sql);
      pstmt.setString(1, "张三");
      pstmt.executeUpdate();

      // 执行查询操作
      System.out.println("Creating statement...");
      stmt = conn.createStatement();
      sql = "SELECT name, age, gender FROM student";
      ResultSet rs = stmt.executeQuery(sql);

      // 输出查询结果
      while (rs.next()) {
        String name = rs.getString("name");
        int age = rs.getInt("age");
        String gender = rs.getString("gender");
        System.out.println(name + "\t" + age + "\t" + gender);
      }

      // 关闭数据库连接
      rs.close();
      stmt.close();
      pstmt.close();
      conn.close();
    } catch(SQLException se) {
      // 处理JDBC错误
      se.printStackTrace();
    } catch(Exception e) {
      // 处理Class.forName错误
      e.printStackTrace();
    } finally {
      // 关闭资源
      try {
        if(stmt!=null) stmt.close();
      } catch(SQLException se2) {
      } try {
        if(conn!=null) conn.close();
      } catch(SQLException se){
        se.printStackTrace();
      }
    }
    System.out.println("Goodbye!");
  }
}

注:上述代码中的student表结构为(id, name, age, gender)。该例子需要引入mysql-connector-java的JAR包。

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

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

相关文章

  • 简单测试Apache是如何完成负载均衡策略配置

    下面是“简单测试Apache如何完成负载均衡策略配置”的完整攻略,主要分为以下几个步骤: 步骤一:安装Apache 安装Apache可以使用Linux系统默认的包管理工具,如yum、apt等,也可以去Apache官网下载最新版本的源码包进行编译安装。这里以CentOS7系统为例,使用yum进行安装: yum install httpd 步骤二:安装模块 安装…

    Java 2023年6月15日
    00
  • Java方法的返回值及注意事项小结

    当我们在编写Java程序时,有时需要从方法中获取数据。在许多情况下,我们希望方法能够返回一个值,这就是Java方法的返回值。在本文中,将介绍Java方法的返回值以及注意事项。 什么是Java方法的返回值? Java方法的返回值是指当方法被调用时,此方法所返回的数据。方法的返回值用于与另一个方法或代码交互。一般情况下,Java方法返回值可以是任何基本数据类型(…

    Java 2023年5月26日
    00
  • Java如何使用spire进行word文档的替换详解

    什么是Spire.Doc?Spire.Doc是一个专业的Word .NET库,支持生成、操作、查看、读取和转换Word文档,包括doc、docx、rtf、txt等文档格式。Spire.Doc能够让开发者快速地添加内容和格式化文档,并将文档导出为一种格式。 如何使用Spire进行word文档替换的详细攻略 首先,我们需要引用Spire.Doc的命名空间,并且创…

    Java 2023年5月26日
    00
  • Java开发基础日期类代码详解

    Java开发基础日期类代码详解 在Java开发中,经常需要处理日期和时间相关的数据。为了方便处理日期和时间,Java提供了一些日期类。这些日期类可以帮助我们实现日期格式化、日期比较、日期计算等操作。本文将详细讲解Java日期类的使用方法,包括如何创建日期对象、如何进行日期格式化和解析、如何比较日期、如何计算日期等。 如何创建日期对象 Java中有多种日期类,…

    Java 2023年5月20日
    00
  • 使用Netty实现类似Dubbo的远程接口调用的实现方法

    使用Netty框架,实现类似Dubbo的远程接口调用,可以按照以下步骤进行: 1. 定义接口API 首先,在服务提供方和服务消费方之间需要定义一个公共的API接口,即服务契约,包括方法名、参数列表和返回值等信息。 例如,定义一个简单的服务接口 HelloService : public interface HelloService { String sayH…

    Java 2023年5月20日
    00
  • java实现文件下载的两种方式

    接下来我将为你讲解如何使用Java实现文件下载的两种方式。 方式一:使用Java IO流实现文件下载 使用Java IO流实现文件下载的过程如下: 创建一个URL对象,用于指定文件所在的URL地址。 使用openStream()方法打开指定URL的流对象。 创建一个File对象并指定文件保存路径。 使用IO流将打开的URL流中的数据读取写入到本地文件中。 关…

    Java 2023年5月20日
    00
  • Java 数组的两种初始化方式

    Java 数组是一个特殊的变量,它能够存储一组有序的数据。在 Java 中,数组的初始化方式有两种: 1. 静态初始化 静态初始化就是在数组定义时就为数组元素分配空间,并赋初值。使用静态初始化的数组,数组的大小和元素的值都是确定的,不能进行修改。 示例一: // 定义一个 int 类型的数组 a int[] a = {1, 2, 3, 4, 5}; 示例二:…

    Java 2023年5月26日
    00
  • Java binarysearch方法原理详解

    Java binarySearch方法原理详解 什么是binarySearch方法 binarySearch方法是Java Util API提供的的一个静态方法,用于在有序数组中二分查找指定的值。 binarySearch方法原理 binarySearch方法实际上是对比给定值与数组中间值的大小,如果给定值小于中间值,则继续在左半部分递归查找;如果大于,则在…

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