使用Java语言中的JDBC接口技术创建一学生数据库School,创建一表studb,包含字段:学号、姓名、性别、专业、入学年份。编写程序对studb表进行学生信息的增、删、改、查操。要求数据库软件使用SQL Sever
时间: 2023-12-23 18:02:14 浏览: 155
JDBC连接数据库实现增删改查操作,饭店点餐系统。刚学Java时写的,Java入门项目,适合初学者学习.zip
以下是Java语言中使用JDBC接口技术创建School数据库的示例代码:
```java
import java.sql.*;
public class SchoolDatabase {
static final String JDBC_DRIVER = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
static final String DB_URL = "jdbc:sqlserver://localhost:1433;databaseName=School";
static final String USER = "username";
static final String PASS = "password";
public static void main(String[] args) {
Connection conn = null;
Statement stmt = null;
try {
// 注册 JDBC 驱动器
Class.forName(JDBC_DRIVER);
// 打开一个连接
System.out.println("连接数据库...");
conn = DriverManager.getConnection(DB_URL, USER, PASS);
// 执行查询
System.out.println("实例化Statement对象...");
stmt = conn.createStatement();
// 创建表
String sql = "CREATE TABLE studb " +
"(学号 INTEGER not NULL, " +
" 姓名 VARCHAR(255), " +
" 性别 VARCHAR(255), " +
" 专业 VARCHAR(255), " +
" 入学年份 INTEGER, " +
" PRIMARY KEY ( 学号 ))";
stmt.executeUpdate(sql);
System.out.println("表格创建成功!");
// 插入数据
sql = "INSERT INTO studb " +
"VALUES (1, '张三', '男', '计算机科学', 2019)";
stmt.executeUpdate(sql);
sql = "INSERT INTO studb " +
"VALUES (2, '李四', '女', '软件工程', 2020)";
stmt.executeUpdate(sql);
sql = "INSERT INTO studb " +
"VALUES (3, '王五', '男', '网络工程', 2020)";
stmt.executeUpdate(sql);
System.out.println("数据插入成功!");
// 更新数据
sql = "UPDATE studb " +
"SET 入学年份 = 2021 WHERE 学号 = 2";
stmt.executeUpdate(sql);
System.out.println("数据更新成功!");
// 查询数据
sql = "SELECT 学号, 姓名, 性别, 专业, 入学年份 FROM studb";
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
// 通过字段检索
int id = rs.getInt("学号");
String name = rs.getString("姓名");
String gender = rs.getString("性别");
String major = rs.getString("专业");
int year = rs.getInt("入学年份");
// 输出数据
System.out.print("学号: " + id);
System.out.print(", 姓名: " + name);
System.out.print(", 性别: " + gender);
System.out.print(", 专业: " + major);
System.out.println(", 入学年份: " + year);
}
// 删除数据
sql = "DELETE FROM studb WHERE 学号 = 3";
stmt.executeUpdate(sql);
System.out.println("数据删除成功!");
// 再次查询数据
rs = stmt.executeQuery(sql);
while (rs.next()) {
// 通过字段检索
int id = rs.getInt("学号");
String name = rs.getString("姓名");
String gender = rs.getString("性别");
String major = rs.getString("专业");
int year = rs.getInt("入学年份");
// 输出数据
System.out.print("学号: " + id);
System.out.print(", 姓名: " + name);
System.out.print(", 性别: " + gender);
System.out.print(", 专业: " + major);
System.out.println(", 入学年份: " + year);
}
// 关闭连接
rs.close();
stmt.close();
conn.close();
} catch (SQLException se) {
// 处理 JDBC 错误
se.printStackTrace();
} catch (Exception e) {
// 处理 Class.forName 错误
e.printStackTrace();
} finally {
// 关闭资源
try {
if (stmt != null) stmt.close();
} catch (SQLException se2) {
} // 什么都不做
try {
if (conn != null) conn.close();
} catch (SQLException se) {
se.printStackTrace();
}
}
System.out.println("Goodbye!");
}
}
```
在这个示例中,我们首先使用`Class.forName()`方法注册了SQL Server的JDBC驱动程序。然后使用`DriverManager.getConnection()`方法打开了与数据库的连接。接下来,我们创建了一个`Statement`对象,使用它来执行SQL语句。我们首先使用`CREATE TABLE`语句创建了一个名为`studb`的表。然后使用`INSERT INTO`语句插入了三个学生的信息。使用`UPDATE`语句更新了一个学生的入学年份,使用`SELECT`语句查询了所有学生的信息,并使用`DELETE`语句删除了一个学生的信息。最后,我们关闭了与数据库的连接。
注意,在实际应用程序中,我们应该使用预编译语句和参数化查询来防止SQL注入攻击。我们还应该使用try-with-resources语句或手动关闭资源来确保资源被正确地释放。
阅读全文