某学生管理数据库(Mydb)中包含课程表course,表属性包括课程号(kid)、课程名 (kmc)、学时数(num),kid为主键。已声明学生Course类,数据成员包含课程表的所有属性 项,并声明读写操作。 (3)要求编写一个方法Updte(CCourse cour),实现课程信息除课程号kid 外的修改操作。 注:数据库为MySQL数据库,安装在本机默认端口3306,库名为Mydb, root的密码为 1234。Java代码
时间: 2023-07-14 19:14:04 浏览: 218
MySQL数据库中创建学生表SQL语句
以下是Java代码示例:
```java
import java.sql.*;
public class Course {
private String kid;
private String kmc;
private int num;
// 构造方法
public Course(String kid, String kmc, int num) {
this.kid = kid;
this.kmc = kmc;
this.num = num;
}
// getter和setter方法
public String getKid() {
return kid;
}
public void setKid(String kid) {
this.kid = kid;
}
public String getKmc() {
return kmc;
}
public void setKmc(String kmc) {
this.kmc = kmc;
}
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
// 数据库更新方法
public void Update(Course cour) {
Connection conn = null;
PreparedStatement pstmt = null;
try {
// 加载数据库驱动
Class.forName("com.mysql.jdbc.Driver");
// 获取数据库连接
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/Mydb?useSSL=false", "root", "1234");
// SQL语句,更新除kid外的课程信息
String sql = "UPDATE course SET kmc=?, num=? WHERE kid=?";
pstmt = conn.prepareStatement(sql);
// 设置更新的参数
pstmt.setString(1, cour.getKmc());
pstmt.setInt(2, cour.getNum());
pstmt.setString(3, this.kid);
// 执行更新操作
pstmt.executeUpdate();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
// 关闭数据库连接
try {
if (pstmt != null) {
pstmt.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
```
使用方法:
```java
// 创建一个Course对象,表示要更新的课程信息
Course cour = new Course("001", "Java编程", 48);
// 创建一个Course对象,表示原来的课程信息
Course oldCour = new Course("001", "Java", 36);
// 调用Update方法更新课程信息
oldCour.Update(cour);
```
阅读全文