这里不再多说,直接把程序放到上面,后续如果笔者有新发现、新认识,会即使更新。
这里程序仍然是对照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. 程序分析与演示
-
我的数据库:
-
键盘输入与结果展示:
查询成功。
3. Statement存在问题的三个方面
Statement存在问题的方面由三个:
- 字符串拼接问题,就是系列(五)提到的。
- SQL注入问题。
- 无法二进制数据问题。
后面两个问题,暂时先不提。