以下内容仅供参考,SQL代码均已给出,JAVA关键性代码均已给出,可以仿着写,但是不要抄袭。
如果这篇文章对您有用,请点个赞吧。
本数据库为存储学生、教师的课表信息,以及教学楼层的管理信息。
一共有四个实体,分别为学生、教师、负责人以及上课地点。一共有一个联系,为课程内容联系。一共生成有四个关系模式,分别为学生Student、教师Teacher、课表Course以及上课地点Place。
学生(学号,姓名,性别,年龄,班级)
教师(教师号,教师名,性别)
课表(教师号,学号,课程名,地点编号,上课时间,节次)
上课地点(地点编号,楼栋,教室号)
学生关系模式属性有:
学号VARCHAR(10)、姓名 VARCHAR(8)、性别VARCHAR(2)、年龄SMALLINT、班级VARCHAR(10)。
教师关系模式属性有:
教师号VARCHAR(10)、教师名VARCHAR(8)、性别VARCHAR(2)。
课表关系模式属性有:
教师号VARCHAR(10)、学号VARCHAR(10)、课程名VARCHAR(16)、地点编号VARCHAR(10)、上课时间(星期)VARCHAR(6)、节次 VARCHAR(10)。
上课地点关系模式属性有:
地点编号VARCHAR(10)、楼栋VARCHAR(12)、教室号 VARCHAR(4)。
学生实体和教师实体之间是多对多的关系
学生实体和上课地点实体之间是多对多的关系
教师实体和上课地点实体之间是多对多的关系
1.学生关系模式
主码为学号PRIMARY KEY,姓名不能为空NOT NULL,性别只允许取‘男’或‘女’CHECK IN(SEX IN (‘男’,’女’))。
2.教师关系模式
主码为教师号PRIMARY KEY,教师名不能为空NOT NULL,性别只允许取‘男’或‘女’CHECK IN(SEX IN (‘男’,’女’))。
3.上课地点关系模式
主码为地点编号PRIMARY KEY,楼栋和教室号不能为空NOT NULL。
4.课表关系模式
主码为教师号和学号PRIMARY KEY,地点编号参照引用Place的主码地点编号 FOREIGN KEY(地点编号) REFERENCES Place(地点编号),上课时间在星期一到星期五之间 CHECK上课时间 IN(“星期一”,“星期二”,“星期三”,“星期四”,“星期五”,)
一个学生只能归属于某个班级,不能同时归属于多个班级,学生的姓名允许重复,学生的唯一标识为学号。
学生的某一门课程仅由一位教师教学,教师每个星期只给同一个班级的学生上一次课。上课时间在星期一到星期五之间。
每个楼栋有多间教室。不同楼栋的不同教室地点编号不同。
每个教师有一个唯一的教师号标识,允许教师名重复。每个教师每个星期给多个班级上课,每个教师可以教多门课程,但对于同一班级只教一门课程。
1.学生关系模式:
学号为主码,学号–>姓名,学号–>性别,学号–>年龄,学号–>班级。每一个非主属性不存在部分函数依赖和传递依赖,所有的决定因素都包含码,因此学生关系模式属于BCNF。
2.课表关系模式:
教师号+学号为主码,教师号+学号–>课程名,教师号+学号–>地点编号,教师号+学号–>上课时间,教师号+学号–>节次,每一个非主属性不存在部分函数依赖和传递依赖,所有的决定因素都包含码,因此课表关系模式属于BCNF。
3.上课地点关系模式:
地点编号为主码,地点编号–>楼栋,地点编号–>教室号。每一个非主属性不存在部分函数依赖和传递依赖,所有的决定因素都包含码,因此上课地点关系模式属于BCNF。
4.教师关系模式:
教师号为主码,教师号–>教师名,教师号–>性别。每一个非主属性不存在部分函数依赖和传递依赖,所有的决定因素都包含码,因此教师关系模式属于BCNF。
选择面向对象语言JAVA,利用JDBC进行数据库编程,使用awt和swing框架进行可视化编程:
1.创建学生课表数据库的登录界面,界面中有两个输入框和一个登录按钮,输入框分别输入对应的账号和密码。
2.账号密码输入正确即可进入对应的管理界面,共有4个按钮,包括增删改查的基本操作,可处理四个关系模式。
3.点击管理系统里的四个按钮,即可对数据库中对应的关系模式进行增删改查,并显示数据。
(1)学生管理
①查询
②增加
③修改
④删除
(2)教师管理
①查询
②增加
③修改
④删除
(3)上课地点
①查询
②增加
③修改
④删除
(4)课程表管理
①查询
②增加
③修改
④删除
create user RouTineD identified by 123456;
grant connect,resource,dba to RouTineD;
CREATE TABLE STUDENT(
学号 VARCHAR(10) PRIMARY KEY,
姓名 VARCHAR(10) NOT NULL,
性别 VARCHAR(3) CHECK (性别 IN('男','女')),
年龄 SMALLINT,
班级 VARCHAR(10)
);
分析:使用CREATE语句创建表STUDENT,主码为学号,性别使用约束条件,只能为男或女。
CREATE TABLE TEACHER(
教师号 VARCHAR(10) PRIMARY KEY,
教师名 VARCHAR(10) NOT NULL,
性别 VARCHAR(3) CHECK (性别 IN('男','女'))
);
分析:使用CREATE语句创建表TEACHER,主码为教师号,性别使用约束条件,只能为男或女。
CREATE TABLE PLACE(
地点编号 VARCHAR(10) PRIMARY KEY,
楼栋 VARCHAR(12) NOT NULL,
教室号 VARCHAR(4) NOT NULL
)
分析:主码为地点编号,楼栋和教室号不能为空
CREATE TABLE COURSE(
教师号 VARCHAR(10) ,
学号 VARCHAR(10) ,
课程名 VARCHAR(16),
地点编号 VARCHAR(10),
上课时间 VARCHAR(10) CHECK (上课时间 IN('星期一','星期二','星期三','星期四','星期五')),
节次 VARCHAR(10),
FOREIGN KEY(教师号) REFERENCES TEACHER(教师号),
FOREIGN KEY(学号) REFERENCES STUDENT(学号),
FOREIGN KEY(地点编号) REFERENCES Place(地点编号),
PRIMARY KEY (教师号,学号)
);
分析:主码为教师号和学号,上课时间的约束条件为只能为星期一到星期五。外码有教师号,学号,地点编号。
INSERT INTO STUDENT(学号,姓名,性别,年龄,班级) VALUES('1806223333','RouTineD','女',19,'智能181');
INSERT INTO STUDENT(学号,姓名,性别,年龄,班级) VALUES('1806200001','周震南','男',20,'网络184');
INSERT INTO STUDENT(学号,姓名,性别,年龄,班级) VALUES('1806100002','何洛洛','女',19,'计科181');
INSERT INTO STUDENT(学号,姓名,性别,年龄,班级) VALUES('1806300003','焉栩嘉','女',18,'软件181');
INSERT INTO STUDENT(学号,姓名,性别,年龄,班级) VALUES('1806100004','夏之光','男',20,'计科182');
INSERT INTO STUDENT(学号,姓名,性别,年龄,班级) VALUES('1806300005','姚琛','男',21,'软件181');
INSERT INTO STUDENT(学号,姓名,性别,年龄,班级) VALUES('1806300006','翟潇闻','男',22,'软件181');
INSERT INTO STUDENT(学号,姓名,性别,年龄,班级) VALUES('1806300007','张颜齐','女',20,'软件182');
INSERT INTO STUDENT(学号,姓名,性别,年龄,班级) VALUES('1806300008','刘也','女',21,'软件183');
INSERT INTO STUDENT(学号,姓名,性别,年龄,班级) VALUES('1806300009','任豪','男',21,'软件184');
INSERT INTO STUDENT(学号,姓名,性别,年龄,班级) VALUES('1806300010','赵磊','男',20,'软件184');
INSERT INTO STUDENT(学号,姓名,性别,年龄,班级) VALUES('1806100011','赵让','男',19,'计科181');
分析:插入数据使用INSERT INTO …VALUES()关键字
CREATE SEQUENCE TEACHER_SEQUENCE MINVALUE 1 INCREMENT BY 1 START WITH 10001;
分析:创建序列使用CREATE SEQUENCE 关键字,INCREMENT BY 表示以1递增,START WITH 10001表示从10001开始。
INSERT INTO TEACHER(教师号,教师名,性别) VALUES(TEACHER_SEQUENCE.NEXTVAL,'杨柳','女');
INSERT INTO TEACHER(教师号,教师名,性别) VALUES(TEACHER_SEQUENCE.NEXTVAL,'杨朔','男');
INSERT INTO TEACHER(教师号,教师名,性别) VALUES(TEACHER_SEQUENCE.NEXTVAL,'高鹰','男');
INSERT INTO TEACHER(教师号,教师名,性别) VALUES(TEACHER_SEQUENCE.NEXTVAL,'苏申','男');
INSERT INTO TEACHER(教师号,教师名,性别) VALUES(TEACHER_SEQUENCE.NEXTVAL,'汤茂斌','男');
INSERT INTO TEACHER(教师号,教师名,性别) VALUES(TEACHER_SEQUENCE.NEXTVAL,'王建雄','男');
INSERT INTO TEACHER(教师号,教师名,性别) VALUES(TEACHER_SEQUENCE.NEXTVAL,'颜国风','男');
INSERT INTO TEACHER(教师号,教师名,性别) VALUES(TEACHER_SEQUENCE.NEXTVAL,'古鹏','男');
INSERT INTO TEACHER(教师号,教师名,性别) VALUES(TEACHER_SEQUENCE.NEXTVAL,'王显珉','男');
INSERT INTO TEACHER(教师号,教师名,性别) VALUES(TEACHER_SEQUENCE.NEXTVAL,'张俊荣','女');
INSERT INTO TEACHER(教师号,教师名,性别) VALUES(TEACHER_SEQUENCE.NEXTVAL,'张艳玲','女');
INSERT INTO PLACE(地点编号,楼栋,教室号) VALUES('LN204','理南','204');
INSERT INTO PLACE(地点编号,楼栋,教室号) VALUES('LN211','理南','211');
INSERT INTO PLACE(地点编号,楼栋,教室号) VALUES('WX305','文新','305');
INSERT INTO PLACE(地点编号,楼栋,教室号) VALUES('LN308','理南','308');
INSERT INTO PLACE(地点编号,楼栋,教室号) VALUES('WX619','文新','619');
INSERT INTO PLACE(地点编号,楼栋,教室号) VALUES('WX503','文新','503');
INSERT INTO PLACE(地点编号,楼栋,教室号) VALUES('LB304','理北','304');
INSERT INTO PLACE(地点编号,楼栋,教室号) VALUES('LB301','理北','301');
INSERT INTO PLACE(地点编号,楼栋,教室号) VALUES('WQ305','文清','305');
INSERT INTO PLACE(地点编号,楼栋,教室号) VALUES('WY308','文逸','308');
INSERT INTO PLACE(地点编号,楼栋,教室号) VALUES('DZ416','电子楼','416');
INSERT INTO PLACE(地点编号,楼栋,教室号) VALUES('WJ603','文俊','603');
INSERT INTO PLACE(地点编号,楼栋,教室号) VALUES('DZ418','电子楼','418');
INSERT INTO PLACE(地点编号,楼栋,教室号) VALUES('JSJ211','计算机楼','211');
INSERT INTO PLACE(地点编号,楼栋,教室号) VALUES('LX305','理学实验楼','305');
INSERT INTO PLACE(地点编号,楼栋,教室号) VALUES('LN408','理南','408');
分析:插入数据使用INSERT INTO …VALUES()关键字
INSERT INTO COURSE(教师号,学号,课程名,地点编号,上课时间,节次) VALUES('10005','1806100077','离散数学','LN204','星期一','1-2');
INSERT INTO COURSE(教师号,学号,课程名,地点编号,上课时间,节次) VALUES('10008','1806300003','计算机组成','LN211','星期一','3-4');
INSERT INTO COURSE(教师号,学号,课程名,地点编号,上课时间,节次) VALUES('10011','1806300005','操作系统','LN408','星期四','5-6');
INSERT INTO COURSE(教师号,学号,课程名,地点编号,上课时间,节次) VALUES('10010','1806200001','线性代数','DZ416','星期二','1-2');
INSERT INTO COURSE(教师号,学号,课程名,地点编号,上课时间,节次) VALUES('10004','1806100004','数据结构','LB304','星期四','9-11');
INSERT INTO COURSE(教师号,学号,课程名,地点编号,上课时间,节次) VALUES('10002','1806300006','数据库','LN308','星期三','9-11');
INSERT INTO COURSE(教师号,学号,课程名,地点编号,上课时间,节次) VALUES('10001','1806300007','数值分析','WX503','星期五','3-4');
INSERT INTO COURSE(教师号,学号,课程名,地点编号,上课时间,节次) VALUES('10003','1806300008','操作系统','JSJ211','星期二','3-4');
INSERT INTO COURSE(教师号,学号,课程名,地点编号,上课时间,节次) VALUES('10003','1806300009','操作系统','WJ603','星期一','5-6');
INSERT INTO COURSE(教师号,学号,课程名,地点编号,上课时间,节次) VALUES('10009','1806300010','数据结构','WJ603','星期三','5-6');
INSERT INTO COURSE(教师号,学号,课程名,地点编号,上课时间,节次) VALUES('10011','1806100011','操作系统','WQ305','星期三','7-8');
INSERT INTO COURSE(教师号,学号,课程名,地点编号,上课时间,节次) VALUES('10005','1806200001','离散数学','LN204','星期一','1-2');
INSERT INTO COURSE(教师号,学号,课程名,地点编号,上课时间,节次) VALUES('10005','1806100002','离散数学','LN204','星期一','1-2');
INSERT INTO COURSE(教师号,学号,课程名,地点编号,上课时间,节次) VALUES('10011','1806300009','操作系统','LN408','星期四','5-6');
INSERT INTO COURSE(教师号,学号,课程名,地点编号,上课时间,节次) VALUES('10004','1806100077','数据结构','LB304','星期四','9-11');
INSERT INTO COURSE(教师号,学号,课程名,地点编号,上课时间,节次) VALUES('10002','1806200001','数据库','LN308','星期三','9-11');
INSERT INTO COURSE(教师号,学号,课程名,地点编号,上课时间,节次) VALUES('10009','1806200001','数据结构','WJ603','星期三','5-6');
INSERT INTO COURSE(教师号,学号,课程名,地点编号,上课时间,节次) VALUES('10011','1806100002','操作系统','WQ305','星期三','7-8');
INSERT INTO COURSE(教师号,学号,课程名,地点编号,上课时间,节次) VALUES('10001','1806300003','数值分析','WX619','星期五','1-2');
INSERT INTO COURSE(教师号,学号,课程名,地点编号,上课时间,节次) VALUES('10001','1806100004','数值分析','WY308','星期五','5-6');
INSERT INTO COURSE(教师号,学号,课程名,地点编号,上课时间,节次) VALUES('10003','1806100004','汇编原理','LB304','星期二','1-2');
INSERT INTO COURSE(教师号,学号,课程名,地点编号,上课时间,节次) VALUES('10006','1806300007','汇编原理','LB301','星期三','1-2');
INSERT INTO COURSE(教师号,学号,课程名,地点编号,上课时间,节次) VALUES('10003','1806100077','计算机组成','LB304','星期一','7-8');
INSERT INTO COURSE(教师号,学号,课程名,地点编号,上课时间,节次) VALUES('10007','1806100077','汇编原理','WJ603','星期二','5-6');
INSERT INTO COURSE(教师号,学号,课程名,地点编号,上课时间,节次) VALUES('10001','1806100077','数值分析','WX619','星期五','3-4');
分析:插入数据使用INSERT INTO …VALUES()关键字
当删除教师表TEACHER中的记录时,先删除课程表COURSE中对应的教师。因为Course表中的数据引用TEACHER表中的数据。
CREATE TRIGGER TEACHER_TRIGGER BEFORE DELETE ON TEACHER FOR EACH ROW
BEGIN
DELETE FROM COURSE WHERE 教师号=:OLD.教师号;
END;
分析:因为课程表COURSE中的属性教师号是引用了教师表TEACHER中的属性教师号,因此创建触发器可以保证删除教师表TEACHER中的数据前,先从课程表COURSE中删除对应的数据。
当删除学生表STUDENT中的记录时,先删除课程表COURSE中对应的学生。因为Course表中的数据引用STUDENT表中的数据。
CREATE TRIGGER STUDENT_TRIGGER BEFORE DELETE ON STUDENT FOR EACH ROW
BEGIN
DELETE FROM COURSE WHERE 学号=:OLD.学号;
END;
分析:因为课程表COURSE中的属性学号是引用了学生表STUDENT中的属性学号,因此创建触发器可以保证删除学生表STUDENT中的数据前,先从课程表COURSE中删除对应的数据。
当删除地点表PLACE中的记录时,删除课程表COURSE中对应的地点和教室对应负责人表PM中对应的地点。因为Course表和PM表中的数据引用PLACE表中的数据。
CREATE TRIGGER PLACE_TRIGGER BEFORE DELETE ON PLACE FOR EACH ROW
BEGIN
DELETE FROM COURSE WHERE 地点编号=:OLD.地点编号;
DELETE FROM PM WHERE 地点编号=:OLD.地点编号;
END;
分析:因为课程表COURSE中的属性地点编号是引用了地点表PLACE中的属性地点编号,因此创建触发器可以保证删除地点表PLACE中的数据前,先从课程表COURSE中删除对应的数据。
选择面向对象语言JAVA,利用JDBC进行数据库编程,使用awt和swing框架进行可视化编程:
JDBC关键代码如下:
public static final String URL = "jdbc:oracle:thin:@localhost:1521:orcl";
public static final String USER = "RouTineD";
public static final String PASSWORD = "123456";
//1.加载驱动程序
Class.forName("oracle.jdbc.driver.OracleDriver");
//2. 获得数据库连接
Connection conn = DriverManager.getConnection(URL, USER, PASSWORD);
分析:
① url = "jdbc:oracle:thin:@localhost:1521:orcl"为创建的数据库,本机使用的数据库ID名为“orcl”,localhost为本地主机,1521为端口号。
② "oracle.jdbc.driver.OracleDriver"为JDBC驱动程序
③ uname = "RouTineD"为创建的用户名,在SQLDEVELOPER中创建并授权的用户
④ pwd = "123456"为用户RouTineD对应的密码,本机的数据库密码为“123456”
⑤ conn = DriverManager.getConnection()将java与数据库连接
界面中有两个输入框和一个登录按钮,输入框分别输入对应的账号和密码。
部分代码如下:
//主界面设置
lb[0].setText("欢迎使用教学管理系统");
lb[1].setText("账号");
lb[2].setText("密码");
btn[0].setText("登录");
frame[0].setTitle("教学管理系统");
frame[0].setBounds(400, 300, 250, 185);
frame[0].setVisible(true);
frame[0].setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
btn[0].addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
if(tf[0].getText().toString().equals("RouTineD")&&pws.getText().equals("123456"))
{}
else
{
JOptionPane msg=new JOptionPane();
msg.setVisible(true);
JOptionPane.showMessageDialog(msg, "密码错误!", "错误",JOptionPane.WARNING_MESSAGE);
}
}
});
账号密码输入正确即可进入对应的管理界面,共有4个按钮,包括增删改查的基本操作,可处理四个关系模式。点击管理系统里的四个按钮,即可对数据库中对应的关系模式进行增删改查,并显示数据。
部分代码如下:
//10.2 设计界面
btn[2].setText("学生管理");
btn[3].setText("教师管理");
btn[4].setText("上课地点");
btn[5].setText("课程表管理");
frame[1].setTitle("管理系统");
frame[1].setBounds(300, 300, 320, 140);
frame[1].setVisible(true);
frame[1].setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
分析:JButton为按钮对象,setText为设置文本函数,setBounds为绝对定位函数。管理员进入管理系统后可以对所有的数据库信息进行增删改查,具有最高权限。
点击“学生管理”按钮进入学生管理界面
Statement st = conn.createStatement();
ResultSet rs = st.executeQuery(sql); //获取数据
listmodel.clear(); //清空
while(rs.next()) //逐条读取数据
{ //学生五项参数
String getNo= rs.getString("学号");
String getClass= rs.getString("班级");
String getSex= rs.getString("性别");
String getAge= rs.getString("年龄");
String getName= rs.getString("姓名");
listmodel.addElement(getNo+" "+getClass+" "+getSex+" "+getAge+" "+getName);
}
String sql = "INSERT INTO STUDENT(学号,班级,性别,年龄,姓名) "+ "VALUES(?,?,?,?,?)";
PreparedStatement st = conn.prepareStatement(sql);
st.setString(1, tf[1].getText());
st.setString(2, tf[2].getText());
st.setString(3, tf[3].getText());
st.setInt(4, Integer.parseInt(tf[4].getText()));
st.setString(5, tf[5].getText());
st.executeUpdate();
listmodel.addElement(tf[1].getText()+" "+tf[2].getText()+" "+
tf[3].getText()+" "+tf[4].getText()+" "+tf[5].getText());
String sql = "update STUDENT set 学号=?,班级=?,性别=?,年龄=?,姓名=? where 姓名 = ?";
PreparedStatement st = conn.prepareStatement(sql);
st.setString(1, tf[1].getText());
st.setString(2, tf[2].getText());
st.setString(3, tf[3].getText());
st.setInt(4, Integer.parseInt(tf[4].getText()));
st.setString(5, tf[5].getText());
st.setString(6, strs[4]);
st.executeUpdate();
listmodel.set(list.getSelectedIndex(),tf[1].getText() + " " +tf[2].getText()+" " +tf[3].getText() + " " + tf[4].getText() + " " +tf[5].getText());
String sql = "delete from STUDENT where 姓名 = ?";
PreparedStatement st = conn.prepareStatement(sql);
st.setString(1, strs[4]);
st.executeUpdate();
listmodel.remove(list.getSelectedIndex());
点击“教师管理”按钮进入教师管理界面
String sql = new String("select * from TEACHER");
Statement st = conn.createStatement();
ResultSet rs = st.executeQuery(sql); //获取数据
while(rs.next()) //逐条读取数据
{ //教师三项参数
String getNo= rs.getString("教师号");
String getSex= rs.getString("性别");
String getName= rs.getString("教师名");
listmodel.addElement(getNo+" "+getSex+" "+getName);
}
String sql = "INSERT INTO TEACHER(教师号,性别,教师名) "
+ "VALUES(?,?,?)";
PreparedStatement st = conn.prepareStatement(sql);
st.setString(1, tf[1].getText());
st.setString(2, tf[2].getText());
st.setString(3, tf[3].getText());
st.executeUpdate();
listmodel.addElement(tf[1].getText()+" "+tf[2].getText()+" "+
tf[3].getText());
String sql = "update TEACHER set 教师号=?,性别=?,教师名=? where 教师名 = ?";
PreparedStatement st = conn.prepareStatement(sql);
st.setString(1, tf[1].getText());
st.setString(2, tf[2].getText());
st.setString(3, tf[3].getText());
st.setString(4, strs[2]);
st.executeUpdate();
listmodel.set(list.getSelectedIndex(),tf[1].getText() + " " +tf[2].getText()+" " +tf[3].getText());
String sql = "delete from TEACHER where 教师名 = ?";
PreparedStatement st = conn.prepareStatement(sql);
st.setString(1, strs[2]);
st.executeUpdate();
listmodel.remove(list.getSelectedIndex());
点击“上课地点”按钮进入上课地点界面
String sql = new String("select * from PLACE");
Statement st = conn.createStatement();
ResultSet rs = st.executeQuery(sql); //获取数据
while(rs.next()) //逐条读取数据
{ //楼栋三项参数
String getNo= rs.getString("地点编号");
String getFLoor= rs.getString("楼栋");
String getNum= rs.getString("教室号");
listmodel.addElement(getNo+temp1+getFLoor+temp2+getNum);
}
String sql = "INSERT INTO PLACE(地点编号,楼栋,教室号) "
+ "VALUES(?,?,?)";
PreparedStatement st = conn.prepareStatement(sql);
st.setString(1, tf[1].getText());
st.setString(2, tf[2].getText());
st.setString(3, tf[3].getText());
st.executeUpdate();
listmodel.addElement(tf[1].getText()+temp1+tf[2].getText()+temp2+
tf[3].getText());
String sql = "update PLACE set 地点编号=?,楼栋=?,教室号=? where 地点编号 = ?";
PreparedStatement st = conn.prepareStatement(sql);
st.setString(1, tf[1].getText());
st.setString(2, tf[2].getText());
st.setString(3, tf[3].getText());
st.setString(4, strs[0]);
st.executeUpdate();
listmodel.set(list.getSelectedIndex(),tf[1].getText() + temp1 + tf[2].getText()+temp2 +tf[3].getText());
String sql = "delete from PLACE where 地点编号 = ?";
PreparedStatement st = conn.prepareStatement(sql);
st.setString(1, strs[0]);
st.executeUpdate();
listmodel.remove(list.getSelectedIndex());
点击“课程表管理”按钮进入课程表管理界面
String sql = new String("select * from COURSE");
Statement st = conn.createStatement();
ResultSet rs = st.executeQuery(sql); //获取数据
while(rs.next()) //逐条读取数据
{ //楼栋三项参数
String getTNo= rs.getString("教师号");
String getSno= rs.getString("学号");
String getCName= rs.getString("课程名");
String getPN= rs.getString("地点编号");
String getCT= rs.getString("上课时间");
String getTN= rs.getString("节次");
listmodel.addElement(getTNo+" "+getSno+" "+getCName+temp1+getPN+temp2+getCT+" "+getTN);
}
String sql = "INSERT INTO PLACE(地点编号,楼栋,教室号) "
+ "VALUES(?,?,?)";
PreparedStatement st = conn.prepareStatement(sql);
st.setString(1, tf[1].getText());
st.setString(2, tf[2].getText());
st.setString(3, tf[3].getText());
st.executeUpdate();
listmodel.addElement(tf[1].getText()+temp1+tf[2].getText()+temp2+
tf[3].getText());
String sql = "update PLACE set 地点编号=?,楼栋=?,教室号=? where 地点编号 = ?";
PreparedStatement st = conn.prepareStatement(sql);
st.setString(1, tf[1].getText());
st.setString(2, tf[2].getText());
st.setString(3, tf[3].getText());
st.setString(4, strs[0]);
st.executeUpdate();
listmodel.set(list.getSelectedIndex(),tf[1].getText() + temp1 + tf[2].getText()+temp2 +tf[3].getText());
String sql = "delete from PLACE where 地点编号 = ?";
PreparedStatement st = conn.prepareStatement(sql);
st.setString(1, strs[0]);
st.executeUpdate();
listmodel.remove(list.getSelectedIndex());