📄 class_query.java
字号:
import java.awt.*;
import java.sql.*;
import java.util.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Scanner;
import java.sql.PreparedStatement;
import javax.swing.*;
public class Class_query extends JFrame implements ActionListener
{
Connection connection;
Statement statement;
ResultSet resultSet;
ResultSetMetaData rsMetaData;
GridBagLayout gbl=new GridBagLayout();
GridBagConstraints gbc=new GridBagConstraints();
JTable table;
JLabel tiaojian;
JTextField tf_tiaojian;
JButton chaxun,fanhui,dayin;
JLabel xuehao,kehao,fenshu;
JTextField tf_xuehao,tf_kehao,tf_fenshu;
//JButton xiugai,shanchu,tianjia;
JPanel topanel;
String query,shuru;
public Class_query()
{
super.setSize(800,400);
super.setLocation(180,80);
String url="jdbc:odbc:StudentScore";
String username="sa";
String password="";
topanel=new JPanel();
tiaojian=new JLabel("请输入班级号:");
tf_tiaojian=new JTextField(5);
// xuehao=new JLabel("学号");
//kehao=new JLabel("课号");
//fenshu=new JLabel("分数");
//tf_xuehao=new JTextField(5);
//tf_kehao=new JTextField(5);
//tf_fenshu=new JTextField(5);
chaxun=new JButton("查询");
chaxun.addActionListener(this);
dayin=new JButton("打印");
dayin.addActionListener(this);
fanhui=new JButton("返回");
fanhui.addActionListener(this);
//tianjia=new JButton("添加");
//tianjia.addActionListener(this);
//xiugai=new JButton("修改");
//xiugai.addActionListener(this);
//shanchu=new JButton("删除");
//shanchu.addActionListener(this);
set(0,0,1,1,topanel,tiaojian);set(1,0,1,1,topanel,tf_tiaojian);set(2,0,1,1,topanel,chaxun);set(3,0,1,1,topanel,dayin);set(4,0,1,1,topanel,fanhui);
//set(0,1,1,1,topanel,xuehao);set(1,1,1,1,topanel,tf_xuehao);set(2,1,1,1,topanel,kehao);set(3,1,1,1,topanel,tf_kehao);set(4,1,1,1,topanel,fenshu);set(5,1,1,1,topanel,tf_fenshu);
//set(2,3,1,1,topanel,tianjia);set(32,3,1,1,topanel,xiugai);set(4,3,1,1,topanel,shanchu);
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
connection=DriverManager.getConnection(url,username,password);
}
catch(ClassNotFoundException cnfex)
{
System.err.println( "装载JDBC/ODBC驱动程序失败。");
//cnfex.printStackTrace();
System.exit(1);
}
catch(SQLException sqlex)
{
System.err.println("无法连接数据库");
//sqlex.printStackTrace();
System.exit(1);
}
table=new JTable();
Container c=getContentPane();
c.add(topanel,BorderLayout.NORTH);
c.add(table,BorderLayout.CENTER);
String _query="select * from score";
getTable(_query);
}
public void set(int x,int y,int w,int h,JPanel com,Component zujian)
{
gbc.anchor=GridBagConstraints.NORTH;
gbc.gridx=x;
gbc.gridy=y;
gbc.gridwidth=w;
gbc.gridheight=h;
gbl.setConstraints(com, gbc);
com.add(zujian);
}
public void actionPerformed(ActionEvent e)
{
Object obj=e.getSource();
if(obj==chaxun)
{
shuru=tf_tiaojian.getText().trim();
if(shuru.length()==0)
{
JOptionPane.showMessageDialog(this, "请输入班级号", "错误",JOptionPane.ERROR_MESSAGE);
}
else
{
query="select * from score where student_no in(select student_no from student where student_class="+shuru+")";
getTable(query);
}
}
if(obj==dayin)
{
JOptionPane.showMessageDialog(this, "找不到打印机", "错误",JOptionPane.ERROR_MESSAGE);
}
if(obj==fanhui)
{
this.dispose();
Admin_manage admin=new Admin_manage();
admin.setVisible(true);
}
}
private void getTable(String query)
{
try
{
statement =connection.createStatement();
resultSet=statement.executeQuery(query);
displayResultSet(resultSet);
}
catch(SQLException sqlex)
{
//sqlex.printStackTrace();
}
}
private void displayResultSet(ResultSet rs) throws SQLException
{
boolean moreRecords=rs.next();
if(!moreRecords)
{
JOptionPane.showMessageDialog(this,"结果集中无记录");
setTitle("无记录显示");
return;
}
Vector columnHeads=new Vector();
Vector rows=new Vector();
try
{
ResultSetMetaData rsmd=rs.getMetaData();
for(int i=1;i<=rsmd.getColumnCount();++i)
columnHeads.addElement(rsmd.getColumnName(i));
do{
rows.addElement(getNextRow(rs,rsmd));
} while(rs.next());
table=new JTable(rows,columnHeads);
JScrollPane scroller=new JScrollPane(table);
Container c=getContentPane();
c.remove(1);
c.add(scroller,BorderLayout.CENTER);
//刷新Table
c.validate();
}
catch(SQLException sql)
{
//sql.printStackTrace();
}
}
private Vector getNextRow( ResultSet rs,ResultSetMetaData rsmd) throws SQLException
{
Vector currentRow = new Vector();
for(int i=1; i<=rsmd.getColumnCount();++i)
currentRow.addElement(rs.getString(i));
//返回一条记录
return currentRow;
}
public void shutDown()
{
try
{
//断开数据库连接
connection.close();
}
catch(SQLException sqlex)
{
System.err.println( "Unable to disconnect" );
//sqlex.printStackTrace();
}
}
public static void main(String[] args)
{
Class_query xian=new Class_query();
xian.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
xian.setVisible(true);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -