编写程序,实现对数据库StudentInfo中的表student的查询操作,要求如下: 1.使用预处理语PreparedStatement 2.根据输入页面填写的年龄段进行查询 3.输出满足条件的学生的姓名和性别显示在页面中 吴忠春 student表结构如下: 21401040229 列名 数据类型 备注 sno char(10) 学号 sname varchar(10) 姓名 sage int 年龄 sex char(2) 性别 注:给定数据库登录用户名:sa,密码:123.
时间: 2024-01-21 22:18:29 浏览: 87
以下是使用Java语言编写的实现代码:
```java
import java.sql.*;
public class QueryStudent {
public static void main(String[] args) {
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
// 1. 加载并注册数据库驱动
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
// 2. 创建数据库连接
String url = "jdbc:sqlserver://localhost:1433;DatabaseName=StudentInfo";
String username = "sa";
String password = "123";
conn = DriverManager.getConnection(url, username, password);
// 3. 创建PreparedStatement对象
String sql = "SELECT sname, sex FROM student WHERE sage BETWEEN ? AND ?";
pstmt = conn.prepareStatement(sql);
// 4. 设置参数
int minAge = 18; // 最小年龄
int maxAge = 22; // 最大年龄
pstmt.setInt(1, minAge);
pstmt.setInt(2, maxAge);
// 5. 执行查询操作
rs = pstmt.executeQuery();
// 6. 处理查询结果
System.out.println("满足条件的学生有:");
while (rs.next()) {
String sname = rs.getString("sname");
String sex = rs.getString("sex");
System.out.println(sname + " " + sex);
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
// 7. 释放资源
try {
if (rs != null) {
rs.close();
}
if (pstmt != null) {
pstmt.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
```
在代码中,我们首先加载并注册了SQL Server数据库驱动,然后创建了数据库连接,接着创建了PreparedStatement对象,设置了查询条件参数,执行查询操作,最后处理查询结果并输出到控制台。需要注意的是,在使用完数据库资源后,需要对其进行释放,以防止资源浪费和内存泄漏的问题。
阅读全文