图书管理系统:
javabean:
dao层放数据库操作的各种方法:
package bean;
import java.sql.*;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.*;
public class dao {
public Connection getConnection()
{
try {
Class.forName("com.mysql.cj.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
String url = "jdbc:mysql://localhost:3306/test?serverTimezone=GMT%2B8";
String username = "root";
String password="123456";
Connection a=null;
try {
a = DriverManager.getConnection(url,username,password);
} catch (SQLException e) {
e.printStackTrace();
}
return a;
}
public boolean checkM(String name,String password) throws SQLException
{
Connection coon=getConnection();
String sql="select* from manager";
Statement stmt=coon.createStatement();
ResultSet rs=stmt.executeQuery(sql);
int TEMP=0;
while(rs.next())
{
if(name.equals(rs.getString("name"))&&password.equals(rs.getString("password")))
{coon.close();return true;}
}
return false;
}
public boolean checkR(String name,String password) throws SQLException
{
Connection coon=getConnection();
String sql="select* from readerpass";
Statement stmt=coon.createStatement();
ResultSet rs=stmt.executeQuery(sql);
while(rs.next())
{
if(name.equals(rs.getString("num"))&&password.equals(rs.getString("password")))
{coon.close();return true;}
}
return false;
}
public boolean addReader(reader p,String password) throws SQLException
{
Connection coon=getConnection();
int row,temp=0;
String sql1="insert into readerpass(num,password)values(?,?)";
String sql2="insert into mybook(name,book,date1,date2)values(?,?,?,?)";
String sql="insert into reader(num,name,sex,school)values(?,?,?,?)";
PreparedStatement b,c,d;
try {
b = coon.prepareStatement(sql);
b.setString(1,p.getNum());
b.setString(2,p.getName());
b.setString(3,p.getSex());
b.setString(4,p.getSchool());
row=b.executeUpdate();
if(row<0) temp=1;
b.close();
} catch (SQLException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
try {
c = coon.prepareStatement(sql1);
c.setString(1,p.getNum());
c.setString(2,password);
row=c.executeUpdate();
if(row<0) temp=1;
c.close();
} catch (SQLException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
try {
d = coon.prepareStatement(sql2);
d.setString(1,p.getName());
d.setString(2,"");
d.setString(3,"");
d.setString(4,"");
row=d.executeUpdate();
if(row<0) temp=1;
d.close();
} catch (SQLException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
coon.close();
if(temp==0) return true;
else return false;
}
public boolean addBook(book p) throws SQLException
{
Connection coon=getConnection();
int row,temp=0;
String sql="insert into book(ID,name,writter,home,num)values(?,?,?,?,?)";
PreparedStatement b;
try {
b = coon.prepareStatement(sql);
b.setString(1,p.getID());
b.setString(2,p.getName());
b.setString(3,p.getWritter());
b.setString(4,p.getHome());
b.setString(5,p.getNum());
row=b.executeUpdate();
if(row<0) temp=1;
b.close();
} catch (SQLException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
coon.close();
if(temp==0) return true;
else return false;
}
public reader Rlook(String num) throws SQLException
{
reader q=new reader();
Connection coon=getConnection();
Statement stmt=coon.createStatement();
String sql1="select* from reader";
ResultSet rs=stmt.executeQuery(sql1);
while(rs.next())
{
String namep=rs.getString("num");
if(num.equals(namep)==true)
{
q.setNum(rs.getString("num"));
q.setName(rs.getString("name"));
q.setSex(rs.getString("sex"));
q.setSchool(rs.getString("school"));
break;
}
}
rs.close();
stmt.close();
coon.close();
return q;
}
public List<book> findb() throws SQLException
{
List<book> list=new ArrayList<book>();
Connection coon=getConnection();
String sql="select* from book";
Statement stmt=coon.createStatement();
ResultSet rs=stmt.executeQuery(sql);
while(rs.next())
{
book a=new book();
a.setID(rs.getString("ID"));
a.setName(rs.getString("name"));
a.setWritter(rs.getString("writter"));
a.setHome(rs.getString("home"));
a.setNum(rs.getString("num"));
list.add(a);
}
rs.close();
stmt.close();
coon.close();
return list;
}
public List<book> findb1(String A,String B) throws SQLException
{
List<book> list=new ArrayList<book>();
Connection coon=getConnection();
String sql="select * from book where "+A+" like '%"+B+"%'";
Statement stmt=coon.createStatement();
ResultSet rs=stmt.executeQuery(sql);
while(rs.next())
{
book a=new book();
a.setID(rs.getString("ID"));
a.setName(rs.getString("name"));
a.setWritter(rs.getString("writter"));
a.setHome(rs.getString("home"));
a.setNum(rs.getString("num"));
list.add(a);
}
rs.close();
stmt.close();
coon.close();
return list;
}
public void borrow(String ID,reader a,String b,String d) throws SQLException
{
Connection coon=getConnection();
String sql="select* from book";
String sql3="select* from mybook";
Statement stmt=coon.createStatement();
Statement stmt1=coon.createStatement();
ResultSet rs=stmt.executeQuery(sql);
ResultSet rs1=stmt1.executeQuery(sql3);
while(rs.next())
{
System.out.println(rs.getString("ID"));
if(rs.getString("ID").equals(ID)&&!rs.getString("num").equals("0"))
{
String sql1="update book set num=? where ID=?";
PreparedStatement a1=coon.prepareStatement(sql1);
String name2=Integer.toString(Integer.parseInt(rs.getString("num"))-1);
a1.setString(1, name2);
a1.setString(2, ID);
a1.executeUpdate();
a1.close();
String name5=rs.getString("name");
rs.close();
while(rs1.next())
{
if(rs1.getString("name").equals(a.getName()))
{
String sql2="update mybook set book=?,date1=?,date2=? where name=?";
PreparedStatement a2=coon.prepareStatement(sql2);
String name3=rs1.getString("book");
String name4=name3+name5+"+";
String name7=rs1.getString("date1")+b+"+";
String name6=rs1.getString("date2")+d+"+";
a2.setString(1, name4);
a2.setString(2, name7);
a2.setString(3, name6);
a2.setString(4, a.getName());
a2.executeUpdate();
a2.close();
rs1.close();
break;
}
}
break;
}
}
stmt.close();
stmt1.close();
coon.close();
}
public String lasttime(String A)
{
String t[]=A.split("\-");
int d[]= {31,28,31,30,31,30,31,31,30,31,30,31};
int a=Integer.parseInt(t[0]);
int b=Integer.parseInt(t[1]);
int c=Integer.parseInt(t[2]);
if(c%4==0)
{
d[1]=29;
}
for(int i=1;i<=90;i++)
{
if(a==d[b-1])
{
a=0;
b++;
}
if(b==13)
{
b=1;
c++;
}
a++;
}
A=Integer.toString(a)+"-"+Integer.toString(b)+"-"+Integer.toString(c);
return A;
}
public List<book> findbp(String name) throws SQLException
{
List<book> list=new ArrayList<book>();
List<book> list2=new ArrayList<book>();
Connection coon=getConnection();
LocalDate date = LocalDate.now();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MM-yyyy");
String time1 = date.format(formatter);
String sql="select* from mybook";
String sql1="select* from book";
Statement stmt=coon.createStatement();
Statement stmt1=coon.createStatement();
ResultSet rs=stmt.executeQuery(sql);
ResultSet rs1=stmt1.executeQuery(sql1);
while(rs1.next())
{
book a=new book();
a.setID(rs1.getString("ID"));
a.setName(rs1.getString("name"));
a.setWritter(rs1.getString("writter"));
a.setHome(rs1.getString("home"));
a.setNum(rs1.getString("num"));
list.add(a);
}
while(rs.next())
{
if(rs.getString("name").equals(name))
{
String A[]=rs.getString("date2").split("\+");
String B[]=rs.getString("book").split("\+");
for(int i=0;i<A.length;i++)
{
if(!time(time1,A[i]))
{
for(book O:list)
{
if(O.getName().equals(B[i]))
{
list2.add(O);
}
}
}
}
}
}
rs1.close();
rs.close();
stmt.close();
stmt1.close();
coon.close();
return list2;
}
public List<book> findbm(String name) throws SQLException
{
List<book> list=new ArrayList<book>();
List<book> list2=new ArrayList<book>();
Connection coon=getConnection();
String sql="select* from mybook";
String sql1="select* from book";
Statement stmt=coon.createStatement();
Statement stmt1=coon.createStatement();
ResultSet rs=stmt.executeQuery(sql);
ResultSet rs1=stmt1.executeQuery(sql1);
while(rs1.next())
{
book a=new book();
a.setID(rs1.getString("ID"));
a.setName(rs1.getString("name"));
a.setWritter(rs1.getString("writter"));
a.setHome(rs1.getString("home"));
a.setNum(rs1.getString("num"));
list.add(a);
}
while(rs.next())
{
if(rs.getString("name").equals(name))
{
String name1[]=rs.getString("book").split("\+");
for(int i=0;i<name1.length;i++)
{
for(book O:list)
{
if(O.getName().equals(name1[i]))
{
list2.add(O);
}
}
}
}
}
rs.close();
rs1.close();
stmt.close();
stmt1.close();
coon.close();
return list;
}
public List<book> findbp1() throws SQLException
{
LocalDate date = LocalDate.now();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MM-yyyy");
String time1 = date.format(formatter);
List<book> list=new ArrayList<book>();
List<book> list2=new ArrayList<book>();
String name=new String();
Connection coon=getConnection();
String sql="select* from mybook";
String sql1="select* from book";
Statement stmt=coon.createStatement();
Statement stmt1=coon.createStatement();
ResultSet rs=stmt.executeQuery(sql);
ResultSet rs1=stmt1.executeQuery(sql1);
while(rs1.next())
{
book a=new book();
a.setID(rs1.getString("ID"));
a.setName(rs1.getString("name"));
a.setWritter(rs1.getString("writter"));
a.setHome(rs1.getString("home"));
a.setNum(rs1.getString("num"));
a.setReader("wite");
list.add(a);
}
while(rs.next())
{
if(rs.getString("book")!=null)
{
String A[]=rs.getString("date2").split("\+");
String B[]=rs.getString("book").split("\+");
for(int i=0;i<A.length;i++)
{
if(!time(time1,A[i]))
{
System.out.println("1");
for(book O:list)
{
if(O.getName().equals(B[i]))
{
System.out.println(rs.getString("name"));
O.setReader(rs.getString("name"));
list2.add(O);
}
}
}
}
}
else break;
}
rs.close();
rs1.close();
stmt.close();
stmt1.close();
coon.close();
return list2;
}
public void huan(String ID,reader a) throws SQLException
{
String name="";
String num="";
String bookname="";
String date1="";
String date2="";
Connection coon=getConnection();
String sql="select* from book";
String sql1="select* from mybook";
Statement stmt=coon.createStatement();
Statement stmt1=coon.createStatement();
ResultSet rs=stmt.executeQuery(sql);
ResultSet rs1=stmt1.executeQuery(sql1);
while(rs.next())
{
if(rs.getString("ID").equals(ID))
{
name=rs.getString("name");
num=rs.getString("num");
}
}
while(rs1.next())
{
if(rs1.getString("name").equals(a.getName()))
{
String A[]=rs1.getString("date2").split("\+");
String B[]=rs1.getString("book").split("\+");
String C[]=rs1.getString("date1").split("\+");
for(int i=0;i<B.length;i++)
{
if(!name.equals(B[i]))
{
bookname=bookname+B[i]+"+";
date1=date1+C[i]+"+";
date2=date2+A[i]+"+";
}
}
}
String Sql="update book set num=? where ID=?";
PreparedStatement a1=coon.prepareStatement(Sql);
String name2=Integer.toString(Integer.parseInt(num)+1);
a1.setString(1, name2);
a1.setString(2, ID);
a1.executeUpdate();
String sql2="update mybook set book=?,date1=?,date2=? where name=?";
PreparedStatement a2=coon.prepareStatement(sql2);
a2.setString(1, bookname);
a2.setString(2, date1);
a2.setString(3, date2);
a2.setString(4, a.getName());
a2.executeUpdate();
a2.close();
a1.close();
}
rs.close();
rs1.close();
stmt.close();
stmt1.close();
coon.close();
}
public boolean time(String A,String B)
{
String a[]=A.split("\-");
String b[]=B.split("\-");
int a1=Integer.parseInt(a[0]);
int a2=Integer.parseInt(a[1]);
int a3=Integer.parseInt(a[2]);
int b1=Integer.parseInt(b[0]);
int b2=Integer.parseInt(b[1]);
int b3=Integer.parseInt(b[2]);
if(a3>b3) return false;
else if(a3==b3&&a2>b2) return false;
else if(a3==b3&&a2==b2&&a1>b1) return false;
else return true;
}
}