学生信息的增删改查(java)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
学生信息管理系统
1 引言
对学生的基本信息进行简单操作,可按学号进行查询、修改、删除操作注意:此处用到的是access数据库。
系统实现:
package example;
import java.awt.*;
import ;
import ;
import javax.swing.*;
import java.sql.*;
import ;
class myrandom extends JFrame implements ActionListener{
//这个程序的数据是没有写入文件的
JFrame f1,f2;
JButton b1,b2,b3,b4,modify,direction;
JLabel a1;
JTextField t1,t2,t3,t4;
JTable table;
myrandom(){
table=new JTable();
f1=new JFrame("学生信息系统");
f1.setVisible(true);//设置窗体可见
a1=new JLabel("输入学号:");
t1=new JTextField(100);
t2=new JTextField(100);
b1=new JButton("查姓名:");
b2=new JButton("插入信息");
b3=new JButton("查看数据");
b4=new JButton("删除");
t3=new JTextField(100);
1
modify=new JButton("修改");
direction=new JButton("操作说明");
t4=new JTextField(100);
f1.setLayout(new GridLayout(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);
}
public void actionPerformed(ActionEvent e) {
f1.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);//关闭窗体后释放资源,若不写这条语句,
//则虽然关闭了窗体,但进程还在运行。
try{//这个try是在整个action中的,用于捕获建立连接异常
Class.forName("");
String dburl="jdbc:odbc:mydb"; //mydb是我建立的access数据源
Connection conn=DriverManager.getConnection(dburl);//这四条语句是用来在整个action事件中建立连接的
Statement stml=conn.createStatement(); //也就不用在每一个button 事件(b1,b2,b3,b4)中重复写这四条语句
//以上四条语句也可以改写为下面这四条语句:
// String dburl="jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=C:\\db1.mdb";
// Class.forName("");
// Connection conn = DriverManager.getConnection(dburl);
// Statement stml = conn.createStatement();
if(e.getSource()==b3){//查看数据(查看数据库中student表的所有信息
f2=new JFrame("显示信息");
f2.setVisible(true);//设置窗体可见
f2.setSize(200,200);//设置窗体大小
Vector rows = new Vector();//用于存储数据库中的行信息 Vector columnHeads = new Vector(); //用于存储数据库中的列标题try{
ResultSet rs=stml.executeQuery("select * from student");
boolean moreRecords = rs.next(); // 定位到达第一条记录,这句话一定要写
ResultSetMetaData rsmd = rs.getMetaData(); // 获得rs结果集中列属性信息
for (int i = 1; i <= rsmd.getColumnCount(); ++i)
columnHeads.addElement(rsmd.getColumnName(i)); // 获得列名(将列名存放至向量columnHeads)
do
{
rows.addElement(getNextRow(rs, rsmd)); //获取下一行记录 }
while (rs.next()); // 利用循环获得所有记录
JTable jTable = new JTable(rows, columnHeads); // 将获得的行列数据信息作为参数重新构造表格视图
jTable.setSize(new Dimension(383, 81));
JScrollPane scroller = new JScrollPane(jTable);// 创建带有滚动条的面板,并将表格视图加入
f2.add(scroller, BorderLayout.CENTER); // 将面板重新加入溶器中 f2.validate(); // 验证此容器及其所有子组件
3