欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2023年08月20日 08:39:47   作者:AbuLan  
這篇文章主要介紹了Java?JDBC高封裝Util類的項目實踐,文中通過示例代碼介紹的非常詳細(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三個字段。現(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)然在實際開發(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è)置到表格中,并最終將表格放到窗口中以便查看。

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

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

相關(guān)文章

  • spring監(jiān)視器actuator配置應(yīng)用

    spring監(jiān)視器actuator配置應(yīng)用

    這篇文章主要介紹了spring監(jiān)視器actuator配置應(yīng)用,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-07-07
  • Java實現(xiàn)時間片輪轉(zhuǎn)調(diào)度算法的示例代碼

    Java實現(xiàn)時間片輪轉(zhuǎn)調(diào)度算法的示例代碼

    時間片輪轉(zhuǎn)調(diào)度是一種最古老,最簡單,最公平且使用最廣的算法,這篇文章主要為大家介紹了如何利用Java實現(xiàn)這一算法,需要的可以參考一下
    2023-07-07
  • java實現(xiàn)給圖片加鋪滿的網(wǎng)格式文字水印

    java實現(xiàn)給圖片加鋪滿的網(wǎng)格式文字水印

    這篇文章主要給大家介紹了關(guān)于java實現(xiàn)給圖片加鋪滿的網(wǎng)格式文字水印的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • springboot 如何設(shè)置端口號和添加項目名

    springboot 如何設(shè)置端口號和添加項目名

    這篇文章主要介紹了springboot設(shè)置端口號和添加項目名的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • Python機(jī)器學(xué)習(xí)三大件之二pandas

    Python機(jī)器學(xué)習(xí)三大件之二pandas

    這篇文章主要介紹了Python機(jī)器學(xué)習(xí)三大件之二pandas,文中有非常詳細(xì)的代碼示例,對正在學(xué)習(xí)Python的小伙伴們有很好地幫助,需要的朋友可以參考下
    2021-05-05
  • Java中的八種基本數(shù)據(jù)類型詳解

    Java中的八種基本數(shù)據(jù)類型詳解

    本文詳細(xì)講解了Java中的八種基本數(shù)據(jù)類型,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-03-03
  • 淺談java.util.concurrent包中的線程池和消息隊列

    淺談java.util.concurrent包中的線程池和消息隊列

    這篇文章主要介紹了淺談java.util.concurrent包中的線程池和消息隊列,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • 一文詳解如何查看jdk版本及安裝路徑

    一文詳解如何查看jdk版本及安裝路徑

    這篇文章主要給大家介紹了關(guān)于如何查看jdk版本及安裝路徑的相關(guān)資料,JDK是Java語言的軟件開發(fā)工具包,主要用于移動設(shè)備、嵌入式設(shè)備上的java應(yīng)用程序,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-10-10
  • Java8?Stream流多字段求和、匯聚的實例

    Java8?Stream流多字段求和、匯聚的實例

    這篇文章主要介紹了Java8?Stream流多字段求和、匯聚的實例,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • 解析maven的用法和幾個常用的命令(推薦)

    解析maven的用法和幾個常用的命令(推薦)

    maven最大的作用就是用于對項目中jar包依賴的統(tǒng)一管理。這篇文章主要介紹了maven的用法和幾個常用的命令,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-07-07

最新評論