📄 stuaddquerysysapp4.java
字号:
import javax.swing.UIManager;
import java.awt.*;
import java.awt.event.*;
import java.lang.*;
import java.lang.Object.*;
import java.sql.*;
import java.util.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.table.*;
public class StuAddQuerySysApp{
private boolean packFrame = false;
public StuAddQuerySysApp(){
StuAddQuerySysFrame frame = new StuAddQuerySysFrame();
if(packFrame){
frame.pack();
}
else{
frame.validate();
}
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
Dimension frameSize = frame.getSize();
if (frameSize.height > screenSize.height){
frameSize.height = screenSize.height-100;
}
if (frameSize.width>screenSize.width){
frameSize.width=screenSize.width;
}
frame.setLocation((screenSize.width-frameSize.width)/2,(screenSize.height
-frameSize.height)/2);
frame.setVisible(true);
}
public static void main(String[] args){
try{
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
}
catch(Exception e){
e.printStackTrace();
}
new StuAddQuerySysApp();
}
}
class StuAddQuerySysFrame extends JFrame{
private JPanel contentPane;
private FlowLayout xYLayout1 = new FlowLayout();//构造XYLayout布局管理器
//创建显示信息使用的组件
private Label label1 = new Label();
private TextField stunumField = new TextField(10);
private TextField nameField = new TextField(15);
private Label label2 = new Label();
private TextField ageField = new TextField(8);
private Label label3 = new Label();
private TextField sexField = new TextField(8);
private Label label4 = new Label();
private TextField departmentField = new TextField(18);
private Label label5 = new Label();
private TextField teleField = new TextField(12);
private Label label6 = new Label();
private TextField emailField = new TextField(18);
private Label label7 = new Label();
private Button addrecordButton = new Button();
private Button deleteButton = new Button();
private Button refreshButton = new Button();
private Button stunumqueryButton = new Button();
private Button allrecordButton = new Button();
Vector vector; //声明一个向量对象
String title[] = {"学号","姓名","年龄","性别","系名","电话","email地址"};
Connection connection = null ; //声明Connection接口对象
ResultSet rSet = null;
Statement statement = null;
AbstractTableModel tm;
public StuAddQuerySysFrame(){
enableEvents(AWTEvent.WINDOW_EVENT_MASK);
try{
jbInit();
}
catch(Exception e){
e.printStackTrace();
}
}
private void jbInit() throws Exception{
contentPane =(JPanel)this.getContentPane();
//初始化组件
label1.setText("学号");
contentPane.setLayout(xYLayout1);
this.setSize(new Dimension(550,350));
this.setTitle("学生地址表查询系统");
label2.setText("姓名");
label3.setText("年龄");
label4.setText("性别");
label5.setText("系别");
label6.setText("电话");
label7.setText("EMAIL地址");
addrecordButton.setLabel("添加");
deleteButton.setLabel("删除");
refreshButton.setLabel("更新");
stunumqueryButton.setLabel("学号查询");
allrecordButton.setLabel("全部记录");
addrecordButton.addActionListener(new java.awt.event.ActionListener(){
//注册按钮事件监听对象,实现ActionListener接口的actPerformed方法
public void actionPerformed(ActionEvent e){
addrecordButton_actionPerformed(e);
}
});
deleteButton.addActionListener(new java.awt.event.ActionListener(){
public void actionPerformed(ActionEvent e){
deleteButton_actionPerformed(e);
}
});
refreshButton.addActionListener(new java.awt.event.ActionListener(){
public void actionPerformed(ActionEvent e){
refreshButton_actionPerformed(e);
}
});
stunumqueryButton.addActionListener(new java.awt.event.ActionListener(){
public void actionPerformed(ActionEvent e) {
stunumqueryButton_actionPerformed(e);
}
});
allrecordButton.addActionListener(new java.awt.event.ActionListener(){
public void actionPerformed(ActionEvent e){
allrecordButton_actionPerformed(e);
}
});
contentPane.add(label1);
contentPane.add(stunumField);
contentPane.add(label2);
contentPane.add(nameField);
contentPane.add(label3);
contentPane.add(ageField);
contentPane.add(label4);
contentPane.add(sexField);
contentPane.add(label5);
contentPane.add(departmentField);
contentPane.add(label6);
contentPane.add(teleField);
contentPane.add(label7);
contentPane.add(emailField);
contentPane.add(addrecordButton);
contentPane.add(deleteButton);
contentPane.add(refreshButton);
contentPane.add(stunumqueryButton);
contentPane.add(allrecordButton);
createtable(); //在初始化函数中调用createtable()函数显示表格
}
void createtable(){
JTable table;
JScrollPane scroll;
vector = new Vector();
tm = new AbstractTableModel(){
public int getColumnCount(){
return title.length;
}
public int getRowCount(){
return vector.size();
}
public Object getValueAt(int row,int column){
if(!vector.isEmpty()){
return ((Vector)vector.elementAt(row)).elementAt(column);
}
else{
return null;
}
}
public void setValueAt(Object value,int row,int column){
//数据模型不可编辑,该方法设置为空
}
public String getColumnName(int column){ //取得表格列名
return title[column];
}
public Class getColumnClass(int c){ //取得所属对象类
return getValueAt(0,c).getClass();
}
public boolean isCellEditable(int row,int column){
//设置单元格不可编辑,为缺省实现
return false;
}
};
table = new JTable(tm); //生成自己的数据模型
table.setToolTipText("Display Query Result"); //设置帮助提示
table.setAutoResizeMode(table.AUTO_RESIZE_OFF); //设置表格调整尺寸模式
table.setCellSelectionEnabled(false); //设置单元格选择方式
table.setShowHorizontalLines(true); //设置是否显示单元格之间的分割线
table.setShowVerticalLines(true);
scroll = new JScrollPane(table);
scroll.setPreferredSize(new Dimension(530,200));
contentPane.add(scroll);
}
protected void processWindowEvent(WindowEvent e){
super.processWindowEvent(e);
if(e.getID()==WindowEvent.WINDOW_CLOSING){
System.exit(0);
}
}
//向表studentbase和studentaddress插入记录
void addrecordButton_actionPerformed(ActionEvent e){
//处理addrecordButton(添加按钮)的ActionEvent
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//实例化JDBC-ODBC桥的驱动
String url = "jdbc:odbc:student"; //设置连接字符串
connection = DriverManager.getConnection(url);//连接数据库
//创建Statement接口对象
statement = connection.createStatement();
String sql1 = "insert into studentbase(学号,姓名,年龄,性别,系别) values ("
+ Integer.parseInt(stunumField.getText()) + ",'"+nameField.getText()+"',"
+Integer.parseInt(ageField.getText())+",'"+sexField.getText()+"','"+
departmentField.getText()+"')";
String sql2 = "insert into studentaddress(电话,email地址,学号) values ('"
+ teleField.getText()+"','"+emailField.getText()+"',"+Integer.parseInt
(stunumField.getText())+")";
statement.executeUpdate(sql2);
//执行增加辛的数据记录语言,向studentaddress表中添加记录
statement.executeUpdate(sql1);
//执行增加辛的数据记录语言,向studentbase表中添加记录
stunumField.setText("");
nameField.setText("");
ageField.setText("");
sexField.setText("");
departmentField.setText("");
teleField.setText("");
emailField.setText("");
}
catch(SQLException ex){
System.out.println("\nERROR:-----SQLException-----\n");
while(ex!=null){
System.out.println("Message:"+ex.getMessage());
System.out.println("SQLState:"+ex.getSQLState());
System.out.println("ErrorCode:"+ex.getErrorCode());
ex = ex.getNextException();
}
}
catch(Exception ex){
ex.printStackTrace();
}
finally{
try{
if(statement!=null) {
statement.close(); //关闭Statement接口实例
}
if(connection!=null) {
connection.close(); //关闭Connection接口实例
}
}
catch(SQLException ex){
System.out.println("\nERROR:-----SQLException-----\n");
System.out.println("Message:"+ex.getMessage());
System.out.println("SQLState:"+ex.getSQLState());
System.out.println("ErrorCode:"+ex.getErrorCode());
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -