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. 无法二进制数据问题。
    后面两个问题,暂时先不提。

在这里插入图片描述

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