当前位置:
文档之家› 学生信息的增删改查(java)
学生信息的增删改查(java)
try{
Stringmysql="selectnamefromstudentwhereid='"+t1.getText()+"'";
//ResultSetrs=stml.executeQuery("selectnamefromstudentwhereid='"+t1.getText()+"'");
ResultSetrs=stml.executeQuery(mysql);
else{
stml.executeUpdate(mysql);
JOptionPane.showMessageDialog(f1,"修改成功!");
}
stml.close();
conn.close();
}
else{
try{JOptionPane.showMessageDialog(f1,"1若要修改:请在输入学号后面输入修改前的学号,"+"\\\n"+
{//在t2文本框中输入要插入的姓名,然后点击插入信息
try{
stml.executeUpdate("insertintostudentvalues('"+t1.getText()+"','"+t2.getText()+"')");
//excute的返回值是boolean型的,excuteUpdate的返回值是int型的,executeQuery的返回值是ResultSet型的
do
{
rows.addElement(getNextRow(rs,rsmd));//获取下一行记录
}
while(rs.next());//利用循环获得所有记录
JTablejTable=newJTable(rows,columnHeads);//将获得的行列数据信息作为参数重新构造表格视图
jTable.setSize(newDimension(383,81));
Stringss=rs.getString("id");//显示输出结果
Strings2=rs.getString("name");
}
rs.close();
stml.close();
conn.close();//使用完后要记得关闭所有连接
}
elseif(e.getSource()==b2)//插入信息(在t1文本框中输入要插入的学号,
b4=newJButton("删除");
t3=newJTextField(100);
modify=newJButton("修改");
direction=newJButton("操作说明");
t4=newJTextField(100);
f1.setLayout(newGridLayout(6,2));//设置窗体的分布为四行二列
Stringdburl="jdbc:odbc:mydb";//mydb是我建立的access数据源
Connectionconn=DriverManager.getConnection(dburl);//这四条语句是用来在整个action事件中建立连接的
Statementstml=conn.createStatement();//也就不用在每一个button事件(b1,b2,b3,b4)中重复写这四条语句
Vectorrows=newVector();//用于存储数据库中的行信息
VectorcolumnHeads=newVector();//用于存储数据库中的列标题
try{
ResultSetrs=stml.executeQuery("select*fromstudent");
booleanmoreRecords=rs.next();//定位到达第一条记录,这句话一定要写
stml.close();
conn.close();
JOptionPane.showMessageDialog(f1,"插入成功!");
}
elseif(e.getSource()==b1)//查姓名(在t1文本框中输入学号,
{//在t2文本框中显示相应的姓名
t3.setText("");
t4.setText("");
JScrollPanescroller=newJScrollPane(jTable);//创建带有滚动条的面板,并将表格视图加入
f2.add(scroller,BorderLayout.CENTER);//将面板重新加入溶器中
f2.validate();//验证此容器及其所有子组件
while(rs.next()){
}
stml.close();
conn.close();
}
elseif(e.getSource()==modify){//修改姓名:在t1文本框中输入要修改的学号,
try{//在t4文本框中输入修改后的名字
//JOptionPane.showMessageDialog(f1,"请在输入学号后面输入修改前的学号,在修改后面输入修改后该学号的姓名!");
学生信息的增删改查
注意:此处用到的是access数据库。
运行后效果如图:
代码如下:
packageexample;
importjava.awt.*;
importjavax.swing.*;
importjava.sql.*;
classmyrandomextendsJFrameimplementsActionListener{
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);//设置窗体大小
f1.setVisible(true);//设置窗体可见
a1=newJLabel("输入学号:");
t1=newJTextField(100);
t2=newJTextField(100);
b1=newJButton("查姓名:");
b2=newJButton("插入信息");
b3=newJButton("查看数据");
ResultSetrs=stml.executeQuery(mmsql);
while(rs.next()){
mm=rs.getString("name");
}
if(mm==""){
JOptionPane.showMessageDialog(f1,"修改失败,没有该学生!");
rs.close();}
//Statementstml=conn.createStatement();
if(e.getSource()==b3){//查看数据(查看数据库中student表的所有信息
f2=newJFrame("显示信息");
f2.setVisible(true);//设置窗体可见
f2.setSize(200,200);//设置窗体大小
Stringsn="";
while(rs.next())//此处while语句用于逐条查询
{
sn=rs.getString("name");
}
if(sn=="")//如果没有找到该学生的姓名
JOptionPane.showMessageDialog(f1,"没有该学生!");
else
t2.setText(sn);
//这个程序的数据是没有写入文件的
JFramef1,f2;
JButtonb1,b2,b3,b4,modify,direction;
JLabela1;
JTextFieldt1,t2,t3,t4;
JTabletable;
myrandom(){
table=newJTable();
f1=newJFrame("学生信息系统");
{
VectorcurrentRow=newVector();//定义一个向量,用于存放记录
for(inti=1;i<=rsmd.getColumnCount();++i)
currentRow.addElement(rs.getString(i));//获取记录
returncurrentRow;//返回记录
}
publicvoidactionPerformed(ActionEvente){
f1.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);//关闭窗体后释放资源,若不写这条语句,
//则虽然关闭了窗体,但进程还在运行。
try{//这个try是在整个action中的,用于捕获建立连接异常
while(rs.next()){
yy=rs.getString("name");
}
if(yy==""){
JOptionPane.showMessageDialog(f1,"删除失败,没有该学生!");