📄 d_statoverdue.java
字号:
/*
* D_statoverdue.java
*
* Created on 2007年6月25日, 下午12:06
*/
package 图书管理系统;
import javax.swing.*;
import java.sql.*;
public class D_statoverdue extends javax.swing.JFrame {
/** Creates new form D_statoverdue */
public D_statoverdue() {
initComponents();
con=connect.getcon();
stmt=connect.getstmt();
this.setBounds(300,250,500,400);
BG.add(RB_sbclass);
BG.add(RB_sbunit);
this.setTitle("超期记录统计");
this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
try{
PreparedStatement sql=con.prepareStatement("select 图书.类别,count(图书.书号) from 图书,借阅 where 图书.书号=借阅.书号 and 借阅.归还日期 is NULL and datediff(dd,借阅.借阅日期,getdate())>60 group by 图书.类别");
rs = sql.executeQuery();
sql=con.prepareStatement("select count(图书.书号) from 图书,借阅 where 图书.书号=借阅.书号 and 借阅.归还日期 is NULL and datediff(dd,借阅.借阅日期,getdate())>60");
ResultSet rs2=sql.executeQuery();
rs2.next();
String s2=rs2.getString(1);
String[] rowline={"总计",s2};
int rows=0,column=0;
ResultSetMetaData reMeta;
int i=0,j=0,n=0;
reMeta=rs.getMetaData();
CustomTableModel model=null;
model=new CustomTableModel(0,name.length,name,dataType);
stattable.setModel(model);
int p=reMeta.getColumnCount();
column=p;
String[] row=new String[p];
while(rs.next())
{
for(j=0;j<p;j++)
{
row[j]=rs.getString(j+1);
}
model.insertRow(i,row);
i++;
}
model.insertRow(i,rowline);
stattable.repaint();
this.validate();
}
catch(Exception ee)
{
JOptionPane.showMessageDialog(null,"数据库访问失败!");
ee.printStackTrace();
}
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
// <editor-fold defaultstate="collapsed" desc=" 生成的代码 ">//GEN-BEGIN:initComponents
private void initComponents() {
BG = new javax.swing.ButtonGroup();
RB_sbclass = new javax.swing.JRadioButton();
RB_sbunit = new javax.swing.JRadioButton();
jScrollPane1 = new javax.swing.JScrollPane();
stattable = new javax.swing.JTable();
jLabel1 = new javax.swing.JLabel();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
RB_sbclass.setText("\u6309\u6240\u5728\u5355\u4f4d\u7edf\u8ba1\u6240\u6709\u8d85\u671f\u8bb0\u5f55");
RB_sbclass.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0));
RB_sbclass.setMargin(new java.awt.Insets(0, 0, 0, 0));
RB_sbclass.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
RB_sbclassActionPerformed(evt);
}
});
RB_sbunit.setText("\u6309\u56fe\u4e66\u7c7b\u522b\u7edf\u8ba1\u6240\u6709\u8d85\u671f\u8bb0\u5f55");
RB_sbunit.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0));
RB_sbunit.setMargin(new java.awt.Insets(0, 0, 0, 0));
RB_sbunit.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
RB_sbunitActionPerformed(evt);
}
});
stattable.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null, null, null},
{null, null, null, null},
{null, null, null, null},
{null, null, null, null}
},
new String [] {
"Title 1", "Title 2", "Title 3", "Title 4"
}
));
jScrollPane1.setViewportView(stattable);
jLabel1.setText("\u8bf7\u9009\u62e9\u60a8\u7684\u7edf\u8ba1\u8981\u6c42:");
org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(layout.createSequentialGroup()
.add(167, 167, 167)
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(RB_sbclass, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 198, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.add(RB_sbunit, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 208, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
.addContainerGap(71, Short.MAX_VALUE))
.add(layout.createSequentialGroup()
.add(30, 30, 30)
.add(jLabel1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 170, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.addContainerGap(246, Short.MAX_VALUE))
.add(jScrollPane1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 446, Short.MAX_VALUE)
);
layout.setVerticalGroup(
layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(org.jdesktop.layout.GroupLayout.TRAILING, layout.createSequentialGroup()
.addContainerGap()
.add(jLabel1)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.add(RB_sbunit)
.add(15, 15, 15)
.add(RB_sbclass)
.add(21, 21, 21)
.add(jScrollPane1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 370, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
);
pack();
}// </editor-fold>//GEN-END:initComponents
private void RB_sbunitActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_RB_sbunitActionPerformed
// TODO 将在此处添加您的处理代码:
try{
PreparedStatement sql=con.prepareStatement("select 图书.类别,count(图书.书号) from 图书,借阅 where 图书.书号=借阅.书号 and 借阅.归还日期 is NULL and datediff(dd,借阅.借阅日期,getdate())>60 group by 图书.类别");
rs = sql.executeQuery();
sql=con.prepareStatement("select count(图书.书号) from 图书,借阅 where 图书.书号=借阅.书号 and 借阅.归还日期 is NULL and datediff(dd,借阅.借阅日期,getdate())>60");
ResultSet rs2=sql.executeQuery();
rs2.next();
String s2=rs2.getString(1);
String[] rowline={"总计",s2};
int rows=0,column=0;
ResultSetMetaData reMeta;
int i=0,j=0,n=0;
reMeta=rs.getMetaData();
CustomTableModel model=null;
model=new CustomTableModel(0,name.length,name,dataType);
stattable.setModel(model);
int p=reMeta.getColumnCount();
column=p;
String[] row=new String[p];
while(rs.next())
{
for(j=0;j<p;j++)
{
row[j]=rs.getString(j+1);
}
model.insertRow(i,row);
i++;
}
model.insertRow(i,rowline);
stattable.repaint();
this.validate();
}
catch(Exception ee)
{
JOptionPane.showMessageDialog(null,"数据库访问失败!");
ee.printStackTrace();
}
}//GEN-LAST:event_RB_sbunitActionPerformed
private void RB_sbclassActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_RB_sbclassActionPerformed
// TODO 将在此处添加您的处理代码:
try{
PreparedStatement sql=con.prepareStatement("select 读者.单位,count(读者.编号) from 读者,借阅 where 读者.编号=借阅.读者编号 and 借阅.归还日期 is NULL and datediff(dd,借阅.借阅日期,getdate())>60 group by 读者.单位");
rs = sql.executeQuery();
String[] name={"所在单位","数量"};
sql=con.prepareStatement("select count(读者.编号) from 读者,借阅 where 读者.编号=借阅.读者编号 and 借阅.归还日期 is NULL and datediff(dd,借阅.借阅日期,getdate())>60");
ResultSet rs2=sql.executeQuery();
rs2.next();
String s2=rs2.getString(1);
String[] rowline={"总计",s2};
int rows=0,column=0;
ResultSetMetaData reMeta;
int i=0,j=0,n=0;
reMeta=rs.getMetaData();
CustomTableModel model=null;
model=new CustomTableModel(0,name.length,name,dataType);
stattable.setModel(model);
int p=reMeta.getColumnCount();
column=p;
String[] row=new String[p];
while(rs.next())
{
for(j=0;j<p;j++)
{
row[j]=rs.getString(j+1);
}
model.insertRow(i,row);
i++;
}
model.insertRow(i,rowline);
stattable.repaint();
this.validate();
}
catch(Exception ee)
{
JOptionPane.showMessageDialog(null,"数据库访问失败!");
ee.printStackTrace();
}
}//GEN-LAST:event_RB_sbclassActionPerformed
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new D_statoverdue().setVisible(true);
}
});
}
// 变量声明 - 不进行修改//GEN-BEGIN:variables
private javax.swing.ButtonGroup BG;
private javax.swing.JRadioButton RB_sbclass;
private javax.swing.JRadioButton RB_sbunit;
private javax.swing.JLabel jLabel1;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTable stattable;
// 变量声明结束//GEN-END:variables
private Connection con;
private Statement stmt;
private String[] name={"图书类别","数量"};
private Class[] dataType={String.class,String.class};
private ResultSet rs;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -