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日

相关文章

  • JSP中param动作的实例详解

    当我们想要把参数传递给 JSP 页面时,param 动作是一种非常有用的方法。通过在 JSP 页面中使用 param 动作,我们可以轻松地向页面中传递参数,这些参数可以来自域对象,例如 request、session 或 application,也可以来源于页面 URL 中的查询字符串或表单提交。本文将为大家深入详解 param 动作的用法,通过两个实例帮助…

    Java 2023年6月15日
    00
  • 基于Spring Security前后端分离的权限控制系统问题

    基于Spring Security前后端分离的权限控制系统是一个非常常见的开发需求。下面将提供完整攻略,从搭建环境、配置安全策略、实现权限控制等方面讲解该系统的具体实现。其中示例将分别展示两种不同的权限控制方式。 1. 搭建环境 首先,需要搭建一个Spring Boot项目,并且集成Spring Security。需要在项目中引入以下依赖: <depe…

    Java 2023年5月20日
    00
  • Java中常见的日期操作(取值、转换、加减、比较)

    Java中日期操作是常见的编程场景之一,本文将详细介绍Java中常见的日期操作,包括日期的取值、转换、加减、比较等方面的知识。 日期的取值 在Java中,我们可以使用java.util.Date或java.sql.Date类获取系统的当前日期和时间。其中,java.util.Date表示的是时间戳,而java.sql.Date则表示日期。 // 获取当前日期…

    Java 2023年5月20日
    00
  • springboot整合mybatisplus的方法详解

    下面我将介绍Spring Boot整合Mybatis-Plus的详细方法,包括项目环境搭建、依赖引入、配置文件设置、代码实现等内容。 环境搭建 在进行整合前首先需要搭建好Spring Boot项目的开发环境,可以使用IDE工具,如IntelliJ IDEA、Eclipse等,也可以通过Spring Initializr快速生成一个Spring Boot项目的…

    Java 2023年5月20日
    00
  • MVC框架自定义实现过程

    MVC框架自定义实现过程 MVC 框架是一种常用的设计模式,它将应用程序分为三个部分:模型(Model)、视图(View)和控制器(Controller)。MVC 框架可以帮助我们更好地组织代码,提高代码的可维护性和可扩展性。本文将详细讲解 MVC 框架自定义实现过程,包括 MVC 框架的架构、MVC 框架的实现、MVC 框架的示例等。 MVC 框架的架构 …

    Java 2023年5月18日
    00
  • Spring Security结合JWT的方法教程

    我来详细讲解一下“Spring Security结合JWT的方法教程”的完整攻略。 1. 什么是Spring Security和JWT Spring Security是一种基于框架的安全性解决方案,它为Java应用程序提供了身份验证和身份验证授权功能。 JWT(JSON Web Token)是一种身份验证和授权的标准,它将声明和签名打包在一个安全令牌中。JW…

    Java 2023年5月20日
    00
  • Sprint Boot @Max使用方法详解

    @Max是Spring Boot中的一个注解,用于标记一个字段或方法参数的值必须小于或等于指定的最大值。在本文中,我们将详细介绍@Max注解的作用和使用方法,并提供两个示例。 @Max注解的作用 @Max注解用于标记一个字段或方法参数的值必须小于或等于指定的最大值。当使用@Max注解标记一个字段或方法参数时,如果该字段或方法参数的值大于指定的最大值,则会抛出…

    Java 2023年5月5日
    00
  • Java GUI实现学生成绩管理系统

    作为Java GUI实现学生成绩管理系统的作者,以下是详细的攻略: 1. 学习Java GUI 首先需要熟悉Java GUI相关的知识,包括Swing和AWT等基础知识。可以通过在线课程、教程和书籍等途径来学习。 2. 设计学生成绩管理系统 在学习了Java GUI基础知识之后,开始设计学生成绩管理系统。首先需要确定系统的功能和界面设计,包括成绩录入、成绩查…

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