java 数据库连接与增删改查操作实例详解

Java 数据库连接与增删改查操作实例详解

数据库连接

在 Java 中,可以通过使用 JDBC 驱动程序来实现与数据库的连接。步骤如下:
1. 加载驱动程序
2. 建立数据库连接
3. 关闭数据库连接

加载驱动程序

Java 中的 DriverManager 类提供了一个用于加载 JDBC 驱动程序的 registerDriver() 方法。驱动程序可以通过 Class.forName() 方法来加载:

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

建立数据库连接

使用 DriverManager 管理委托对象 DriverManager.getConnection() 获取连接并进行相应的操作:

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

关闭数据库连接

在 Java 中,需要在使用完数据库连接之后及时关闭连接。释放资源并防止应用程序中的隐式封锁。

if (conn != null) {
    try {
        conn.close();
    } catch (SQLException e) {
        //处理异常
    }
}

增删改查操作

在 Java 中,可以通过 JDBC 对数据库进行增删改查等操作。使用 Statement 和 PreparedStatement 对象执行 SQL 语句。

查询操作

创建 Statement 或 PreparedStatement 对象后,可以使用 executeQuery() 方法执行 SQL SELECT 命令。调用 ResultSet 对象的 getter 方法可以获取查询结果:

String sql = "SELECT * FROM user";
PreparedStatement ps = conn.prepareStatement(sql);
ResultSet rs = ps.executeQuery();
while(rs.next()) {
    System.out.println(rs.getString("name"));
}

插入操作

使用 INSERT INTO 命令插入一条记录时,可以使用 Statement 或 PreparedStatement 对象执行。调用 executeUpdate() 方法可以获取影响的行数:

String sql = "INSERT INTO user (name, age, email) VALUES (?, ?, ?)";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setString(1, "张三");
ps.setInt(2, 18);
ps.setString(3, "zhangsan@123.com");
int row = ps.executeUpdate();
System.out.println("新增了 " + row + " 条数据。");

更新操作

使用 UPDATE 命令更新一条记录时,可以使用 Statement 或 PreparedStatement 对象执行。调用 executeUpdate() 方法可以获取影响的行数:

String sql = "UPDATE user SET age = ? WHERE name = ?";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setInt(1, 20);
ps.setString(2, "张三");
int row = ps.executeUpdate();
System.out.println("更新了 " + row + " 条数据。");

删除操作

使用 DELETE FROM 命令删除一条记录时,可以使用 Statement 或 PreparedStatement 对象执行。调用 executeUpdate() 方法可以获取影响的行数:

String sql = "DELETE FROM user WHERE name = ?";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setString(1, "张三");
int row = ps.executeUpdate();
System.out.println("删除了 " + row + " 条数据。");

示例

下面是一个完整的示例,演示了如何建立数据库连接并执行增删改查操作:

import java.sql.*;

public class JdbcDemo {

    private static final String url = "jdbc:mysql://localhost:3306/test";
    private static final String user = "root";
    private static final String password = "123456";

