好程式設計師Java學習路線分享Java案例-封裝JDBC工具類

好程式設計師IT發表於2019-09-26

  好程式設計師Java 學習路線 分享Java案例-封裝JDBC工具類-JDBC(Java DataBase Connectivity,java資料庫連線)是一種用於執行SQL語句的Java API,可以為多種關聯式資料庫提供統一訪問,它由一組用Java語言編寫的類和介面組成。JDBC提供了一種基準,據此可以構建更高階的工具和介面,使資料庫開發人員能夠編寫資料庫應用程式

- Java 具有堅固、安全、易於使用、易於理解和可從網路上自動下載等特性,是編寫資料庫應用程式的傑出語言。所需要的只是 Java應用程式與各種不同資料庫之間進行對話的方法。

- JDBC可以在各種平臺上使用Java,如Windows,Mac OS和各種版本的UNIX。

- JDBC庫包括通常與資料庫使用相關的下面提到的每個任務的API。

lJDBC實現驗證登入程式碼思路

* 鍵盤輸入使用者名稱和密碼,對比資料庫中的使用者資訊,判斷是否登入成功

*     1、連線資料庫

*         MyJDBCUtils.getConnection()

*     2、獲取請求物件stmt

*         conn.createStmtement()

*     3、建立鍵盤物件,獲取使用者名稱和密碼

*         3.1    建立鍵盤錄入物件

*         3.2    提示使用者輸入

*         3.3    獲取使用者輸入內容

*     4、編寫SQL語句,把使用者名稱和密碼放入SQL語句中

*     5、執行查詢,獲取查詢結果

*         stmt.executeQuery(sql);

*     6、根據查詢結果判斷登入是否成功

*     7、關閉連線

lJava工具類

java開發過程中,程式碼中時常用到一些Scanner、Random一樣的類,他們是鍵盤錄入,生成隨機數的類,像一個工具一樣,在java中被稱為工具類。

         我們在編寫自己的程式碼時,有的程式碼功能和java工具類似,比如連線資料庫、驗證登入,時長會用得到,每次都書寫一次太麻煩,我們可以嘗試編寫自己的工具類,每次用到的時候直接導包呼叫就行,能提高我們的開發效率。

l封裝JDBC工具類

n加入獲取資料庫連線物件的方法

n加入釋放連線的方法

程式碼如下:

工具類程式碼:

package com.qianfeng.util;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

/**

* JDBC工具類

* 有獲取連線的方法

* @author dushine

*/

public class JDBCUtil {

       

        /**

        * 獲取資料庫連線的方法

        * @return Connection conn

        * @throws SQLException

        */

        public static Connection getConnection() throws SQLException {

                String url = "jdbc:mysql://localhost:3306/class?useSSL=false";

                String user = "root";

                String password = "root";

                Connection conn = DriverManager.getConnection(url,user,password);

                return conn;

        }

       

        /**

        * 釋放連線的方法

        * @param conn

        * @throws SQLException

        */

        public static void releaseSourse(Connection conn) throws SQLException {

                if (conn != null) {

                        conn.close();

                }

        }

       

       

        /**

        * 釋放連線的方法

        * @param conn                資料庫連線物件

        * @param stmt                執行SQL語句的物件

        * @throws SQLException

        */

        public static void releaseSourse(Connection conn,Statement stmt) throws SQLException {

                if (stmt != null) {

                        stmt.close();

                }

               

                if (conn != null) {

                        conn.close();

                }

        }

       

        /**

        * 釋放連線的方法

        * @param conn                資料庫連線物件

        * @param stmt                執行SQL語句的物件

        * @param resultSet        執行SQL語句的返回的結果集

        * @throws SQLException

        */

        public static void releaseSourse(Connection conn,Statement stmt,ResultSet resultSet) throws SQLException {

                if (resultSet != null) {

                        resultSet.close();

                }

               

                if (stmt != null) {

                        stmt.close();

                }

               

                if (conn != null) {

                        conn.close();

                }

        }

}

測試類程式碼:

package com.qianfeng.demos;

import java.sql.Connection;

import java.sql.ResultSet;

import java.sql.Statement;

import java.util.Scanner;

import com.qianfeng.util.JDBCUtil;

public class Demo04 {

        public static void main(String[] args) throws Exception {

                /**

                * 登入註冊

                *         獲取使用者輸入內容

                *         把輸入的內容當做條件查詢資料庫中的內容

                */

                Scanner sc = new Scanner(System.in);

               

                System.out.println("請輸入使用者名稱:");

                String name = sc.nextLine();

               

                System.out.println("請輸入密碼:");

                String pwd = sc.nextLine();

               

                // 註冊驅動

                Class.forName("com.mysql.jdbc.Driver");

                /*

                String url = "jdbc:mysql://localhost:3306/class?useSSL=false";

                String user = "root";

                String password = "root";

                // 獲取和資料庫的連線

                Connection conn = DriverManager.getConnection(url, user, password);*/

               

                Connection conn = JDBCUtil.getConnection();

               

                // 使用連線物件獲取執行sql的物件

                Statement stmt = conn.createStatement();

               

                // 編寫SQL語句

                String sql = "select * from userinfo where username='"+name+"' and password='"+pwd+"'";

                System.out.println(sql);

               

                // 執行SQL語句,獲取返回結果

                ResultSet resultSet = stmt.executeQuery(sql);

                if (resultSet.next()) {

                        System.out.println("登陸成功!");

                } else {

                        System.out.println("使用者名稱或密碼錯誤!");

                }

                JDBCUtil.releaseSourse(conn, stmt, resultSet);

                sc.close();

        }

}


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69913892/viewspace-2658337/,如需轉載,請註明出處,否則將追究法律責任。

相關文章