每日总结

图书管理系统,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;
    }
}
复制代码
原文地址:https://www.cnblogs.com/ldy2396/p/14220647.html