Java JDBC自定义封装工具类的步骤和完整代码

Java JDBC是Java中进行关系型数据库操作的标准方式,它提供了丰富的API让我们灵活处理数据库的连接、操作和结果集。但是,使用Java JDBC进行开发时没有封装的话会显得冗长、繁琐,因此自定义封装工具类可以提高工作效率并提高代码可读性和可维护性。

下面是Java JDBC自定义封装工具类的步骤和完整代码攻略:

1.建立数据库连接

public class DBUtil {
    private static Connection conn;
    private static final String URL = "jdbc:mysql://localhost:3306/demo_db?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC&useUnicode=true&characterEncoding=UTF-8";
    private static final String USERNAME = "root";
    private static final String PASSWORD = "password";

    public static Connection getConnection() {
        try {
            //加载驱动程序
            Class.forName("com.mysql.cj.jdbc.Driver");
            //获得数据库连接
            conn = DriverManager.getConnection(URL, USERNAME, PASSWORD);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return conn;
    }
}

2.释放数据库资源

public static void release(ResultSet rs, Statement stmt, Connection conn) {
   try {
        if (rs != null) {
            rs.close();
        }
    } catch (SQLException e) {
        e.printStackTrace();
    } finally {
        try {
            if (stmt != null) {
                stmt.close();
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            try {
                if (conn != null) {
                    conn.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

3.封装查询操作

public static List<Map<String, Object>> executeQuery(String sql, Object[] params) {
    Connection conn = null;
    PreparedStatement pstmt = null;
    ResultSet rs = null;
    List<Map<String, Object>> dataList = new ArrayList<>();
    try {
        conn = getConnection();
        pstmt = conn.prepareStatement(sql);
        if (params != null && params.length > 0) {
            for (int i = 0; i < params.length; i++) {
                pstmt.setObject(i + 1, params[i]);
            }
        }
        rs = pstmt.executeQuery();
        ResultSetMetaData metaData = rs.getMetaData();
        int colCount = metaData.getColumnCount();
        while (rs.next()) {
            Map<String, Object> data = new HashMap<>();
            for (int i = 1; i <= colCount; i++) {
                String colName = metaData.getColumnName(i);
                Object colValue = rs.getObject(i);
                data.put(colName, colValue);
            }
            dataList.add(data);
        }
    } catch (SQLException e) {
        e.printStackTrace();
    } finally {
        release(rs, pstmt, conn);
    }
    return dataList;
}

4.封装更新操作

public static int executeUpdate(String sql, Object[] params) {
    Connection conn = null;
    PreparedStatement pstmt = null;
    int result = 0;
    try {
        conn = getConnection();
        pstmt = conn.prepareStatement(sql);
        if (params != null && params.length > 0) {
            for (int i = 0; i < params.length; i++) {
                pstmt.setObject(i + 1, params[i]);
            }
        }
        result = pstmt.executeUpdate();
    } catch (SQLException e) {
        e.printStackTrace();
    } finally {
        release(null, pstmt, conn);
    }
    return result;
}

以上就是封装Java JDBC的核心代码部分,下面是两个简单的示例说明:

示例一:查询表中所有数据

String sql = "select * from user";
List<Map<String, Object>> result = DBUtil.executeQuery(sql, null);
for (Map<String, Object> map : result) {
    for (String key : map.keySet()) {
        System.out.println(key + ":" + map.get(key));
    }
}

示例二:更新表中数据

String sql = "update user set age = ? where id = ?";
Object[] params = {25, 1};
int result = DBUtil.executeUpdate(sql, params);
if (result > 0) {
    System.out.println("操作成功!");
} else {
    System.out.println("操作失败!");
}

以上是Java JDBC自定义封装工具类的完整攻略,通过这种方式可以简化开发人员的工作,提高开发效率并降低出错率。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java JDBC自定义封装工具类的步骤和完整代码 - Python技术站

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

相关文章

  • 10道典型的JavaScript面试题

    当面试前端开发职位时,关于JavaScript的面试题是必不可少的。这篇文章将会讲解10道典型的JavaScript面试题,并提供完整攻略。让我们开始吧! 1. 什么是闭包?有什么用途? 完整攻略: 闭包是指在一个函数内部可以访问其外部的变量、参数、函数等。它可以用来创建私有变量或函数,避免变量污染和命名冲突;也可以用来缓存变量,提高性能;还可以用来实现模块…

    Java 2023年5月26日
    00
  • java实现将ftp和http的文件直接传送到hdfs

    讲解“Java实现将FTP和HTTP的文件直接传送到HDFS”的完整攻略,步骤如下: 1.导入必要的依赖项 对于将FTP和HTTP文件传送到HDFS,我们需要使用一些必要的Java包和库。其中,Java对于FTP协议的支持已经包括在Java自带的JDK中了。而对于HTTP协议的支持,我们可以通过引入Apache HttpClient的库来实现。对于HDFS的…

    Java 2023年5月19日
    00
  • Java中Json字符串直接转换为对象的方法(包括多层List集合)

    Json是一种轻量级的数据交换格式,Java中使用Json字符串来表示对象和集合数据类型,实现Json字符串与Java对象的互相转换对于Java开发人员来说是非常常见的操作。下面详细讲解Java中Json字符串直接转换为对象的方法,包括多层List集合的情况。 一、使用Jackson库实现Json字符串与Java对象的互相转换 在Java中,有很多库可以实现…

    Java 2023年5月26日
    00
  • SpringBoot快速搭建实现三步骤解析

    下面我就为您详细讲解“SpringBoot快速搭建实现三步骤解析”的完整攻略。 1. 准备工作 在开始快速搭建一个Spring Boot应用之前,我们需要先准备好一些工作,包括: JDK 1.8或以上版本 Maven 3.2或以上版本 一个IDE(比如IntelliJ IDEA、Eclipse等) 确保您的开发环境中已经安装了以上组件,并能够正常运行。 2.…

    Java 2023年5月23日
    00
  • IE7浏览器窗口大小改变事件执行多次bug及IE6/IE7/IE8下resize问题

    为了解决IE7浏览器窗口大小改变事件执行多次的问题以及处理IE6/IE7/IE8下的resize问题,以下是完整的攻略手册: 问题描述 在IE7浏览器下,当浏览器窗口大小改变时,会出现改变事件被执行多次的情况,而且在IE6/IE7/IE8下使用resize事件时也会出现一些问题。 解决方案 针对上述问题,可以通过以下方法解决: debounce和thrott…

    Java 2023年6月15日
    00
  • 一文掌握Java开发工具Maven(简单上手)

    一文掌握Java开发工具Maven(简单上手) 什么是Maven? Maven是一个用于构建Java项目的工具,它帮助我们自动化构建、测试、打包和发布Java应用程序。通过传递性依赖关系,Maven可以帮助我们管理项目中的依赖项,使得我们可以更好地管理我们的应用程序。 Maven的安装和配置 安装Maven 下载Maven二进制包 解压缩到你要安装的目录下 …

    Java 2023年5月20日
    00
  • java编写简易贪吃蛇游戏

    Java是一种强大的面向对象编程语言,可以用来编写各种类型的应用程序,包括游戏。下面,我将为您讲解如何使用Java编写一个简易的贪吃蛇游戏。步骤如下: 步骤一:准备工作 在编写Java程序之前,需要确保您的计算机上已安装Java开发工具包(JDK),并且您的集成开发环境(IDE)已经准备就绪。目前,市场上常用的IDE有Eclipse、IntelliJ IDE…

    Java 2023年5月23日
    00
  • Java多线程下的其他组件之CyclicBarrier、Callable、Future和FutureTask详解

    Java多线程下的其他组件之CyclicBarrier CyclicBarrier概述 CyclicBarrier是Java中一个同步工具类,用于在多线程中等待所有线程到达某个同步点,然后再一起执行后续操作,这个同步点就是所谓的屏障(barrier),它可重用,即当到达屏障的线程数量达到指定值时,所有线程都可以通过屏障,继续执行下一个操作。 CyclicBa…

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