java基于JDBC教师管理课程设计Word文档格式.docx
《java基于JDBC教师管理课程设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《java基于JDBC教师管理课程设计Word文档格式.docx(29页珍藏版)》请在冰豆网上搜索。
![java基于JDBC教师管理课程设计Word文档格式.docx](https://file1.bdocx.com/fileroot1/2023-1/9/152415be-ce1f-4bac-b3af-52befbbc3e44/152415be-ce1f-4bac-b3af-52befbbc3e441.gif)
(2)编写图形界面的Application,利用JDBC-ODBCBridge进行数据库访问,实现要求的功能。
五实验主代码
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
importjavax.swing.table.*;
importjavax.swing.event.*;
importjava.sql.*;
importjava.util.*;
importjava.lang.*;
publicclass教师管理extendsJFrameimplementsActionListener,ItemListener,ListSelectionListener
{
DBAccessdb=newDBAccess();
Stringsql;
Teacherteacher=newTeacher();
JTableteachertable;
//定义一个显示教师信息的表格
DefaultTableModeldModel;
StringSdept="
计算机工程学院"
;
StringPosition="
教授"
StringSex="
女"
StringName;
StringNumbers;
inti=0;
intfindflag=0;
/*定义几个输入、输出提示标签*/
JLabellblPrompt;
//操作提示信息
JLabellblNumbers;
JLabellblName;
JLabellblSex;
JLabellblSdept;
JLabellblPosition;
/*定义几个接受用户输入的文本框*/
JTextFieldtxtNumbers;
JTextFieldtxtName;
JComboBoxcbSex;
JComboBoxcbSdept;
JComboBoxcbPosition;
/*定义几个用户操作按钮*/
JButtonbtnCreateTeacher;
JButtonbtnSearchTeacher;
JButtonbtnDeleteTeacher;
JButtonbtnReset;
JButtonbtnDisplay;
教师管理()
{
super("
教师管理类操作的图形用户界面"
);
String[]columnNames={"
编号"
"
姓名"
性别"
院系"
职位"
};
String[][]data0=newString[0][0];
dModel=newDefaultTableModel(data0,columnNames);
teachertable=newJTable(dModel);
teachertable.setAutoscrolls(true);
teachertable.setGridColor(Color.blue);
teachertable.setRowHeight(25);
teachertable.setSelectionForeground(Color.red);
JScrollPanejstb=newJScrollPane(teachertable);
/*表格注册列表选取模型事件监听器*/
teachertable.getSelectionModel().addListSelectionListener(this);
/*初始化所有标签*/
lblPrompt=newJLabel("
操作信息提示"
lblNumbers=newJLabel("
lblName=newJLabel("
lblSex=newJLabel("
lblSdept=newJLabel("
lblPosition=newJLabel("
/*初始化所有文本框*/
txtNumbers=newJTextField();
txtName=newJTextField();
cbSex=newJComboBox();
cbSdept=newJComboBox();
cbPosition=newJComboBox();
cbSex.addItem("
男"
cbSdept.addItem("
电子工程学院"
海洋工程学院"
化学工程学院"
机械工程学院"
土木工程学院"
其他院系"
cbPosition.addItem("
副教授"
讲师"
辅导员"
实习"
其它职位"
/*初始化所有按钮*/
btnCreateTeacher=newJButton("
增加"
btnSearchTeacher=newJButton("
查询"
btnDeleteTeacher=newJButton("
删除"
btnReset=newJButton("
清空信息"
btnDisplay=newJButton("
列出"
/*为按钮注册事件监听器*/
btnCreateTeacher.addActionListener(this);
btnSearchTeacher.addActionListener(this);
btnDeleteTeacher.addActionListener(this);
btnReset.addActionListener(this);
btnDisplay.addActionListener(this);
/*下拉组合框注册事件监听器*/
cbSex.addItemListener(this);
cbSdept.addItemListener(this);
cbPosition.addItemListener(this);
/*为控件定义外观和显示位置*/
Containerc=getContentPane();
c.setLayout(null);
//采用空布局,调用setBounds()方法
/*将标签加到容器里*/
c.add(lblPrompt);
c.add(lblNumbers);
c.add(lblName);
c.add(lblSex);
c.add(lblSdept);
c.add(lblPosition);
/*将文本框加到容器里*/
c.add(txtNumbers);
c.add(txtName);
c.add(cbSex);
c.add(cbSdept);
c.add(cbPosition);
c.add(jstb);
//将表格加到容器中
/*将按钮加到容器中*/
c.add(btnCreateTeacher);
c.add(btnSearchTeacher);
c.add(btnDeleteTeacher);
c.add(btnReset);
c.add(btnDisplay);
//给各个元素定位
btnCreateTeacher.setBounds(30,280,90,40);
btnSearchTeacher.setBounds(135,280,90,40);
btnDisplay.setBounds(240,280,90,40);
btnDeleteTeacher.setBounds(345,280,90,40);
btnReset.setBounds(450,280,90,40);
lblNumbers.setBounds(50,10,100,40);
lblName.setBounds(50,60,100,40);
lblSex.setBounds(50,110,100,40);
lblSdept.setBounds(50,160,100,40);
lblPosition.setBounds(50,210,100,40);
txtNumbers.setBounds(120,10,200,40);
txtName.setBounds(120,60,400,40);
cbSex.setBounds(120,110,120,40);
cbSdept.setBounds(120,160,120,40);
cbPosition.setBounds(120,210,120,40);
jstb.setBounds(50,380,500,150);
lblPrompt.setBounds(20,330,550,40);
lblPrompt.setForeground(Color.red);
/*采用匿名类实现了窗体标题栏“X”按钮的关闭功能*/
addWindowListener(newWindowAdapter(){
publicvoidWindowClosing(WindowEventew)
dispose();
//System.exit(0);
}
});
this.setBounds(300,50,600,580);
this.setVisible(true);
this.setResizable(false);
/*重载ItemListener接口的方法,组合框选择改变时,则出版社不同*/
publicvoiditemStateChanged(ItemEvente)
if(e.getItemSelectable()instanceofJComboBox)
JComboBoxcb=(JComboBox)(e.getItemSelectable());
//获取组合框对像
lblPrompt.setText(Position);
/*重载ListSelectionListener接口的方法,取出表格当前行号*/
publicvoidvalueChanged(ListSelectionEvente)
i=teachertable.getSelectedRow();
outputData();
publicvoidactionPerformed(ActionEventevt)
Stringnumbers=txtNumbers.getText();
if(evt.getActionCommand().equals("
))
Numbers=txtNumbers.getText();
Name=txtName.getText();
StringNumbers=txtNumbers.getText();
StringName=txtName.getText();
teacher=newTeacher(Numbers,Name,Sex,Sdept,Position);
inputData();
//将图书信息显示在下面的表格中
db.dbconn();
sql="
insertintoTeacherInfo(Numbers,Name,Sex,Sdept,Position)values('
"
+Numbers+"
'
'
+Name+"
+Sex+"
+Sdept+"
+Position+"
)"
db.dbInsert(sql);
lblPrompt.setText(db.notes);
//显示数据库操作
db.dbclose();
elseif(evt.getActionCommand().equals("
/*从数据库中读取所有数据*/
select*fromTeacherInfo"
display(sql);
findflag=0;
numbers=txtNumbers.getText();
/*从数据库中读取指定数据*/
sql="
select*fromTeacherInfowhereNumbers='
+numbers+"
display(sql);
if(findflag==0)
lblPrompt.setText("
没有查到所要的教师。
}
elseif(findflag==1)
{
txtNumbers.setText(Numbers);
if(dModel.getRowCount()==0)
没有教师可删!
else
//StringdNo=dModel.getValueAt(i,0).toString();
dModel.removeRow(i);
//i=0;
deleteformTeacherInfowhereNumbers='
db.dbconn();
db.dbDelete(sql);
db.dbclose();
lblPrompt.setText(db.notes);
));
//reset();
deletefromTeacherInfo"
db.dbDelete(sql);
/*将界面清空,各文档及表格内容被清除*/
publicvoidreset()
txtNumbers.setText("
txtName.setText("
//txtTsex.setText("
//txtTsdept.setText("
//txtPosition.setText("
for(intindex=dModel.getRowCount()-1;
index>
=0;
index--)
dModel.removeRow(index);
}
/*将所有图书对象的对象的信息显示在表格中*/
publicvoiddisplay(Stringsql1)
reset();
db.dbSelect(sql1);
try
while(db.rs.next())
{
findflag=1;
teacher.setNumbers(db.rs.getString
(2));
teacher.setName(db.rs.getString(3));
teacher.setSex(db.rs.getString(4));
teacher.setSdept(db.rs.getString(5));
teacher.setPosition(db.rs.getString(6));
inputData();
}
catch(SQLExceptiones)
System.out.println(es);
//显示数据库操作结果
/*将新建的图书对象逐行加入向量,显示在表格中*/
publicvoidinputData()
Vector<
String>
data=newVector<
();
data.addElement(teacher.getNumbers());
data.addElement(teacher.getName());
data.addElement(teacher.getSex());
data.addElement(teacher.getSdept());
data.addElement(teacher.getPosition());
dModel.addRow(data);
publicvoidoutputData()
txtNumbers.setText(dModel.getValueAt(i,0).toString());
txtName.setText(dModel.getValueAt(i,1).toString());
cbSex.setSelectedItem(dModel.getValueAt(i,2).toString());
cbSdept.setSelectedItem(dModel.getValueAt(i,3).toString());
cbPosition.setSelectedItem(dModel.getValueAt(i,4).toString());
publicstaticvoidmain(Stringargs[])
new教师管理();
classTeacher
publicStringNumbers;
Stringname;
privateStringsex;
privateStringsdept;
privateStringposition;
publicTeacher()
publicTeacher(Stringnumbers,Stringtname,Stringtsex,Stringtsdept,Stringtposition)
Numbers=numbers;
name=tname;
sex=tsex;
sdept=tsdept;
position=tposition;
publicStringgetNumbers()
returnNumbers;
publicvoidsetNumbers(StringnewNumbers)
Numbers=newNumbers;
publicvoidsetName(Stringnewname)
name=newname;
publicStringgetName()
returnname;
publicvoidsetSex(Stringnewsex)
sex=newsex;
publicStringgetSex()
returnsex;
publicvoidsetSdept(Stringnewsdept)
sdept=newsdept;
publicStringgetSdept()
returnsdept;
publicvoidsetPosition(Stringnewposition)
position=newposition;
publicStringgetPosition()
returnposition;
classDBAccess
privateConnectionconn=null;
privateStatementstmt=null;
publicResultSetrs=null;
privatePreparedStatementprestmt=null;
privateStringdriver="
sun.jdbc.odbc.JdbcOdbcDriver"