    public static void main(String[] args) {
        Connection conn = null;
        try {
            Class.forName("com.mysql.jdbc.Driver");
            conn = DriverManager.getConnection(url, user, password);
            System.out.println("数据库连接成功!");
            //插入数据
            String insertSql = "INSERT INTO user (name, age, email) VALUES (?, ?, ?)";
            PreparedStatement psInsert = conn.prepareStatement(insertSql);
            psInsert.setString(1, "张三");
            psInsert.setInt(2, 18);
            psInsert.setString(3, "zhangsan@123.com");
            int insertRow = psInsert.executeUpdate();
            System.out.println("新增了 " + insertRow + " 条数据。");
            //查询数据
            String selectSql = "SELECT * FROM user";
            PreparedStatement psSelect = conn.prepareStatement(selectSql);
            ResultSet rs = psSelect.executeQuery();
            while(rs.next()) {
                System.out.println(rs.getString("name") + "  " + rs.getInt("age") + "  " + rs.getString("email"));
            }
            //更新数据
            String updateSql = "UPDATE user SET age = ? WHERE name = ?";
            PreparedStatement psUpdate = conn.prepareStatement(updateSql);
            psUpdate.setInt(1, 20);
            psUpdate.setString(2, "张三");
            int updateRow = psUpdate.executeUpdate();
            System.out.println("更新了 " + updateRow + " 条数据。");
            //删除数据
            String deleteSql = "DELETE FROM user WHERE name = ?";
            PreparedStatement psDelete = conn.prepareStatement(deleteSql);
            psDelete.setString(1, "张三");
            int deleteRow = psDelete.executeUpdate();
            System.out.println("删除了 " + deleteRow + " 条数据。");
        } catch (ClassNotFoundException | SQLException e) {
            e.printStackTrace();
        } finally {
            if (conn != null) {
                try {
                    conn.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}

以上示例演示了如何使用 PreparedStatement 对象执行 SQL 命令,包括插入、查询、更新、删除等操作,以及在使用完数据库连接后,及时关闭连接。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java 数据库连接与增删改查操作实例详解 - Python技术站

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

相关文章

  • 使用Spring Boot搭建Java web项目及开发过程图文详解

    下面我会为您详细讲解使用SpringBoot搭建JavaWeb项目及开发过程。本文将按照以下步骤详细展开: 环境准备及SpringBoot的简介 创建一个简单的SpringBoot项目 开发一个简单的RESTful接口 创建一个数据库,并通过MyBatis实现与之交互 使用Thymeleaf模板引擎开发前端页面 部署及运行项目 环境准备及SpringBoot…

    Java 2023年5月15日
    00
  • 用JAVA实现杨辉三角实例

    首先我们来详细讲解用JAVA实现杨辉三角的完整攻略,步骤如下: 1. 确定问题及解题思路 杨辉三角是一个数字三角形,它的每一行都是由前一行相邻两个元素相加而成。第一行只有一个数字1,接下来的每一行数字都是通过计算上一行相邻两个数字之和得到的。比如,第三行的数字是1 2 1,其中2=1+1。 我们可以通过二维数组来存储杨辉三角,并使用循环迭代计算每一行的数据。…

    Java 2023年5月19日
    00
  • 类加载器委托机制是如何工作的?

    以下是关于类加载器委托机制的完整使用攻略: 类加载器委托机制是什么? 类加载器委托机制是Java虚拟机(JVM)用来加载类的一种机制。当一个类需要被加载时,JVM会先委托给当前类加载器进行加载,如果当前类加载器无法加载该类,则会将该请求委托给父类加载器进行加载。父类加载器也无法加载该类,则会继续向上委托,直到顶层的父类加载器为止。如果顶层的父类加载器仍然无法…

    Java 2023年5月12日
    00
  • Spring Security配置保姆级教程

    针对“Spring Security配置保姆级教程”的完整攻略,以下是详细的讲解: 前言 Spring Security 是一个基于 Spring 框架的安全模块,为Spring应用提供了声明式的安全访问控制。本文将详细讲解 Spring Security 的配置,帮助初学者掌握 Spring Security 的使用方法。 基本概念 在使用 Spring …

    Java 2023年5月20日
    00
  • Java 前台加后台精品图书管理系统的实现

    Java 前台加后台精品图书管理系统的实现 概述 该图书管理系统采用前后端分离架构,前端使用Vue.js框架开发,后端使用Spring Boot框架开发,数据库采用MySQL。 该系统包括图书的增删查改功能、管理员的登录和权限管理、用户的注册和登录功能等。 实现步骤 前端页面设计 使用Vue.js框架作为前端开发工具,使用ElementUI和Bootstra…

    Java 2023年5月24日
    00
  • 使用spring aop统一处理异常和打印日志方式

    使用Spring AOP是一种非常方便的方式,可以实现对异常和日志的统一处理。下面是使用Spring AOP实现统一处理异常和打印日志的完整攻略。 1. 异常处理 1.1 创建异常类 首先需要创建一个自定义异常类,例如: public class MyException extends RuntimeException { public MyExceptio…

    Java 2023年5月27日
    00
  • Mybatis实现动态增删改查功能的示例代码

    让我们来详细讲解”Mybatis实现动态增删改查功能的示例代码”的完整攻略吧。 1. 引入Mybatis-Plus依赖 首先,我们需要在项目中引入Mybatis-Plus的依赖。在pom.xml文件中添加以下内容: <dependency> <groupId>com.baomidou</groupId> <artif…

    Java 2023年5月20日
    00
  • Java数字签名算法DSA实例详解

    Java数字签名算法DSA实例详解 什么是数字签名算法? 数字签名算法是指利用公开密钥加密算法,对某些信息进行加密以验证信息的完整性、来源和真实性的技术。数字签名通常使用私钥进行签名和公钥进行验证。 DSA数字签名算法介绍 DSA是数字签名算法(Digtial Signature Algorithm)的缩写,是美国国家安全局(NSA)和国家标准局(NIST)…

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