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

Java?JDBC高封裝Util類的項(xiàng)目實(shí)踐

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

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

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

舉例:

假設(shè)我們有一個名為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í)行連接關(guān)閉操作,則需要在finally塊中調(diào)用JdbcUtil工具類的close方法來釋放連接。

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

補(bǔ)充:

使用Vector數(shù)據(jù)結(jié)構(gòu)將查詢結(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é)構(gòu)
            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è)置數(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é)果設(shè)置到表格中,并最終將表格放到窗口中以便查看。

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

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

相關(guān)文章

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

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

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

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

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

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

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

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

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

    Java裝飾者模式的深入了解

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

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

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

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

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

    Spring IOC與DI核心重點(diǎn)分析

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

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

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

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

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

最新評論

吴江市| 长沙县| 曲靖市| 阳泉市| 绩溪县| 尖扎县| 沙田区| 大化| 沙田区| 松阳县| 武夷山市| 洪洞县| 白银市| 台山市| 乌拉特后旗| 安岳县| 延庆县| 广丰县| 江达县| 广平县| 富阳市| 荣昌县| 敦煌市| 贡觉县| 东方市| 横山县| 满洲里市| 界首市| 阳曲县| 旌德县| 五寨县| 五原县| 黑山县| 西盟| 双牌县| 方正县| 常熟市| 大悟县| 济南市| 汽车| 沙洋县|