学生信息的增删改查java.docx
- 文档编号:4817304
- 上传时间:2022-12-09
- 格式:DOCX
- 页数:7
- 大小:16.85KB
学生信息的增删改查java.docx
《学生信息的增删改查java.docx》由会员分享,可在线阅读,更多相关《学生信息的增删改查java.docx(7页珍藏版)》请在冰豆网上搜索。
学生信息的增删改查java
学生信息的增删改查
注意:
此处用到的是access数据库。
运行后效果如图:
代码如下:
packageexample;
importjava.awt.*;
importjavax.swing.*;
importjava.sql.*;
classmyrandomextendsJFrameimplementsActionListener{
//这个程序的数据是没有写入文件的
JFramef1,f2;
JButtonb1,b2,b3,b4,modify,direction;
JLabela1;
JTextFieldt1,t2,t3,t4;
JTabletable;
myrandom(){
table=newJTable();
f1=newJFrame("学生信息系统");
f1.setVisible(true);//设置窗体可见
a1=newJLabel("输入学号:
");
t1=newJTextField(100);
t2=newJTextField(100);
b1=newJButton("查姓名:
");
b2=newJButton("插入信息");
b3=newJButton("查看数据");
b4=newJButton("删除");
t3=newJTextField(100);
modify=newJButton("修改");
direction=newJButton("操作说明");
t4=newJTextField(100);
f1.setLayout(newGridLayout(6,2));//设置窗体的分布为四行二列
f1.add(a1);f1.add(t1);//加入窗体
f1.add(b1);f1.add(t2);
f1.add(b2);f1.add(b3);
f1.add(b4);f1.add(t3);
f1.add(modify);f1.add(t4);
f1.add(direction);
f1.setSize(200,200);//设置窗体大小
b1.addActionListener(this);
b2.addActionListener(this);//设置按钮事件
b3.addActionListener(this);
b4.addActionListener(this);
modify.addActionListener(this);
direction.addActionListener(this);
}
publicvoidactionPerformed(ActionEvente){
f1.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);//关闭窗体后释放资源,若不写这条语句,
//则虽然关闭了窗体,但进程还在运行。
try{//这个try是在整个action中的,用于捕获建立连接异常
Stringdburl="jdbc:
odbc:
mydb";//mydb是我建立的access数据源
Connectionconn=DriverManager.getConnection(dburl);//这四条语句是用来在整个action事件中建立连接的
Statementstml=conn.createStatement();//也就不用在每一个button事件(b1,b2,b3,b4)中重复写这四条语句
//以上四条语句也可以改写为下面这四条语句:
//Stringdburl="jdbc:
odbc:
driver={MicrosoftAccessDriver(*.mdb)};DBQ=C:
\\db1.mdb";
//Connectionconn=DriverManager.getConnection(dburl);
//Statementstml=conn.createStatement();
if(e.getSource()==b3){//查看数据(查看数据库中student表的所有信息
f2=newJFrame("显示信息");
f2.setVisible(true);//设置窗体可见
f2.setSize(200,200);//设置窗体大小
Vectorrows=newVector();//用于存储数据库中的行信息
VectorcolumnHeads=newVector();//用于存储数据库中的列标题
try{
ResultSetrs=stml.executeQuery("select*fromstudent");
booleanmoreRecords=rs.next();//定位到达第一条记录,这句话一定要写
ResultSetMetaDatarsmd=rs.getMetaData();//获得rs结果集中列属性信息
for(inti=1;i<=rsmd.getColumnCount();++i)
columnHeads.addElement(rsmd.getColumnName(i));//获得列名(将列名存放至向量columnHeads)
do
{
rows.addElement(getNextRow(rs,rsmd));//获取下一行记录
}
while(rs.next());//利用循环获得所有记录
JTablejTable=newJTable(rows,columnHeads);//将获得的行列数据信息作为参数重新构造表格视图
jTable.setSize(newDimension(383,81));
JScrollPanescroller=newJScrollPane(jTable);//创建带有滚动条的面板,并将表格视图加入
f2.add(scroller,BorderLayout.CENTER);//将面板重新加入溶器中
f2.validate();//验证此容器及其所有子组件
while(rs.next()){
Stringss=rs.getString("id");//显示输出结果
Strings2=rs.getString("name");
}
rs.close();
stml.close();
conn.close();//使用完后要记得关闭所有连接
}
elseif(e.getSource()==b2)//插入信息(在t1文本框中输入要插入的学号,
{//在t2文本框中输入要插入的姓名,然后点击插入信息
try{
stml.executeUpdate("insertintostudentvalues('"+t1.getText()+"','"+t2.getText()+"')");
//excute的返回值是boolean型的,excuteUpdate的返回值是int型的,executeQuery的返回值是ResultSet型的
stml.close();
conn.close();
JOptionPane.showMessageDialog(f1,"插入成功!
");
}
elseif(e.getSource()==b1)//查姓名(在t1文本框中输入学号,
{//在t2文本框中显示相应的姓名
t3.setText("");
t4.setText("");
try{
Stringmysql="selectnamefromstudentwhereid='"+t1.getText()+"'";
//ResultSetrs=stml.executeQuery("selectnamefromstudentwhereid='"+t1.getText()+"'");
ResultSetrs=stml.executeQuery(mysql);
Stringsn="";
while(rs.next())//此处while语句用于逐条查询
{
sn=rs.getString("name");
}
if(sn=="")//如果没有找到该学生的姓名
JOptionPane.showMessageDialog(f1,"没有该学生!
");
else
t2.setText(sn);
rs.close();
stml.close();
conn.close();
}
elseif(e.getSource()==b4){//按学号删除记录(删除学号和姓名)
try{//在t3文本框中输入要删除的学号
t1.setText("");
t2.setText("");
t4.setText("");
Stringyy="";
Stringmmsql="select*fromstudentwhereid='"+t3.getText()+"'";
Stringmysql="deletefromstudentwhereid='"+t3.getText()+"'";
ResultSetrs=stml.executeQuery(mmsql);
while(rs.next()){
yy=rs.getString("name");
}
if(yy==""){
JOptionPane.showMessageDialog(f1,"删除失败,没有该学生!
");
rs.close();
}
else{
stml.executeUpdate(mysql);
JOptionPane.showMessageDialog(f1,"删除成功!
");
}
stml.close();
conn.close();
}
elseif(e.getSource()==modify){//修改姓名:
在t1文本框中输入要修改的学号,
try{//在t4文本框中输入修改后的名字
//JOptionPane.showMessageDialog(f1,"请在输入学号后面输入修改前的学号,在修改后面输入修改后该学号的姓名!
");
t2.setText("");
t3.setText("");
Stringmm="";
Stringmmsql="select*fromstudentwhereid='"+t1.getText()+"'";
Stringmysql="updatestudentsetname='"+t4.getText()+"'whereid='"+t1.getText()+"'";
ResultSetrs=stml.executeQuery(mmsql);
while(rs.next()){
mm=rs.getString("name");
}
if(mm==""){
JOptionPane.showMessageDialog(f1,"修改失败,没有该学生!
");
rs.close();}
else{
stml.executeUpdate(mysql);
JOptionPane.showMessageDialog(f1,"修改成功!
");
}
stml.close();
conn.close();
}
else{
try{JOptionPane.showMessageDialog(f1,"1若要修改:
请在输入学号后面输入修改前的学号,"+"\\\n"+
"在修改后面输入修改后该学号的姓名,然后点击'修改';"+"\\\n"+"2若要删除,请在删除后面出入要删学生的学号,然后点击'删除';"+
"\\\n"+"3若要插入信息,请在输入学号后面输入学号,在查姓名后面输入姓名,然后点击'插入信息';"+
"\\\n"+"4若要若要查询数据,直接点击'查看数据';"+
"\\\n"+"5输入学生的学号,再点击'查姓名'可以查找该学号学生的姓名。
"
);
}
}
publicstaticvoidmain(String[]args){
newmyrandom();
}
publicVectorgetNextRow(ResultSetrs,ResultSetMetaDatarsmd)throwsSQLException//该方法获取下一行记录
{
VectorcurrentRow=newVector();//定义一个向量,用于存放记录
for(inti=1;i<=rsmd.getColumnCount();++i)
currentRow.addElement(rs.getString(i));//获取记录
returncurrentRow;//返回记录
}
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 信息 增删 java