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日

相关文章

  • 详解APP微信支付(java后台_统一下单和回调)

    详解APP微信支付(java后台_统一下单和回调) 一、前言 在移动APP中,使用微信支付功能是非常常见的需求,而且使用微信支付也是比较方便和快捷的。本文将详细介绍如何在Java后台中实现微信支付的功能。主要包括两部分:统一下单和回调。本文介绍的支付接口都是官方的API接口,并采用了最新的V3版本。 二、统一下单 下单接口是微信支付功能的核心,接口名称为:h…

    Java 2023年5月27日
    00
  • JSONObject使用方法详解

    JSONObject使用方法详解 什么是JSONObject? JSONObject是Java中的JSON处理库之一,它提供了一些方法来创建,解析和操作JSON数据。它是一个无序的键值对集合,其中的键唯一且不可重复,值可以是任意类型的数据,包括其他JSONObject和JSONArray实例。 JSONObject的用法 创建JSONObject对象 可以使…

    Java 2023年5月26日
    00
  • 快速掌握SpringBoot应用的启动入口

    让我来详细讲解一下“快速掌握SpringBoot应用的启动入口”的完整攻略。 1. 确定SpringBoot应用的启动入口 要了解SpringBoot应用的启动入口,我们需要先了解SpringBoot应用的结构。 SpringBoot应用的结构大致如下: – src – main – java – com.example.demo // 代码所在的包名 – …

    Java 2023年5月15日
    00
  • MyBatis-Plus拦截器对敏感数据实现加密

    大家好,我是网站的作者,本次将为大家讲解如何对敏感数据实现加密,使用的工具是MyBatis-Plus拦截器。下文将分为以下几个部分: MyBatis-Plus拦截器简介 敏感数据加密的必要性 敏感数据加密的具体实现 示例说明 MyBatis-Plus拦截器简介 MyBatis-Plus是MyBatis的增强工具包,提供了丰富的功能,包括但不限于自动生成代码、…

    Java 2023年5月26日
    00
  • Java实现学生管理系统(IO版)

    Java实现学生管理系统(IO版)攻略 简介 本文将介绍如何使用Java语言实现学生管理系统,使用的是Java中的IO流处理方式,实现添加学生信息、查询学生信息、删除学生信息、修改学生信息等功能。 实现步骤 1.创建项目 首先,我们需要创建一个Java项目,可以使用Eclipse或者其他Java开发工具。 2.创建类和文件 在src目录下创建”com.stu…

    Java 2023年5月23日
    00
  • java中Timer定时器的使用和启动方式

    Java中Timer定时器的使用和启动方式 Timer是Java中的一个定时调度工具,通过它可以实现定时任务的执行。本文将对Timer定时器的使用和启动方式进行详细讲解。 Timer类 Timer类是Java的一个定时调度工具,它可以在指定的时间间隔内执行任务。它位于java.util包中。 Timer类的构造方法如下: public Timer() pub…

    Java 2023年5月20日
    00
  • 基于Spring Data Jest的Elasticsearch数据统计示例

    我来为你详细讲解“基于Spring Data Jest的Elasticsearch数据统计示例”的完整攻略。 一、前言 在讲解具体实现之前,我们需要先了解一些背景知识。Elasticsearch 是目前非常流行的一个开源搜索引擎,具有高速、高伸缩性、分布式、全文搜索、分词等特点,它是基于 Apache Lucene 的实现,使用 Java 开发。Spring…

    Java 2023年5月20日
    00
  • java中list的用法和实例讲解

    下面是“java中list的用法和实例讲解”的完整攻略。 1. List的简介 List是Java中最常用的集合类型之一,它允许存储重复元素,并按照插入顺序维护元素的顺序。List接口是Collection接口的子接口。List接口有许多不同的实现方式,比如ArrayList、LinkedList等。 2. List的用法 2.1 创建List 创建List…

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