先设置数据源,数据库名称为student 建好你的student表就可以拉
由于太长了,所以只给你做个student的增加\删除\修改\和查询显示到画好的表格中,自己慢慢体会然后再把其他两个做出来就可以拉,都是差不多的!!祝你好运!!
补充说明一点,那些注释用于调试用的!!
//TestStudent.java
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.PreparedStatement;
public class TestStudent extends JFrame implements ActionListener
{
JTable table;
Object a[][];
Object name[] =
{ "学号","姓名" };
JButton query, insert, update, delete;
JTextField sno, sname;
int rows = 1;
JPanel p;
TestStudent(String s)
{
super(s);
query = new JButton("查询"); //查询用 query
insert = new JButton("添加"); //添加用insert
query.addActionListener(this);
insert.addActionListener(this);
sno = new JTextField(10);
a = new Object[rows][3];
table = new JTable(a, name);
p = new JPanel();
p.add(new JLabel("学号"));
p.add(sno);
p.add(query);
p.add(insert);
getContentPane().add(p, BorderLayout.NORTH);
add(p, BorderLayout.NORTH);
update = new JButton("修改"); //修改用updata
delete = new JButton("删除"); //删除用delete
update.addActionListener(this);
delete.addActionListener(this);
sname = new JTextField(10);
p = new JPanel();
p.add(new JLabel("姓名"));
p.add(sname);
p.add(update);
p.add(delete);
getContentPane().add(p, BorderLayout.CENTER);
add(p, BorderLayout.CENTER);
getContentPane()
.add(new JScrollPane(table), BorderLayout.SOUTH);
add(new JScrollPane(table), BorderLayout.SOUTH);
setSize(1000, 800);
setVisible(true);
validate();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void actionPerformed(ActionEvent e)
{
Student student=new Student();
student.setSno(sno.getText());
student.setSname(sname.getText());
//System.out.println(student.getSname());
if(e.getSource()==insert)
{
try
{
student.insert(student);
JOptionPane.showMessageDialog(null, "数据添加成功");
}
catch (Exception e1)
{
e1.printStackTrace();
}
}
else if(e.getSource()==update)
{
try
{
student.update(student);
JOptionPane.showMessageDialog(null, "数据更新成功");
}
catch (Exception e1)
{
e1.printStackTrace();
}
}
else if(e.getSource()==delete)
{
try
{
student.delete(student.getSno());
JOptionPane.showMessageDialog(null, "数据删除成功");
}
catch (Exception e1)
{
e1.printStackTrace();
}
}
else if(e.getSource()==query)
{
try
{
Student temp=new Student();
temp=student.queryBySno(student.getSno());
table.setValueAt(temp.getSno(), 0, 0);
table.setValueAt(temp.getSname(), 0, 1);
System.out.println(temp.getSno());
System.out.println(temp.getSname());
JOptionPane.showMessageDialog(null, "数据查询成功");
}
catch (Exception e1)
{
e1.printStackTrace();
}
}
}
public static void main(String args[])
{
TestStudent ts = new TestStudent("学籍管理");
ts.pack();
}
}
//DataBaseConnection.java
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
public class DataBaseConnection
{
String DBDRIVER = "sun.jdbc.odbc.JdbcOdbcDriver" ;
String DBURL = "jdbc:odbc:student" ;
Connection conn = null ;
PreparedStatement pstmt = null ;
String sql = null ;
public DataBaseConnection()
{
try
{
Class.forName(DBDRIVER) ;
}
catch(Exception e1)
{
System.out.println("数据库驱动程序加载失败!!!") ;
}
try
{
conn = DriverManager.getConnection(DBURL) ;
}
catch(Exception e2)
{
System.out.println("数据库连接失败!!!") ;
}
}
public Connection getConnection()
{
return this.conn ;
}
public void close()
{
try
{
conn.close() ;
}
catch(Exception e4)
{
System.out.println("数据库关闭失败!!!") ;
}
}
}
//Student.java
import java.sql.PreparedStatement;
import java.sql.ResultSet;
public class Student
{
private String sno;
private String sname;
public String getSname()
{
return sname;
}
public void setSname(String sname)
{
this.sname = sname;
}
public String getSno()
{
return sno;
}
public void setSno(String sno)
{
this.sno = sno;
}
public void insert(Student student) throws Exception
{
String sql = "INSERT INTO student VALUES(?,?)" ;
PreparedStatement pstmt = null ;
DataBaseConnection dbc = null ;
dbc = new DataBaseConnection() ;
try
{
pstmt = dbc.getConnection().prepareStatement(sql) ;
pstmt.setString(1,student.getSno()) ;
pstmt.setString(2,student.getSname()) ;
pstmt.executeUpdate() ;
pstmt.close() ;
}
catch (Exception e)
{
// System.out.println(e) ;
throw new Exception("操作中出现错误!!!") ;
}
finally
{
dbc.close() ;
}
}
// 修改操作
public void update(Student student) throws Exception
{
String sql = "UPDATE student SET sname=? WHERE sno=?" ; //根据学号来更新名字
PreparedStatement pstmt = null ;
DataBaseConnection dbc = null ;
dbc = new DataBaseConnection() ;
try
{
pstmt = dbc.getConnection().prepareStatement(sql) ;
pstmt.setString(2,student.getSno()) ;
pstmt.setString(1,student.getSname()) ;
pstmt.executeUpdate() ;
pstmt.close() ;
}
catch (Exception e)
{
throw new Exception("操作中出现错误!!!") ;
}
finally
{
dbc.close() ;
}
}
public void delete(String sno) throws Exception //根据sno来删除数据
{
String sql = "DELETE FROM student WHERE sno=?" ;
PreparedStatement pstmt = null ;
DataBaseConnection dbc = null ;
dbc = new DataBaseConnection() ;
try
{
pstmt = dbc.getConnection().prepareStatement(sql) ;
pstmt.setString(1,sno) ;
pstmt.executeUpdate() ;
pstmt.close() ;
}
catch (Exception e)
{
throw new Exception("操作中出现错误!!!") ;
}
finally
{
dbc.close() ;
}
}
public Student queryBySno(String sno)
{
Student student = null ;
String sql = "SELECT sname FROM student WHERE sno=?" ;
PreparedStatement pstmt = null ;
DataBaseConnection dbc = null ;
dbc = new DataBaseConnection() ;
try
{
pstmt = dbc.getConnection().prepareStatement(sql) ;
pstmt.setString(1,sno) ;
ResultSet rs = pstmt.executeQuery() ;
if(rs.next())
{
student = new Student() ;
student.setSno(sno);
student.setSname(rs.getString(1)) ;
rs.close() ;
pstmt.close() ;
}
}
catch (Exception e)
{
e.printStackTrace();
}
finally
{
dbc.close() ;
}
return student ;
}
}
温馨提示:答案为网友推荐,仅供参考