最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java?JDBC高封裝Util類的項目實踐

 更新時間:2023年08月20日 08:39:47   作者:AbuLan  
這篇文章主要介紹了Java?JDBC高封裝Util類的項目實踐,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

Java JDBC高封裝Util類

import java.sql.*;
?
public class JdbcUtil {
?
    private static final String URL = "jdbc:mysql://localhost:3306/database?serverTimezone=UTC&useSSL=false";
    private static final String USERNAME = "username";
    private static final String PASSWORD = "password";
?
    private static Connection connection = null;
?
    static {
        try {
            connection = DriverManager.getConnection(URL, USERNAME, PASSWORD);
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
?
    public static PreparedStatement getPreparedStatement(String sql, Object... args) throws SQLException {
        PreparedStatement preparedStatement = connection.prepareStatement(sql);
        for (int i = 0; i < args.length; i++) {
            preparedStatement.setObject(i + 1, args[i]);
        }
        return preparedStatement;
    }
?
    public static ResultSet executeQuery(String sql, Object... args) throws SQLException {
        PreparedStatement preparedStatement = getPreparedStatement(sql, args);
        return preparedStatement.executeQuery();
    }
?
    public static int executeUpdate(String sql, Object... args) throws SQLException {
        PreparedStatement preparedStatement = getPreparedStatement(sql, args);
        return preparedStatement.executeUpdate();
    }
?
    public static void close() {
        try {
            if (connection != null && !connection.isClosed()) {
                connection.close();
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

使用方法:

  • 在需要使用JDBC連接的類中導入該util類。
  • getPreparedStatement方法用于獲取預編譯語句對象并填充參數(shù),返回PreparedStatement對象。
  • executeQuery方法用于執(zhí)行SELECT語句并返回查詢結(jié)果集,使用時需要傳入SQL語句和占位符參數(shù)。
  • executeUpdate方法用于執(zhí)行增刪改操作并返回影響的行數(shù),使用時需要傳入SQL語句和占位符參數(shù)。
  • 使用完畢后,調(diào)用close方法關閉連接。

請注意修改URL、USERNAME和PASSWORD為正確的值。

舉例:

假設我們有一個名為users的表,包括id、name和age三個字段?,F(xiàn)在要查詢出所有用戶的姓名,可以這樣做:

import java.sql.*;
?
public class Main {
    public static void main(String[] args) {
        try {
            String sql = "SELECT name FROM users";
            ResultSet resultSet = JdbcUtil.executeQuery(sql);
            while (resultSet.next()) {
                String name = resultSet.getString("name");
                System.out.println(name);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            JdbcUtil.close();
        }
    }
}

上述代碼中我們調(diào)用了JdbcUtil工具類的executeQuery方法來執(zhí)行SQL查詢語句,并獲取了查詢結(jié)果集。然后,我們遍歷結(jié)果集并打印出各個用戶的姓名。

如果需要執(zhí)行連接關閉操作,則需要在finally塊中調(diào)用JdbcUtil工具類的close方法來釋放連接。

以上僅是一個簡單的例子,當然在實際開發(fā)中需要更多的參數(shù)設置和邏輯控制。

補充:

使用Vector數(shù)據(jù)結(jié)構將查詢結(jié)果放置到表格控件中。

以下是一個簡單的例子,代碼中使用了javax.swing包中的JTable和DefaultTableModel類:

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Vector;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
import java.awt.Dimension;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
?
public class Main {
?
    public static void main(String[] args) {
        try {
            // 執(zhí)行查詢語句
            String sql = "SELECT * FROM users";
            ResultSet resultSet = JdbcUtil.executeQuery(sql);
?
            // 將查詢結(jié)果封裝為Vector數(shù)據(jù)結(jié)構
            Vector<String> columnNames = new Vector<>();
            columnNames.add("id");
            columnNames.add("name");
            columnNames.add("age");
?
            Vector<Vector<Object>> data = new Vector<>();
            while (resultSet.next()) {
                Vector<Object> row = new Vector<>();
                row.add(resultSet.getInt("id"));
                row.add(resultSet.getString("name"));
                row.add(resultSet.getInt("age"));
                data.add(row);
            }
?
            // 創(chuàng)建表格,并設置數(shù)據(jù)
            DefaultTableModel model = new DefaultTableModel(data, columnNames);
            JTable table = new JTable(model);
?
            // 將表格放置到窗口中
            JFrame frame = new JFrame();
            frame.getContentPane().add(new JScrollPane(table));
            frame.setPreferredSize(new Dimension(500, 300));
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.pack();
            frame.setVisible(true);
?
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            JdbcUtil.close();
        }
    }
}

在上述代碼中,我們將查詢結(jié)果封裝為了一個Vector<Vector<Object>>類型的二維向量,其中外層向量表示所有行,內(nèi)層向量則表示每一行上的數(shù)據(jù),每個內(nèi)層向量的第一個元素表示"id"列的值,第二個元素表示"name"列的值,第三個元素表示"age"列的值。然后,我們使用DefaultTableModel類將查詢結(jié)果設置到表格中,并最終將表格放到窗口中以便查看。

此外,需要注意的是,在實際開發(fā)中,可能需要對查詢結(jié)果進行更多的處理和格式控制。這里只是一個簡單的使用例子,僅供參考。

到此這篇關于Java JDBC高封裝Util類的項目實踐的文章就介紹到這了,更多相關Java JDBC封裝Util類內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • java編程簡單獲取圖片像素的方法

    java編程簡單獲取圖片像素的方法

    這篇文章主要介紹了java編程簡單獲取圖片像素的方法,涉及Java針對圖片的讀取與屬性獲取技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-11-11
  • Java一致性Hash算法的實現(xiàn)詳解

    Java一致性Hash算法的實現(xiàn)詳解

    這篇文章主要介紹了Java一致性Hash算法的實現(xiàn)詳解,hash的意思是散列,目的將一組輸入的數(shù)據(jù)均勻的分開、打散,往往用來配合路由算法做負載均衡,多用在分布式系統(tǒng)中,需要的朋友可以參考下
    2024-01-01
  • IKAnalyzer使用不同版本中文分詞的切詞方式實現(xiàn)相同功能效果

    IKAnalyzer使用不同版本中文分詞的切詞方式實現(xiàn)相同功能效果

    今天小編就為大家分享一篇關于IKAnalyzer使用不同版本中文分詞的切詞方式實現(xiàn)相同功能效果,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • Java橋接模式實例詳解【簡單版與升級版】

    Java橋接模式實例詳解【簡單版與升級版】

    這篇文章主要介紹了Java橋接模式,結(jié)合實例形式分析了java橋接模式簡單版與升級版兩種實現(xiàn)技巧,需要的朋友可以參考下
    2019-07-07
  • Java裝飾者模式的深入了解

    Java裝飾者模式的深入了解

    這篇文章主要為大家介紹了Java裝飾者模式,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-01-01
  • Mybatis敏感數(shù)據(jù)加解密插件實現(xiàn)過程

    Mybatis敏感數(shù)據(jù)加解密插件實現(xiàn)過程

    本文介紹了基于MyBatis的敏感數(shù)據(jù)全鏈路安全處理方案,包括插件開發(fā)原理、具體實現(xiàn)代碼以及數(shù)據(jù)庫函數(shù)集成,通過MyBatis插件實現(xiàn)自動加解密,結(jié)合注解和攔截器技術,確保數(shù)據(jù)在數(shù)據(jù)庫操作的各個環(huán)節(jié)中的安全性
    2026-01-01
  • 在Java中將XLS轉(zhuǎn)換為XLSX的實現(xiàn)方案

    在Java中將XLS轉(zhuǎn)換為XLSX的實現(xiàn)方案

    在本文中,我們將探討傳統(tǒng)Excel XLS格式與現(xiàn)代XLSX格式的結(jié)構差異,并為Java開發(fā)者提供轉(zhuǎn)換方案,通過了解底層原理、性能優(yōu)勢及實用工具,您將掌握高效實現(xiàn)文件格式遷移的方法,需要的朋友可以參考下
    2025-06-06
  • Spring IOC與DI核心重點分析

    Spring IOC與DI核心重點分析

    IOC也是Spring的核心之一了,之前學的時候是采用xml配置文件的方式去實現(xiàn)的,后來其中也多少穿插了幾個注解,但是沒有說完全采用注解實現(xiàn)。那么這篇文章就和大家分享一下,全部采用注解來實現(xiàn)IOC + DI
    2022-10-10
  • Springboot內(nèi)置的工具類之CollectionUtils示例講解

    Springboot內(nèi)置的工具類之CollectionUtils示例講解

    這篇文章主要介紹了Springboot內(nèi)置的工具類之CollectionUtils,本文通過示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-12-12
  • 解決springboot上傳圖片后無法立即訪問需重啟的問題

    解決springboot上傳圖片后無法立即訪問需重啟的問題

    這篇文章主要介紹了解決springboot上傳圖片后無法立即訪問需重啟的問題,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-12-12

最新評論

石泉县| 阿城市| 信丰县| 诸暨市| 兴海县| 抚宁县| 安仁县| 额济纳旗| 砚山县| 句容市| 阳东县| 峡江县| 曲水县| 儋州市| 通州市| 西充县| 烟台市| 北碚区| 太仆寺旗| 青河县| 商河县| 镇坪县| 淮南市| 博乐市| 石楼县| 曲周县| 遵化市| 盱眙县| 四子王旗| 舞阳县| 连南| 蒙山县| 手游| 邛崃市| 杨浦区| 宜昌市| 娄烦县| 乌恰县| 天津市| 高碑店市| 堆龙德庆县|