JDBC系列(六):JDBC利用PrepareStatement實現鍵盤輸入信息的數據庫查詢功能

這裏不再多說,直接把程序放到上面,後續如果筆者有新發現、新認識,會即使更新

這裏程序仍然是對照Statemeng的查詢功能來寫程序。

1. 程序展示

1. 自行準備jar包,並導入到項目中。
在這裏插入圖片描述
2.程序部分:

import java.sql.*;
import java.util.Scanner;

public class JDBCDemoSelect {
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        System.out.println("**歡迎使用(輸入年齡->檢索人員信息)信息查詢系統**");
        //獲取鍵盤輸入
        Scanner input = new Scanner(System.in);

        System.out.println("請輸入查詢的年齡:");
        int age = input.nextInt();

        //1.註冊驅動
        Class.forName("com.mysql.jdbc.Driver");
        //2.連接數據庫
        String url = "jdbc:mysql://localhost:3306/test";
        Connection conn = DriverManager.getConnection(url,"root","88888888");
        //3.操作數據庫(Statement)
        /*
        //編寫sql語句
                String sql = "SELECT *  FROM stu_info WHERE age = "+age+";";
                //創建Statement
                Statement st = conn.createStatement();
                //執行sql語句 + 創建結果集
                ResultSet rs = st.executeQuery(sql);
                //遍歷數據
                while(rs.next())
                {
                    String Stuname = rs.getString("stuname");
                    int Age = rs.getInt("age");
                    System.out.println("姓名:"+Stuname+" 年齡:"+Age);
                }

            * */

        //3.操作數據庫(PrepareStatement)
        //編寫sql語句
        String sql = "SELECT *  FROM stu_info WHERE age = ?;";
        //創建PrepareStatement
        PreparedStatement pst = conn.prepareStatement(sql);
        pst.setInt(1,age);
        //執行sql+創建結果集
        ResultSet rs = pst.executeQuery();
        //遍歷結果集
        while(rs.next())
        {
            String stuname = rs.getString("stuname");
            int Age = rs.getInt("age");
            System.out.println("員工姓名: "+stuname +" 年齡: "+Age);
        }
        //4.關閉資源
        conn.close();
        pst.close();
        rs.close();
    }
}

2. 程序分析與演示

  1. 我的數據庫:
    在這裏插入圖片描述

  2. 鍵盤輸入與結果展示:
    在這裏插入圖片描述
    查詢成功。

3. Statement存在問題的三個方面

Statement存在問題的方面由三個:

  1. 字符串拼接問題,就是系列(五)提到的。
  2. SQL注入問題。
  3. 無法二進制數據問題。
    後面兩個問題,暫時先不提。

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章