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日

相关文章

  • Spring Security OAuth 个性化token的使用

    下面我来详细讲解“Spring Security OAuth 个性化token的使用”。 什么是Spring Security OAuth Spring Security OAuth 是 Spring Security 的子项目,它是一个支持多种 OAuth2 协议的授权框架。它提供了一些 API 和注解,方便我们进行 OAuth2 认证和授权的开发。 个性…

    Java 2023年5月20日
    00
  • Java Kafka实现延迟队列的示例代码

    下面我来详细讲解Java Kafka实现延迟队列的示例代码的完整攻略。 什么是延迟队列 延迟队列是一种可以在一段时间之后才能被消费者消费的消息队列。它通常会使用时间优先级来控制消息的消费顺序,这种机制被称为TTL(Time To Live)。常见的应用场景是延迟发送提醒、定时任务等。 实现延迟队列的方式 实现延迟队列的方式有很多种,Kafka也提供了两种实现…

    Java 2023年6月2日
    00
  • Java之Maven工程打包jar

    下面是讲解如何使用Maven对Java工程进行打包生成jar文件的攻略: 准备工作 安装Java 下载并安装Maven 创建一个Maven工程 打包jar文件步骤 在Maven工程的根目录下,打开命令行窗口,执行 mvn package 命令,Maven会自动进行编译和打包jar文件。 执行成功后,在Maven工程的 target 目录下,就可以看到一个以 …

    Java 2023年5月20日
    00
  • 简单了解java ibatis #及$的区别和用法

    下面是关于“简单了解java ibatis #及$的区别和用法”的完整攻略: 什么是Java iBatis? Java iBatis(也称MyBatis)是一种Java持久层框架,它可以将Java对数据库的访问和操作抽象出来,使得Java程序员可以更加方便地访问和操作数据库。而“#”和“$”是Java iBatis中常用的参数占位符,用于动态地替换SQL语句…

    Java 2023年5月20日
    00
  • android 网络编程之网络通信几种方式实例分享

    Android 网络编程之网络通信几种方式实例分享 在Android应用的开发中,经常需要与远程服务器进行网络通信来获取数据,这就需要使用Android网络编程来实现。本文将介绍Android网络编程中几种常见的网络通信方式,并通过示例来说明。 1. HttpURLConnection HttpURLConnection 是一个用于发送HTTP/HTTPS请…

    Java 2023年6月15日
    00
  • Java中关于Null的9个解释(Java Null详解)

    Java中的null是一个特殊值,表示一个对象引用或数组元素的未初始化的状态。它常被用于指示对象或数组值的缺失和空状态。 Java中关于null的9个解释如下: 1. null是Java关键字 \null是Java中的一个关键字,用于表示变量或表达式没有值或引用任何对象。可以将其分配给任何对象类型的引用变量或返回其中。例如: String s = null;…

    Java 2023年5月23日
    00
  • MyBatis持久层框架的用法知识小结

    MyBatis持久层框架的用法知识小结 MyBatis是一款优秀的持久化框架,通过XML或注解的方式实现了对象关系映射(ORM)。MyBatis主要解决了JDBC编程的繁琐和易错的问题,提供了诸如对象映射、缓存等一系列优秀的特性。下面将对MyBatis的使用进行详细介绍。 1. Maven依赖 在使用MyBatis前,需要在Maven项目中引入依赖。 &lt…

    Java 2023年5月19日
    00
  • Springmvc自定义异常处理器实现流程解析

    一、Springmvc自定义异常处理器实现流程解析 在Springmvc中,我们可以自定义异常处理器来处理系统中出现的异常,以下是Springmvc自定义异常处理器的实现流程: 编写自定义异常类 首先,我们需要定义一个自己的异常类,可以继承Exception或RuntimeException,该异常类作为处理异常时的标识。 public class MyEx…

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