该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
求大神帮忙看一下下面的很多条sql语句的顺序,不知道是不是顺序的错误
package 读者具体功能实现;
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Vector;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTabbedPane;
import javax.swing.JTable;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.table.JTableHeader;
import 对象.book;
import 对象.user;
import 界面类.userframe;
public class returnbook extends JFrame implements ActionListener {
JPanel jp1,jp2,jp3,jp4;
static Connection con = null;
Statement sm1,sm2,sm3,sm4,sm5,sm6,sm7,sm8;
JLabel jl1,jl2,jl3,jl4,jl5;
JButton **1,**2;
JTextField jtf1,jtf2,jtf3,jtf4,jtf5;
JComboBox jcb1,jcb2,jcb3,jcb4;
public static String dateStr;
public static Date back_date;
JScrollPane jsp;
ResultSet rs1,rs2,rs3,rs4;
public static void main(String[] args) {
returnbook rb=new returnbook ();
}
public returnbook (){//先处理上面
String [] str1={"数学类","文学类","体育类","外语类","史学类","文化生活类","教育类","医学类"};
String [] str2={"罗天益医学全书","体适能基础理论","文化生活与生活的文化","围城","新三国志","红与黑","概率论","文化生活与生活的文化"};
String [] str3={"钱钟书","阮伯仁","许敬生","司汤达","刘浩然","赵凯旋","南宫民","丁国昌"};
String [] str4={"清华大学出版社","北京大学出版社","外语研究社出版社","南开大学出版社","中国教育出版社","中国科学出版社","中国中医药出版社","人民体育出版社"};
jcb1 = new JComboBox(str1);
jcb1.addActionListener(this);
jcb2 = new JComboBox(str2);
jcb2.addActionListener(this);
jcb3 = new JComboBox(str3);
jcb3.addActionListener(this);
jcb4 = new JComboBox(str4);
jcb4.addActionListener(this);
JPanel jp1=new JPanel();
jp1.setLayout(new GridLayout(2,2));
jp1.add(jcb1);
jp1.add(jcb2);
jp1.add(jcb3);
jp1.add(jcb4);
JTabbedPane jtp=new JTabbedPane();
JPanel jp5=new JPanel();
jtp.add("条件查询",jp1);
jtp.add("全局查询",jp5 );
this.add(jtp,BorderLayout.NORTH);
//处理中部
Vector cn=new Vector<>();//定义列名向量
cn.add("图书编号");
cn.add("图书类型");
cn.add("图书名称");
cn.add("单价");
cn.add("出版社");
cn.add("出版日期");
cn.add("作者");
cn.add("库存数量");
Vector> cn3=new Vector<>();//定义表格数据向量
Vector cn2=new Vector<>();//定义行向量
cn2.add("a");
cn2.add("b");
cn2.add("c");
cn2.add("d");
cn2.add("e");
cn2.add("f");
cn2.add("g");
cn2.add("h");
cn3.add(cn2);
JTable jt1=new JTable (cn3,cn);
JTableHeader jth=jt1.getTableHeader();
this.add(jt1);
JScrollPane jsp=new JScrollPane (jt1);
this.add(jsp,BorderLayout.CENTER);
//处理下部
JPanel jp2=new JPanel ();
jp2.setLayout(new GridLayout(4,2));
JLabel jl1=new JLabel ("借书时间");
JLabel jl2=new JLabel ("规定时间");
JLabel jl3=new JLabel ("还书时间");
JLabel jl4=new JLabel ("罚款金额");
jtf1=new JTextField ();
jtf2=new JTextField ("60");
jtf3=new JTextField ();
jtf4=new JTextField ();
jp2.add(jl1);
jp2.add(jtf1);
jp2.add(jl2);
jp2.add(jtf2);
jp2.add(jl3);
jp2.add(jtf3);
jp2.add(jl4);
jp2.add(jtf4);
JPanel jp3=new JPanel ();
jp3.setLayout(new GridLayout(2,2));
JLabel jl5=new JLabel ("当前时间");
jtf5=new JTextField ();//输出当前时间
SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
jtf5.setText(df.format(new Date()));
JButton **1=new JButton ("归还");
**1.addActionListener(this);
JButton **2=new JButton ("退出");
**2.addActionListener(this);
jp3.add(jl5);
jp3.add(jtf5);
jp3.add(**1);
jp3.add(**2);
JPanel jp4=new JPanel ();
jp4.setLayout(new GridLayout(1,2));
jp4.add(jp2);
jp4.add(jp3);
this.add(jp4,BorderLayout.SOUTH);
this.setSize(525,600);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
this.setTitle("读者还书界面,当前用户为"+user.user_name+"正在使用本系统"); //设置标题
}
@Override
public void actionPerformed(ActionEvent arg0) {
if (arg0.getSource()==jcb1) {
System.out.println(jcb1.getSelectedItem().toString());
}
if (arg0.getSource()==jcb2) {
System.out.println(jcb2.getSelectedItem().toString());
}
if (arg0.getSource()==jcb3) {
System.out.println(jcb3.getSelectedItem().toString());
}
if (arg0.getSource()==jcb4) {
System.out.println(jcb4.getSelectedItem().toString());
}
if(arg0.getActionCommand().equals("归还")){
String UserName = "sa";
String Password = "sa";
String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
String Url = "jdbc:sqlserver://127.0.0.1;database=book3";
try {
try {
Class.forName(driverName);
} catch (ClassNotFoundException e4) {
// TODO 自动生成的 catch 块
e4.printStackTrace();
}
System.out.println("数据库驱动加载成功");
con=DriverManager.getConnection(Url,UserName,Password);
} catch (SQLException e1) {
// TODO 自动生成的 catch 块
e1.printStackTrace();
}
try {
if(!con.isClosed()){
System.out.println("数据库连接成功");
}
} catch (SQLException e2) {
// TODO 自动生成的 catch 块
e2.printStackTrace();
}
sm1 = con.createStatement();
rs1 = sm1.executeQuery("select * from system_book where book_type='"+jcb1.getSelectedItem().toString()+"' or book_name='"+jcb2.getSelectedItem().toString()+"' or book_author='"+jcb3.getSelectedItem().toString()+"' or book_address='"+jcb4.getSelectedItem().toString()+"' ");
while(rs1.next()){
String v=rs1.getString("book_number");
String v1=rs1.getString("quantity");
String v3=rs1.getString("book_name");
int i = sm1.executeUpdate("update system_book set quantity=quantity+1 where book_number='"+v+"'");
if(i==1){
System.out.println("更新成功");
}
Statement sm2=con.createStatement();
rs2 = sm2.executeQuery("select rent_date from rent where book_number='"+v+"'");
while(rs2.next()){
String a=rs2.getString("rent_date");
System.out.println(a);
jtf1.setText(a);//得到借书时间
//得到还书时间
SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
jtf3.setText(df.format(new Date()));
String dateStr=df.format(new Date());
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
long m = sdf.parse(dateStr).getTime() - sdf.parse(a).getTime();
int days=(int) m / (1000 * 60 * 60 * 24);
String a4=days+"";
if(days>60){//同时确定超期次数
int a5=days-60;
String a6=a5+"";
jtf4.setText("+a6+");//得到罚款
int i3 = sm2.executeUpdate("insert into returnbook values('"+user.user_name+"','"+jtf3.getText()+"','"+v+"','"+v1+"','"+a4+"','overbacktime+1')");
if(i3==1){
System.out.println("插入成功");
}
int f=sm2.executeUpdate("delete from rent where book_number='"+v+"'");
if(f==1){
System.out.println("删除成功");
}
int i1 = sm2.executeUpdate("insert into fine values('"+user.user_name+"','"+v+"','"+v3+"','"+a6+"','"+a4+"')");
if(i1==1){
System.out.println("插入成功");
}
int i11 = sm2.executeUpdate("update creditrating set creditrating=creditrating-1");
if(i11==1){
System.out.println("插入成功");
}
}
else {
String b="0";
int i2 = sm1.executeUpdate("insert into returnbook values('"+user.user_name+"','"+jtf3.getText()+"','"+v+"','"+v1+"','"+a4+"','"+b+"')");
if(i2==1){
System.out.println("插入成功");
}
jtf4.setText("0");//罚款为0
}
}
}
}
if(arg0.getActionCommand().equals("退出")){
new userframe();
}
}
}