Java访问数据库实例详解

Java访问数据库实例详解

本文将详细讲解如何使用Java语言访问数据库,包括连接数据库、增删改查等基本操作。

连接数据库

Java程序可以通过JDBC(Java Database Connectivity) API来连接数据库,同样也需要使用数据库驱动程序。下面是一个使用MySQL数据库连接的示例代码:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class ConnectDatabase {
    public static void main(String[] args) {
        Connection conn = null;
        try {
            // 加载MySQL数据库驱动程序
            Class.forName("com.mysql.jdbc.Driver");
            // 建立数据库连接
            conn = DriverManager.getConnection(
                "jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8",
                "root",
                "password"
            );
            // 连接成功后执行操作
            // ...
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            try {
                if (conn != null) {
                    conn.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

上述代码可以连接MySQL数据库,其中URL参数中的test为数据库名字,root为用户名,password为密码,可以根据实际情况修改。在连接成功之后,即可执行后续的SQL操作。

增删改查

通过连接数据库后,可以执行以下基本SQL语句:

插入数据

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

public class InsertData {
    public static void main(String[] args) {
        Connection conn = null;
        PreparedStatement pstmt = null;
        try {
            // 加载MySQL数据库驱动程序
            Class.forName("com.mysql.jdbc.Driver");
            // 建立数据库连接
            conn = DriverManager.getConnection(
                "jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8",
                "root",
                "password"
            );
            // 插入数据
            String sql = "INSERT INTO user VALUES (?, ?)";
            pstmt = conn.prepareStatement(sql);
            pstmt.setString(1, "张三");
            pstmt.setInt(2, 20);
            pstmt.executeUpdate();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            try {
                if (pstmt != null) {
                    pstmt.close();
                }
                if (conn != null) {
                    conn.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

更新数据

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

public class UpdateData {
    public static void main(String[] args) {
        Connection conn = null;
        PreparedStatement pstmt = null;
        try {
            // 加载MySQL数据库驱动程序
            Class.forName("com.mysql.jdbc.Driver");
            // 建立数据库连接
            conn = DriverManager.getConnection(
                "jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8",
                "root",
                "password"
            );
            // 更新数据
            String sql = "UPDATE user SET age=? WHERE name=?";
            pstmt = conn.prepareStatement(sql);
            pstmt.setInt(1, 21);
            pstmt.setString(2, "张三");
            pstmt.executeUpdate();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            try {
                if (pstmt != null) {
                    pstmt.close();
                }
                if (conn != null) {
                    conn.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

删除数据

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

public class DeleteData {
    public static void main(String[] args) {
        Connection conn = null;
        PreparedStatement pstmt = null;
        try {
            // 加载MySQL数据库驱动程序
            Class.forName("com.mysql.jdbc.Driver");
            // 建立数据库连接
            conn = DriverManager.getConnection(
                "jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8",
                "root",
                "password"
            );
            // 删除数据
            String sql = "DELETE FROM user WHERE name=?";
            pstmt = conn.prepareStatement(sql);
            pstmt.setString(1, "张三");
            pstmt.executeUpdate();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            try {
                if (pstmt != null) {
                    pstmt.close();
                }
                if (conn != null) {
                    conn.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

查询数据

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

public class QueryData {
    public static void main(String[] args) {
        Connection conn = null;
        PreparedStatement pstmt = null;
        ResultSet rs = null;
        try {
            // 加载MySQL数据库驱动程序
            Class.forName("com.mysql.jdbc.Driver");
            // 建立数据库连接
            conn = DriverManager.getConnection(
                "jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8",
                "root",
                "password"
            );
            // 查询数据
            String sql = "SELECT * FROM user";
            pstmt = conn.prepareStatement(sql);
            rs = pstmt.executeQuery();
            while (rs.next()) {
                String name = rs.getString("name");
                int age = rs.getInt("age");
                System.out.println("name: " + name + ", age: " + age);
            }
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            try {
                if (rs != null) {
                    rs.close();
                }
                if (pstmt != null) {
                    pstmt.close();
                }
                if (conn != null) {
                    conn.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

小结

本文详细讲解了如何连接数据库和执行简单的增删改查操作,可以根据实际情况进行修改和扩展。通过掌握这些基本操作,可以在Java项目中使用数据库存储数据,提高代码的可扩展性和性能。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java访问数据库实例详解 - Python技术站

(0)
上一篇 2023年5月19日
下一篇 2023年5月19日

相关文章

  • Spring Security实现基于RBAC的权限表达式动态访问控制的操作方法

    基于RBAC的权限表达式动态访问控制是Spring Security中常用的一种权限控制方式。以下是具体的实现方法: 1. 定义RBAC模型 可参考以下示例: ### 角色 1. 管理员 2. 普通用户 ### 权限 1. 用户管理:创建、删除用户 2. 文章管理:查看、修改、删除所有文章;创建、修改、删除自己的文章 ### 资源 – 用户: /user/*…

    Java 2023年6月3日
    00
  • Java数组声明、创建、初始化基础

    下面我们来详细讲解一下Java数组声明、创建、初始化基础的攻略。 什么是Java数组 数组是一种数据结构,可以用来将一系列相同类型的数据存储在同一变量名下。在Java中,数组是一个固定大小的连续内存块,每个元素可以是任何Java数据类型,包括对象和基本类型。 Java数组的声明 Java数组的声明需要明确指定数组的类型、数组名和数组大小。其基本语法如下: t…

    Java 2023年5月26日
    00
  • java代码规范review异常事故记录

    下面是“Java代码规范Review异常事故记录”攻略的详细解释: 1. 异常事故记录的意义 我们编写的代码中难免会有缺陷,尤其是在团队协同开发中,每个人编写风格和习惯可能都不一样,导致代码可读性和可维护性存在问题。为了解决这些问题,我们需要对代码进行review,发现问题并及时修复。而异常事故记录则是review的重要内容之一。它可以让我们对程序中的异常情…

    Java 2023年5月27日
    00
  • 使用maven方式创建springboot项目的方式

    使用Maven方式创建Spring Boot项目是一种非常常见的方式,本文将详细介绍如何使用Maven创建Spring Boot项目,并提供两个示例。 步骤 以下是使用Maven创建Spring Boot项目的步骤: 安装Maven 首先,我们需要安装Maven。可以从Maven官网下载Maven,并按照官方文档进行安装。 创建Maven项目 使用Maven…

    Java 2023年5月15日
    00
  • JavaSpringBoot报错“NotSupportedException”的原因和处理方法

    原因 “NotSupportedException” 错误通常是以下原因引起的: 数据库问题:如果您的数据库存在问题,则可能会出现此错误。在这种情况下,需要检查您的数据库并确保它们正确。 数据库驱动问题:如果您的数据库驱动存在问题,则可能会出现此错误。在这种情况下,需要检查您的数据库驱动并确保它们正确。 数据库版本问题:如果您的数据库版本与您的数据库驱动不兼…

    Java 2023年5月4日
    00
  • jquery自定义下拉列表示例

    下面我来详细讲解一下“jQuery自定义下拉列表”的制作方法。 1. 简介 自定义下拉列表可以提升页面的交互体验,并且可以使页面更加美观。本文将使用jQuery来创建自定义下拉列表,包括如何使用HTML、CSS和JavaScript来实现。 2. 实现过程 下面我们以两个示例来详细讲解如何实现自定义下拉列表。 示例一 在这个示例中,我们将使用一个普通的&lt…

    Java 2023年5月19日
    00
  • 使用post方法实现json往返传输数据的方法

    使用POST方法实现JSON数据的往返传输,可以分为两步: 数据的发送端将JSON数据转换成字符串,并将该字符串作为请求体(request body)通过POST方法发送给接收端。 数据的接收端将请求体中的JSON字符串解析(parse)成JSON对象,以便后续处理。 以下是 PHP 代码示例,用于通过POST请求发送JSON数据,并在接收端解析: 发送端代…

    Java 2023年5月26日
    00
  • 解决Tomcat启动失败:严重 [main] org.apache.catalina.util.LifecycleBase.handleSubClassException 初始化组件失败

    当我们使用Tomcat作为Web服务器时,有时会在启动过程中遇到“初始化组件失败”的错误提示,通常会伴随着“严重 [main] org.apache.catalina.util.LifecycleBase.handleSubClassException”这样的堆栈信息。这种问题的出现一般都是由于我们的应用程序存在一些不兼容、缺失或者错误的依赖库,或者是Tom…

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