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日

相关文章

  • Java点餐小程序之黑心商人

    Java点餐小程序之黑心商人完整攻略 简介 这是一款基于Java实现的点餐小程序,允许用户查看、点餐、结算等操作,并包含了“黑心商人”功能,允许商家设置并收取“加急费”、“删单费”等不合理费用。作为一名程序员,我们应该注重代码的质量,不容忍这种黑心商业行为,本文将详细讲解该小程序的实现过程,并提供几条防止黑心商户的方法。 整体思路 该小程序主要分为前台用户界…

    Java 2023年5月23日
    00
  • Java动态获取实现某个接口下所有的实现类对象集合

    要动态获取实现某个接口下所有的实现类对象集合,需要使用Java的反射机制。具体的流程如下: 获取实现某个接口的所有类的类名 可以使用Java的类加载器ClassLoader来获取所有实现类的类名,然后可以通过Class.forName方法获取类对象。在获取类名时,可以设置类加载器的范围,比如只限于当前应用程序的classpath下面,或者包括外部的类库。 L…

    Java 2023年5月26日
    00
  • ubuntu安装配置java环境(图)

    请耐心阅读以下攻略。 Ubuntu安装配置Java环境 前言 Java是一种跨平台编程语言,具有高效、稳定、安全等特点,因此被广泛应用于各种应用开发中。 在Ubuntu系统上安装Java环境,可以使你在本地搭建Java开发环境,同时也能够便于你在服务器上部署Java应用。 本文将介绍在Ubuntu系统上安装配置Java环境的完整步骤。(以下内容是针对Ubun…

    Java 2023年5月26日
    00
  • 全面解析Java支持的数据类型及Java的常量和变量类型

    全面解析Java支持的数据类型及Java的常量和变量类型 Java支持的基本数据类型 Java支持八种基本数据类型,分别是:byte、short、int、long、float、double、char和boolean。具体说明如下: byte:8位有符号整数类型。用于节省内存,适合于低级数据。 short:16位有符号整数类型。和byte类似,被用于节省空间。…

    Java 2023年5月26日
    00
  • Scratch怎么制作飞机大战? Scratch飞机大战小游戏的实现方法

    制作飞机大战游戏是Scratch入门学习的一个重要部分,以下是从零开始制作Scratch飞机大战小游戏的详细攻略,附带代码示例: 1.背景设置 首先,我们需要设置游戏的背景。在Scatch的界面中,点击“背景”按钮,选择一个适合游戏的背景素材作为游戏背景,可以从Scratch的背景素材库中选择或者上传自己的背景图片。 代码示例: When Green Fla…

    Java 2023年5月30日
    00
  • Java中StringBuilder类的介绍与常用方法

    关于Java中StringBuilder类的介绍与常用方法,我为你准备了以下攻略: StringBuilder类的介绍 StringBuilder是在JDK 1.5中引入的一个新类,用于代替StringBuffer。与StringBuffer类似,StringBuilder也被设计成可变的字符串类,在字符串频繁修改的情况下,使用StringBuilder比使…

    Java 2023年5月27日
    00
  • SpringBoot项目中的视图解析器问题(两种)

    在 Spring Boot 项目中,视图解析器是用于将逻辑视图名称解析为实际视图对象的组件。Spring Boot 支持两种类型的视图解析器:Thymeleaf 和 JSP。本文将介绍这两种视图解析器的使用方法和示例。 Thymeleaf 视图解析器 1. 什么是 Thymeleaf? Thymeleaf 是一种现代化的服务器端 Java 模板引擎,它可以处…

    Java 2023年5月18日
    00
  • Java连接数据库oracle中文乱码解决方案

    下面是关于Java连接数据库Oracle中文乱码解决方案的攻略,分为以下几个步骤: 1. 确定数据库字符集和Java字符集 在连接Oracle数据库前,首先需要确定Oracle数据库的字符集和Java程序的字符集是否一致。可以通过以下方式来确认: 查看Oracle数据库字符集 在Oracle数据库中执行以下SQL语句来查看数据库的字符集: SELECT * …

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