java系統-圖書管理系統

(1)在Oracle數據庫中建立book、booktype、users、admin、borrowbook、reader、zjtype表java

create table book(......);
create table booktype(......);
create table users(......);
create table admin(......);
create table borrowbook(......);
create table reader(......);
create table zjtype(......);


(2)封裝各個表的屬性sql

import java.io.Serializable;

//封裝book表
public class Book implements Serializable{
	private String isbn;                          
	private int typeid;                         
	private String bookname;                         
	private String writer;                       
	private String translater;                         
	private String publisher;                        
	private String publishdate;                         
	private double price;
	private int state;
	
	public String toString(Book b){
		String str=null;
		if(b.getState()==1){
			str="《"+b.getBookname()+"》"+"已借出!";
		}else{
			str="《"+b.getBookname()+"》"+"未被借出,能夠進行借閱!";
		}
		return str;
	}
	public int getState() {
		return state;
	}
	public void setState(int state) {
		this.state = state;
	}
	public String getIsbn() {
		return isbn;
	}
	public void setIsbn(String isbn) {
		this.isbn = isbn;
	}
	public int getTypeid() {
		return typeid;
	}
	public void setTypeid(int typeid) {
		this.typeid = typeid;
	}
	public String getBookname() {
		return bookname;
	}
	public void setBookname(String bookname) {
		this.bookname = bookname;
	}
	public String getWriter() {
		return writer;
	}
	public void setWriter(String writer) {
		this.writer = writer;
	}
	public String getTranslater() {
		return translater;
	}
	public void setTranslater(String translater) {
		this.translater = translater;
	}
	public String getPublisher() {
		return publisher;
	}
	public void setPublisher(String publisher) {
		this.publisher = publisher;
	}
	public String getPublishdate() {
		return publishdate;
	}
	public void setPublishdate(String publishdate) {
		this.publishdate = publishdate;
	}
	public double getPrice() {
		return price;
	}
	public void setPrice(double price) {
		this.price = price;
	}
}
import java.io.Serializable;

//封裝booktype表
public class Booktype implements Serializable{
	private String typename;
	private int id;
	public String getTypename() {
		return typename;
	}
	public void setTypename(String typename) {
		this.typename = typename;
	}
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
}
import java.io.Serializable;

//封裝users表
public class Users implements Serializable{
	private int id;
	private String name;
	private String sex;
	private int age;
	private String identitycard;
	private String workdate;
	private String tel;
	private int yajin;
	private String password;
	private String admin;
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getSex() {
		return sex;
	}
	public void setSex(String sex) {
		this.sex = sex;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public String getIdentitycard() {
		return identitycard;
	}
	public void setIdentitycard(String identitycard) {
		this.identitycard = identitycard;
	}
	public String getWorkdate() {
		return workdate;
	}
	public void setWorkdate(String workdate) {
		this.workdate = workdate;
	}
	public String getTel() {
		return tel;
	}
	public void setTel(String tel) {
		this.tel = tel;
	}
	public int getYajin() {
		return yajin;
	}
	public void setYajin(int yajin) {
		this.yajin = yajin;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public String getAdmin() {
		return admin;
	}
	public void setAdmin(String admin) {
		this.admin = admin;
	}
}
import java.io.Serializable;

//封裝admin表
public class Admin implements Serializable{
    private String name;
    private String password;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
}
import java.io.Serializable;

//封裝reader表
public class Reader implements Serializable{
	private int id;
	private String name;
	private String sex;
	private int age;
	private String identitycard;
	private String nowdate;
	private int maxnum;
	private String tel;
	private int keepmoney;
	private int zj;
	private String zy;
	private String bztime;
	private String password;
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getNowdate() {
		return nowdate;
	}
	public void setNowdate(String nowdate) {
		this.nowdate = nowdate;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getSex() {
		return sex;
	}
	public void setSex(String sex) {
		this.sex = sex;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public String getIdentitycard() {
		return identitycard;
	}
	public void setIdentitycard(String identitycard) {
		this.identitycard = identitycard;
	}
	
	public int getMaxnum() {
		return maxnum;
	}
	public void setMaxnum(int maxnum) {
		this.maxnum = maxnum;
	}
	public String getTel() {
		return tel;
	}
	public void setTel(String tel) {
		this.tel = tel;
	}
	public int getKeepmoney() {
		return keepmoney;
	}
	public void setKeepmoney(int keepmoney) {
		this.keepmoney = keepmoney;
	}
	public int getZj() {
		return zj;
	}
	public void setZj(int zj) {
		this.zj = zj;
	}
	public String getZy() {
		return zy;
	}
	public void setZy(String zy) {
		this.zy = zy;
	}
	public String getBztime() {
		return bztime;
	}
	public void setBztime(String bztime) {
		this.bztime = bztime;
	}
}
import java.io.Serializable;

//封裝borrowbook表
public class Borrowbook implements Serializable{
	private String borrower;
	private String bookname;
	private String borrowdate;
	private String returntime;
	public String getBorrower() {
		return borrower;
	}
	public void setBorrower(String borrower) {
		this.borrower = borrower;
	}
	public String getBookname() {
		return bookname;
	}
	public void setBookname(String bookname) {
		this.bookname = bookname;
	}
	public String getBorrowdate() {
		return borrowdate;
	}
	public void setBorrowdate(String borrowdate) {
		this.borrowdate = borrowdate;
	}
	public String getReturntime() {
		return returntime;
	}
	public void setReturntime(String returntime) {
		this.returntime = returntime;
	}
}
import java.io.Serializable;

//封裝zjtype表
public class Zjtype implements Serializable{
    private int zjid;
    private String typename;
    private String power;
	public int getZjid() {
		return zjid;
	}
	public void setZjid(int zjid) {
		this.zjid = zjid;
	}
	public String getTypename() {
		return typename;
	}
	public void setTypename(String typename) {
		this.typename = typename;
	}
	public String getPower() {
		return power;
	}
	public void setPower(String power) {
		this.power = power;
	}
}

(3)建立BaseDao類數據庫

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class BaseDao {
    public Connection initConnection() throws Exception{
    	Class.forName("oracle.jdbc.driver.OracleDriver");
    	String url="jdbc:oracle:thin:@localhost:1521:XE";
    	Connection conn=DriverManager.getConnection(url,"system","xajz");
    	return conn;
    }
    public void closeConnection(Connection conn) throws Exception{
    	if(conn!=null&&!conn.isClosed()){
    		conn.close();
    		conn=null;
    	}
    }
    
    public int executeupdate(Connection conn,String sql) throws Exception{
    	int count=0;
    	if(conn!=null&&!conn.isClosed()){
    		Statement stm=conn.createStatement();
    		count=stm.executeUpdate(sql);
    	}
    	return count;
    }
    
    public ResultSet executeQuery(Connection conn,String sql) throws Exception{
    	ResultSet rs=null;
    	if(conn!=null&&!conn.isClosed()){
    		Statement stm=conn.createStatement();
    		rs=stm.executeQuery(sql);
    	}
    	return rs;
    }
}

(4)建立各表進行增刪改查的數據鏈接類oracle

import java.sql.*;
import java.util.*;
import xinxilei.Book;

public class BookDao extends BaseDao{
    //添加圖書
    public int saveinsert(Book b) throws Exception{
    	String sql="insert into book values('"+b.getIsbn()+"',"+b.getTypeid()+",'"+b.getBookname()+"','"+b.getWriter()+"','"+b.getTranslater()+"','"+b.getPublisher()+"','"+b.getPublishdate()+"',"+b.getPrice()+","+b.getState()+")";
    	Connection conn=this.initConnection();
    	int count=this.executeupdate(conn, sql);
    	return count;
    }
    //查找圖書
    public ResultSet savefind(String name) throws Exception{
    	String sql="select * from book where bookname='"+name+"'";
    	Connection conn=this.initConnection();
    	ResultSet rs=this.executeQuery(conn, sql);
    	return rs;
    }
    public int saveupdate(Book b,String name) throws Exception{
    	Connection conn=this.initConnection();
    	String sql="update book set isbn='"+b.getIsbn()+"',typeid="+b.getTypeid()+",bookname='"+b.getBookname()+"',writer='"+b.getWriter()+"',translater='"+b.getTranslater()+"',publisher='"+b.getPublisher()+"',publishdate='"+b.getPublishdate()+"',price="+b.getPrice()+",state="+b.getState()+" where bookname='"+name+"'";
    	int count=this.executeupdate(conn, sql);
    	return count;
    }
    //修改圖書狀態進行借書還書
    public int savemodify(Book b,String name) throws Exception{
    	Connection conn=this.initConnection();
    	String sql="update book set state="+b.getState()+" where bookname='"+name+"'";
    	int count=this.executeupdate(conn, sql);
    	return count;
    }
    //修改圖書名
    public int updatename(String name1,String name) throws Exception{
    	Connection conn=this.initConnection();
    	String sql="update book set bookname='"+name1+"' where bookname='"+name+"'";
    	int count=this.executeupdate(conn, sql);
    	return count;
    }
    //修改圖書類型
    public int updatetypeid(int type,String name) throws Exception{
    	Connection conn=this.initConnection();
    	String sql="update book set typeid="+type+" where bookname='"+name+"'";
    	int count=this.executeupdate(conn, sql);
    	return count;
    }
    //修改圖書價格
    public int updateprice(double price,String name) throws Exception{
    	Connection conn=this.initConnection();
    	String sql="update book set price="+price+" where bookname='"+name+"'";
    	int count=this.executeupdate(conn, sql);
    	return count;
    }
    //修改圖書國際標準書號
    public int updateisbn(String isbn,String name) throws Exception{
    	Connection conn=this.initConnection();
    	String sql="update book set isbn='"+isbn+"' where bookname='"+name+"'";
    	int count=this.executeupdate(conn, sql);
    	return count;
    }
    //刪除圖書
    public int savedelete(Book b) throws Exception{
    	Connection conn=this.initConnection();
    	String sql="delete from book where isbn='"+b.getIsbn()+"'";
    	int count=this.executeupdate(conn, sql);
    	return count;
    }
    //查看圖書信息
    public List<Book> select() throws Exception{
    	String sql="select * from book";
    	Connection conn=this.initConnection();
    	ResultSet rs=this.executeQuery(conn, sql);
    	List<Book> li=new ArrayList<Book>();
    	while(rs.next()){
    		Book b=new Book();
    		b.setIsbn(rs.getString(1));
    		b.setTypeid(rs.getInt(2));
    		b.setBookname(rs.getString(3));
    		b.setWriter(rs.getString(4));
    		b.setTranslater(rs.getString(5));
    		b.setPublisher(rs.getString(6));
    		b.setPublishdate(rs.getString(7));
    		b.setPrice(rs.getInt(8));
    		b.setState(rs.getInt(9));
    		li.add(b);
    	}
    	return li;
    }
}
import java.sql.*;
import java.util.*;
import xinxilei.Users;

public class UsersDao extends BaseDao{
	 public int saveinsert(Users u) throws Exception{
	    String sql="insert into users values("+u.getId()+",'"+u.getName()+"','"+u.getSex()+"',"+u.getAge()+",'"+u.getIdentitycard()+"','"+u.getWorkdate()+"','"+u.getTel()+"',"+u.getYajin()+",'"+u.getPassword()+"','"+u.getAdmin()+"')";
	    Connection conn=this.initConnection();
	    int count=this.executeupdate(conn, sql);
	    return count;
	 }
	 
	 public int saveupdate(Users u,String name) throws Exception{
		 String sql="update users set id="+u.getId()+",name='"+u.getName()+"',sex='"+u.getSex()+"',age="+u.getAge()+",identitycard='"+u.getIdentitycard()+"',workdate='"+u.getWorkdate()+"',tel='"+u.getTel()+"',yajin="+u.getYajin()+",password='"+u.getPassword()+"',admin='"+u.getAdmin()+"' where name='"+name+"'";
		 Connection conn=this.initConnection();
		 int count=this.executeupdate(conn, sql);
		 return count;
	 }
	 
	 public int updatename(String name1,String name) throws Exception{
		 String sql="update users set name='"+name1+"' where name='"+name+"'";
		 Connection conn=this.initConnection();
		 int count=this.executeupdate(conn, sql);
		 return count;
	 }
	 
	 public int updateage(int age,String name) throws Exception{
		 String sql="update users set age="+age+" where name='"+name+"'";
		 Connection conn=this.initConnection();
		 int count=this.executeupdate(conn, sql);
		 return count;
	 }
	 
	 public int updatepassword(String pass,String name) throws Exception{
		 String sql="update users set password='"+pass+"' where name='"+name+"'";
		 Connection conn=this.initConnection();
		 int count=this.executeupdate(conn, sql);
		 return count;
	 }
	 
	 public int updateadmin(String admin,String name) throws Exception{
		 String sql="update users set admin='"+admin+"' where name='"+name+"'";
		 Connection conn=this.initConnection();
		 int count=this.executeupdate(conn, sql);
		 return count;
	 }
	 
	 public int savedelete(Users u) throws Exception{
		 String sql="delete from users where name='"+u.getName()+"'";
		 Connection conn=this.initConnection();
		 int count=this.executeupdate(conn, sql);
		 return count;
	 }
	 
	 public List<Users> select() throws Exception{
		 List<Users> li=new ArrayList<Users>();
	     String sql="select * from users";
	     Connection conn=this.initConnection();
	     ResultSet rs=this.executeQuery(conn, sql);
	     while(rs.next()){
	    	 Users u=new Users();
	    	 u.setId(rs.getInt(1));
	    	 u.setName(rs.getString(2));
	    	 u.setSex(rs.getString(3));
	    	 u.setAge(rs.getInt(4));
	    	 u.setIdentitycard(rs.getString(5));
	    	 u.setWorkdate(rs.getString(6));
	    	 u.setTel(rs.getString(7));
	    	 u.setYajin(rs.getInt(8));
	    	 u.setPassword(rs.getString(9));
	    	 u.setAdmin(rs.getString(10));
	    	 li.add(u);
	     }
	     return li;
	 }
	 
	 public ResultSet findbyname(String name) throws Exception{
		 Connection conn=this.initConnection();
		 String sql="select * from users where name='"+name+"'";
		 ResultSet rs=this.executeQuery(conn, sql);
		 return rs;
	 }
}
import java.sql.*;
import java.util.*;
import xinxilei.Admin;

public class AdminDao extends BaseDao{
    public int saveinsert(Admin ad) throws Exception{
    	String sql="insert into admin values('"+ad.getName()+"','"+ad.getPassword()+"')";
    	Connection conn=this.initConnection();
    	int count=this.executeupdate(conn, sql);
    	return count;
    }
    
    public int savedelete(Admin ad) throws Exception{
    	String sql="delete from admin where name='"+ad.getName()+"'";
    	Connection conn=this.initConnection();
    	int count=this.executeupdate(conn, sql);
    	return count;
    }
    
    public int saveupdate(Admin ad,String name) throws Exception{
    	String sql="update admin set name='"+ad.getName()+"',password='"+ad.getPassword()+"' where name='"+name+"'";
    	Connection conn=this.initConnection();
    	int count=this.executeupdate(conn, sql);
    	return count;
    }
    
    public List<Admin> select() throws Exception{
    	String sql="select * from admin";
    	Connection conn=this.initConnection();
    	ResultSet rs=this.executeQuery(conn, sql);
    	List<Admin> li=new ArrayList<Admin>();
    	while(rs.next()){
    		Admin ad=new Admin();
    		ad.setName(rs.getString(1));
    		ad.setPassword(rs.getString(2));
    		li.add(ad);
    	}
    	return li;
    }
}
import java.sql.*;
import java.util.*;
import xinxilei.Booktype;

public class BookTypeDao extends BaseDao{
	 public int saveinsert(Booktype bt) throws Exception{
	    String sql="insert into booktype values('"+bt.getTypename()+"',"+bt.getId()+")";
	    Connection conn=this.initConnection();
	    int count=this.executeupdate(conn, sql);
	    return count;
	 }
	 
	 public int saveupdate(Booktype bt,int id) throws Exception{
		 String sql="update booktype set typename='"+bt.getTypename()+"',id="+bt.getId()+" where id="+id+"";
		 Connection conn=this.initConnection();
		 int count=this.executeupdate(conn, sql);
		 return count;
	 }
	 
	 public int savedelete(Booktype bt) throws Exception{
		 String sql="delete from booktype where id="+bt.getId()+"";
		 Connection conn=this.initConnection();
		 int count=this.executeupdate(conn, sql);
		 return count;
	 }
	 
	 public List<Booktype> select() throws Exception{
		 List<Booktype> li=new ArrayList<Booktype>();
		 String sql="select * from booktype";
		 Connection conn=this.initConnection();
		 ResultSet rs=this.executeQuery(conn, sql);
		 while(rs.next()){
			 Booktype bt=new Booktype();
			 bt.setTypename(rs.getString(1));
			 bt.setId(rs.getInt(2));
			 li.add(bt);
		 }
		 return li;
	 }
}
import java.sql.*;
import java.util.*;
import xinxilei.Borrowbook;

public class BorrowbookDao extends BaseDao{
	public List<Borrowbook> select() throws Exception{
		Connection conn=this.initConnection();
		String sql="select * from borrowbook";
		List<Borrowbook> li=new ArrayList<Borrowbook>();
		ResultSet rs=this.executeQuery(conn, sql);
		while(rs.next()){
			Borrowbook bk=new Borrowbook();
			bk.setBorrower(rs.getString(1));
			bk.setBookname(rs.getString(2));
			bk.setBorrowdate(rs.getString(3));
			bk.setReturntime(rs.getString(4));
			li.add(bk);
		}
		return li;
	}
	
	public int saveinsert(Borrowbook bk) throws Exception{
		int count=0;
		String sql="insert into borrowbook values('"+bk.getBorrower()+"','"+bk.getBookname()+"','"+bk.getBorrowdate()+"','"+bk.getReturntime()+"')";
		Connection conn=this.initConnection();
		count=this.executeupdate(conn, sql);
		return count;
	}
	
	public int savedelete(String name) throws Exception{
		int count=0;
		Connection conn=this.initConnection();
		String sql="delete from borrowbook where bookname='"+name+"'";
		count=this.executeupdate(conn, sql);
		return count;
	}
}
import java.sql.*;
import java.util.*;
import xinxilei.Reader;

public class ReaderDao extends BaseDao{
	 
	public int saveinsert(Reader r) throws Exception{
	    String sql="insert into reader values("+r.getId()+",'"+r.getName()+"','"+r.getSex()+"',"+r.getAge()+",'"+r.getIdentitycard()+"','"+r.getNowdate()+"',"+r.getMaxnum()+",'"+r.getTel()+"',"+r.getKeepmoney()+","+r.getZj()+",'"+r.getZy()+"','"+r.getBztime()+"','"+r.getPassword()+"')";
	   	Connection conn=this.initConnection();
	   	int count=this.executeupdate(conn, sql);
	   	return count;
     }
	 
	 
	 public List<Reader> select() throws Exception{
		 String sql="select * from reader";
		 List<Reader> li=new ArrayList<Reader>();
		 Connection conn=this.initConnection();
		 ResultSet rs=this.executeQuery(conn, sql);
		 while(rs.next()){
			 Reader r=new Reader();
			 r.setId(rs.getInt(1));
			 r.setName(rs.getString(2));
			 r.setSex(rs.getString(3));
			 r.setAge(rs.getInt(4));
			 r.setIdentitycard(rs.getString(5));
			 r.setNowdate(rs.getString(6));
			 r.setMaxnum(rs.getInt(7));
			 r.setTel(rs.getString(8));
			 r.setKeepmoney(rs.getInt(9));
			 r.setZj(rs.getInt(10));
			 r.setZy(rs.getString(11));
			 r.setBztime(rs.getString(12));
			 r.setPassword(rs.getString(13));
			 li.add(r);
		 }
		 return li;
	 }
}
import java.sql.*;
import java.util.*;
import xinxilei.Zjtype;

public class ZjtypeDao extends BaseDao{
    public List<Zjtype> select() throws Exception{
    	List<Zjtype> li=new ArrayList<Zjtype>();
    	String sql="select * from zjtype";
    	Connection conn=this.initConnection();
    	ResultSet rs=this.executeQuery(conn, sql);
    	while(rs.next()){
    		Zjtype z=new Zjtype();
    		z.setZjid(rs.getInt(1));
    		z.setTypename(rs.getString(2));
    		z.setPower(rs.getString(3));
    		li.add(z);
    	}
    	return li;
    }
}

(5)建立Management類ide

import java.sql.*;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.Date;
import jdbc.*;

public class Management {
     Scanner input=new Scanner(System.in);
     
     //主界面
     public void menu(){
    	 System.out.println("******************圖書信息管理系統**********************");
    	 System.out.println();
    	 System.out.print("\t\t1 管理員界面");
    	 System.out.println("\t\t2 讀者界面");
    	 System.out.println("\t\t3 讀者註冊");
    	 System.out.println();
    	 System.out.println("****************************************************");
    	 System.out.print("請選擇界面:");
    	 int choose=input.nextInt();
    	 switch(choose){
    	 case 1:loginad();break;
    	 case 2:loginwr();break;
    	 case 3:enroll();menu();break;
    	 default:menu();break;
    	 }
     }
     /**
      * 管理員登錄界面
      * 增刪改查
      * @throws Exception 
      */
     public void loginad(){
    	 System.out.println("-->>管理員界面-->>管理員登錄");
    	 AdminDao ad=new AdminDao();
    	 List<Admin> li=new ArrayList<Admin>();
    	 try {
			li=ad.select();
			System.out.println("--------------------------------------------"); 
	    	 System.out.print("請輸入管理員名稱:");
	 		 String name=input.next();
	 		 System.out.print("請輸入管理員密碼:");
	 		 String pass=input.next();
	 		 for(Admin a:li){
	 			 if(a.getName().equals(name)&&a.getPassword().equals(pass)){
	 				 menuad(name);
	 			 }
	 		 }
	 		 System.out.println("用戶名或密碼不正確,請確認後從新登陸!");
	 		 loginad();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
     }
     
     public void menuad(String admin){
    	 System.out.println("-->>管理員界面-->>管理員登錄>>-->>管理員菜單");
    	 System.out.print("\t\t1 管理員信息管理");
    	 System.out.println("\t\t2 圖書信息管理");
    	 System.out.print("\t\t3 用戶信息管理");
    	 System.out.println("\t\t4 讀者信息管理");
    	 System.out.print("\t\t5 圖書類別管理");
    	 System.out.println("\t\t6 返回主界面");
    	 System.out.println("------------------------------------------------");
    	 System.out.print("請選擇菜單:");
    	 int choose=input.nextInt();
    	 switch(choose){
    	 case 1:
    		 this.adminmenu(admin);
    		 break;
    	 case 2:
    		 this.bookmenu(admin);
    		 break;
    	 case 3:
    		 this.usermenu(admin);
    		 break;
    	 case 4:
    		 this.readermenu(admin);
    		 break;
    	 case 5:
    		 this.booktypemenu(admin);
    		 break;
    	 default:
    		 this.menu();break;
    	 }
     }
     //管理員信息管理
     public void adminmenu(String admin){
    	 System.out.println("-->>管理員界面-->>管理員登錄>>-->>管理員菜單-->>管理員信息管理");
    	 System.out.print("\t\t1 查看全部管理員名單");
    	 System.out.println("\t\t2 修改管理員信息");
    	 System.out.print("\t\t3 增長管理員信息");
    	 System.out.println("\t\t4 刪除管理員信息");
    	 System.out.println("\t\t5 返回管理員界面");
    	 System.out.println("------------------------------------------------");
    	 System.out.print("請選擇菜單:");
    	 int choose=input.nextInt();
    	 switch(choose){
    	 case 1:
    		 this.viewadmin();
    		 this.adminmenu(admin);
    		 break;
    	 case 2:
    		 this.updateadmin();
    		 this.adminmenu(admin);
    		 break;
    	 case 3:
    		 this.addadmin();
    		 this.adminmenu(admin);
    		 break;
    	 case 4:
    		 this.deleteadmin();
    		 this.adminmenu(admin);
    		 break;
    	 default:
    		 this.menuad(admin);
    		 break;
    	 }
     }
     //查看全部管理員
     public List<Admin> viewadmin(){
    	 System.out.println("全部管理員名單以下:");
    	 AdminDao add=new AdminDao();
 		 List<Admin> li=new ArrayList<Admin>();
 		 try {
			li=add.select();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
 		 for(Admin ad1:li){
 			 System.out.println(ad1.getName());
 		 }
 		 return li;
     }
     //修改管理員信息
     public void updateadmin(){
    	 AdminDao ad=new AdminDao();
    	 Admin a=new Admin();
    	 System.out.print("請輸入須要修改的管理員名稱:");
    	 String adminname=input.next();
    	 System.out.print("請輸入修改後的管理員名稱:");
    	 String name=input.next();
    	 System.out.print("請輸入修改後的管理員密碼:");
    	 String pass=input.next();
    	 a.setName(name);
    	 a.setPassword(pass);
    	 int count=0;
    	 try {
			count=ad.saveupdate(a, adminname);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
    	 if(count>0){
    		 System.out.println("修改管理員信息成功!");
    	 }else{
    		 System.out.println("修改管理員信息失敗!");
    	 }
     }
     //添加管理員信息
     public void addadmin(){
    	 AdminDao ad=new AdminDao();
    	 Admin a=new Admin();
    	 System.out.print("請輸入添加管理員的名稱:");
    	 String name=input.next();
    	 System.out.print("請輸入添加管理員的密碼:");
    	 String pass=input.next();
    	 a.setName(name);
    	 a.setPassword(pass);
    	 int count=0;
    	 try {
			count=ad.saveinsert(a);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
    	 if(count>0){
    		 System.out.println("添加管理員信息成功!");
    	 }else{
    		 System.out.println("添加管理員信息失敗!");
    	 }
     }
     //刪除管理員
     public void deleteadmin(){
    	 AdminDao ad=new AdminDao();
    	 Admin a=new Admin();
    	 System.out.print("請輸入添加管理員的名稱:");
    	 String name=input.next();
    	 a.setName(name);
    	 int count=0;
    	 try {
			count=ad.savedelete(a);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
    	 if(count>0){
    		 System.out.println("刪除管理員信息成功!");
    	 }else{
    		 System.out.println("刪除管理員信息失敗!");
    	 } 
     }
     //圖書信息管理
     public void bookmenu(String admin){
    	 System.out.println("-->>管理員界面-->>管理員登錄>>-->>管理員菜單-->>圖書信息管理");
    	 System.out.print("\t\t1 查看全部圖書信息");
    	 System.out.println("\t\t2 修改圖書信息");
    	 System.out.print("\t\t3 增長圖書信息");
    	 System.out.println("\t\t4 刪除圖書信息");
    	 System.out.println("\t\t5 返回管理員界面");
    	 System.out.println("------------------------------------------------");
    	 System.out.print("請選擇菜單:");
    	 int choose=input.nextInt();
    	 switch(choose){
    	 case 1:
    		 this.viewall();
    		 this.bookmenu(admin);
    		 break;
    	 case 2:
    		 this.updatebook(admin);
    		 this.bookmenu(admin);
    		 break;
    	 case 3:
    		 this.addbook();
    		 this.bookmenu(admin);
    		 break;
    	 case 4:
    		 this.deletebook();
    		 this.bookmenu(admin);
    		 break;
    	 default:
    		 this.menuad(admin);
    		 break;
    	 }
     }
     //查看全部圖書
     public void  viewall(){
    	 BookDao bd=new BookDao();
    	 List<Book> li=new ArrayList<Book>();
    	 try {
			li=bd.select();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		for(Book b:li){
			System.out.print(b.getIsbn()+"\t");
			System.out.print(b.getTypeid()+"\t");
			System.out.print(b.getBookname()+"\t\t");
			System.out.print(b.getWriter()+"\t\t");
			System.out.print(b.getTranslater()+"\t\t");
			System.out.print(b.getPublisher()+"\t");
			System.out.print(b.getPublishdate()+"\t");
			System.out.print(b.getPrice()+"\t");
			System.out.print(b.getState()+"\n");
		}
     }
     //修改圖書信息
     public void updatebook(String admin){
    	 System.out.println("->>管理員界面->>管理員登錄>>->>管理員菜單->>圖書信息管理->>修改圖書信息");
    	 System.out.println("\t\t1 修改圖書全部信息          2 修改圖書名");
    	 System.out.println("\t\t3 修改圖書價格                  4 修改圖書類型");
    	 System.out.println("\t\t5 修改圖書標準書號          6 返回管理員界面");
    	 System.out.println("------------------------------------------------");
    	 System.out.print("請選擇菜單:");
    	 int choose=input.nextInt();
    	 switch(choose){
    	 case 1:
    		 this.updatebookall(admin);
    		 this.bookmenu(admin);
    		 break;
    	 case 2:
    		 this.updatebookname(admin);
    		 this.bookmenu(admin);
    		 break;
    	 case 3:
    		 this.updatebookprice(admin);
    		 this.bookmenu(admin);
    		 break;
    	 case 4:
    		 this.updatebooktypeid(admin);
    		 this.bookmenu(admin);
    		 break;
    	 case 5:
    		 this.updatebookisbn(admin);
    		 this.bookmenu(admin);
    		 break;
    	 default:
    		 this.bookmenu(admin);
    		 break;
    	 } 
     }
     //修改圖書全部信息
     public void updatebookall(String admin){
    	 boolean flag=true;
    	 BookDao bd=new BookDao();
    	 System.out.print("請輸入須要修改圖書的圖書名稱:");
    	 String name=input.next();
    	 List<Book> li=new ArrayList<Book>();
    	 try {
			li=bd.select();
		} catch (Exception e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}
		 for(Book b:li){
			 if(b.getBookname().equals(name)){
				 flag=false;
				 Book b1=new Book();
		    	 System.out.print("請輸入修改後的國際標準書號:");
		    	 String isbn1=input.next();
		    	 b1.setIsbn(isbn1);
		    	 BookTypeDao btd=new BookTypeDao();
		    	 List<Booktype> li1=new ArrayList<Booktype>();
		    	 try {
					li1=btd.select();
					System.out.println("圖書類型\t圖書類型編號");
			    	 for(Booktype bt1:li1){
			    		 System.out.print(bt1.getTypename()+"\t");
			    		 System.out.println(bt1.getId());
			    	 }
				} catch (Exception e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
				}
		    	 System.out.print("請輸入修改後的圖書類型編號:");
		    	 int id=input.nextInt();
		    	 b1.setTypeid(id);
		    	 System.out.print("請輸入修改後的書名:");
		    	 String name1=input.next();
		    	 b1.setBookname(name1);
		    	 System.out.print("請輸入修改後的做者:");
		    	 String author=input.next();
		    	 b1.setWriter(author);
		    	 System.out.print("請輸入修改後的譯者:");
		    	 String translater=input.next();
		    	 b1.setTranslater(translater);
		    	 System.out.print("請輸入修改後的出版社:");
		    	 String publisher=input.next();
		    	 b1.setPublisher(publisher);
		    	 System.out.print("請輸入修改後的出版日期:");
		    	 String publishdate=input.next();
		    	 b1.setPublishdate(publishdate);
		    	 System.out.print("請輸入修改後的價格:");
		    	 double price=input.nextDouble();
		    	 b1.setPrice(price);
		    	 System.out.print("請輸入修改後的圖書狀態:");
		    	 int state=input.nextInt();
		    	 b1.setState(state);
		    	 int count=0;
		    	 try {
					count=bd.saveupdate(b1, name);
				} catch (Exception e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				if(count>0){
					System.out.println("修改圖書全部信息成功!");
				}else{
					System.out.println("修改圖書全部信息失敗!");
				}
			 }
		 }
		 if(flag){
			 System.out.println("不存在圖書《"+name+"》,請確認名稱後再進行修改!");
			 this.updatebook(admin);
		 }
     }
     //修改圖書名
     public void updatebookname(String admin){
    	 boolean flag=true;
    	 BookDao bd=new BookDao();
    	 System.out.print("請輸入須要修改圖書名的圖書名稱:");
    	 String name=input.next();
         List<Book> li=new ArrayList<Book>();
    	 try {
			li=bd.select();
		} catch (Exception e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}
		 for(Book b:li){
			 if(b.getBookname().equals(name)){
				 flag=false;
				 System.out.print("請輸入修改後的書名:");
		    	 String name1=input.next();
		    	 int count=0;
		    	 try {
					count=bd.updatename(name1, name);
				} catch (Exception e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				if(count>0){
					System.out.println("修改圖書名成功!");
				}else{
					System.out.println("修改圖書名失敗!");
				}
			 }
		 }
		 if(flag){
			 System.out.println("不存在圖書《"+name+"》,請確認名稱後再進行修改!");
			 this.updatebook(admin);
		 }
     }
     //修改圖書價格
     public void updatebookprice(String admin){
    	 boolean flag=true;
    	 BookDao bd=new BookDao();
    	 System.out.print("請輸入須要修改圖書價格的圖書名稱:");
    	 String name=input.next();
    	 List<Book> li=new ArrayList<Book>();
    	 try {
			li=bd.select();
		} catch (Exception e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}
		 for(Book b:li){
			 if(b.getBookname().equals(name)){
				 flag=false;
				 System.out.print("請輸入修改後的價格:");
		    	 double price=input.nextDouble();
		    	 int count=0;
		    	 try {
					count=bd.updateprice(price, name);
				} catch (Exception e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				if(count>0){
					System.out.println("修改圖書價格成功!");
				}else{
					System.out.println("修改圖書價格失敗!");
				}
			 }
		 }
		 if(flag){
			 System.out.println("不存在圖書《"+name+"》,請確認名稱後再進行修改!");
			 this.updatebook(admin);
		 }
     }
     //修改圖書類型編號
     public void updatebooktypeid(String admin){
    	 boolean flag=true;
    	 BookDao bd=new BookDao();
    	 System.out.print("請輸入須要修改圖書類型編號的圖書名稱:");
    	 String name=input.next();
    	 List<Book> li=new ArrayList<Book>();
    	 try {
			li=bd.select();
		} catch (Exception e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}
		 for(Book b:li){
			 if(b.getBookname().equals(name)){
				 flag=false;
				 System.out.print("請輸入修改後的類型編號:");
		    	 int type=input.nextInt() ;
		    	 int count=0;
		    	 try {
					count=bd.updatetypeid(type, name);
				} catch (Exception e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				if(count>0){
					System.out.println("修改圖書類型編號成功!");
				}else{
					System.out.println("修改圖書類型編號失敗!");
				}
			 }
		 }
		 if(flag){
			 System.out.println("不存在圖書《"+name+"》,請確認名稱後再進行修改!");
			 this.updatebook(admin);
		 }
     }
     //修改圖書標準書號
     public void updatebookisbn(String admin){
    	 boolean flag=true;
    	 BookDao bd=new BookDao();
    	 System.out.print("請輸入須要修改圖書標準書號的圖書名稱:");
    	 String name=input.next();
    	 List<Book> li=new ArrayList<Book>();
    	 try {
			li=bd.select();
		} catch (Exception e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}
		 for(Book b:li){
			 if(b.getBookname().equals(name)){
				 flag=false;
				 System.out.print("請輸入修改後的標準書號:");
		    	 String isbn=input.next();
		    	 int count=0;
		    	 try {
					count=bd.updateisbn(isbn, name);
				} catch (Exception e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				if(count>0){
					System.out.println("修改圖書標準書號成功!");
				}else{
					System.out.println("修改圖書標準書號失敗!");
				}
			 }
		}
		 if(flag){
			 System.out.println("不存在圖書《"+name+"》,請確認名稱後再進行修改!");
			 this.updatebook(admin);
		 } 
     }
     //增長圖書信息
     public void addbook(){
    	 BookDao bd=new BookDao();
    	 Book b=new Book();
    	 System.out.print("請輸入須要添加圖書的國際標準書號:");
    	 b.setIsbn(input.next());
    	 BookTypeDao btd=new BookTypeDao();
    	 List<Booktype> li1=new ArrayList<Booktype>();
    	 try {
			li1=btd.select();
			System.out.println("圖書類型\t圖書類型編號");
	    	 for(Booktype bt1:li1){
	    		 System.out.print(bt1.getTypename()+"\t");
	    		 System.out.println(bt1.getId());
	    	 }
		} catch (Exception e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}
    	 System.out.print("請輸入添加圖書的圖書類型編號:");
    	 int id=input.nextInt();
    	 b.setTypeid(id);
    	 System.out.print("請輸入須要添加圖書的書名:");
    	 b.setBookname(input.next());
    	 System.out.print("請輸入須要添加圖書的做者:");
    	 b.setWriter(input.next());
    	 System.out.print("請輸入須要添加圖書的譯者:");
    	 b.setTranslater(input.next());
    	 System.out.print("請輸入須要添加圖書的出版社:");
    	 b.setPublisher(input.next());
    	 System.out.print("請輸入須要添加圖書的出版日期:");
    	 b.setPublishdate(input.next());
    	 System.out.print("請輸入須要添加圖書的價格:");
    	 b.setPrice(input.nextDouble());
    	 System.out.print("請輸入須要添加圖書的狀態:");
    	 b.setState(input.nextInt());
    	 int count=0;
    	 try {
			count=bd.saveinsert(b);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		if(count>0){
			System.out.println("添加成功!");
		}else{
			System.out.println("添加失敗!");
		}
     }
     //刪除圖書信息
     public void deletebook(){
    	 BookDao bd=new BookDao();
    	 System.out.print("請輸入須要刪除圖書的國際標準書號:");
    	 String isbn=input.next();
    	 Book b=new Book();
    	 b.setIsbn(isbn);
    	 int count=0;
    	 try {
			count=bd.savedelete(b);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		if(count>0){
			System.out.println("刪除成功!");
		}else{
			System.out.println("刪除失敗!");
		}
     }
     //用戶信息管理
     public void usermenu(String admin){
    	 System.out.println("-->>管理員界面-->>管理員登錄>>-->>管理員菜單-->>用戶信息管理");
    	 System.out.print("\t\t1 用戶信息增長");
    	 System.out.println("\t\t2 用戶信息修改");
    	 System.out.print("\t\t3 用戶信息刪除");
    	 System.out.println("\t\t4 返回管理員界面");
    	 System.out.println("------------------------------------------------");
    	 System.out.print("請選擇菜單:");
    	 int choose=input.nextInt();
    	 switch(choose){
    	 case 1:
    		 this.adduser(admin);
    		 this.usermenu(admin);
    		 break;
    	 case 2:
    		 this.updateuser(admin);
    		 this.usermenu(admin);
    		 break;
    	 case 3:
    		 this.deleteuser(admin);
    		 this.usermenu(admin);
    		 break;
    	 default:
    		 this.menuad(admin);
    		 this.menuad(admin);
    		 break;
    	 }
     }
   //添加用戶信息
     public void adduser(String admin){
    	 boolean flag=true;
    	 int count=0;
    	 Users u=new Users();
    	 UsersDao ud=new UsersDao();
    	 List<Users> li=new ArrayList<Users>();
    	 int max=0;
    	 System.out.print("請輸入添加用戶的姓名:");
    	 String name=input.next();u.setName(name);
    	 try {
			li=ud.select();
			for(Users u1:li){
				if(u1.getName().equals(name)){
					System.out.println("該用戶已存在,無需重複添加!");
					flag=false;
				} 
	    	 }
		} catch (Exception e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}
		 List<Users> li1=new ArrayList<Users>();
    	 try {
			li1=ud.select();
			for(Users u1:li1){
				if(max<u1.getId()){
					 max=u1.getId();
				 }
				}
			max=max+1;
			 u.setId(max);
		 } catch (Exception e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		 }
		 if(flag){
	    	 System.out.print("請輸入添加用戶的性別:");
	    	 String sex=input.next();u.setSex(sex);
	    	 System.out.print("請輸入添加用戶的年齡:");
	    	 int age=input.nextInt();u.setAge(age);
	    	 UserNum.setLength(10);
	    	 String str=UserNum.createnumber();
	    	 u.setIdentitycard(str);
	    	 System.out.println("系統爲您產生的證件號碼爲:"+str);
	    	 Date date=new Date();
	    	 DateFormat format=new SimpleDateFormat("yyyy.MM.dd");
	    	 String time=format.format(date);
	    	 u.setWorkdate(time);
	    	 System.out.print("請輸入添加用戶的電話號碼:");
	    	 String tel=input.next();u.setTel(tel);
	    	 System.out.print("請輸入添加用戶的押金:");
	    	 int yajin=input.nextInt();u.setYajin(yajin);
	    	 System.out.print("請輸入添加用戶的密碼:");
	    	 String password=input.next();u.setPassword(password);
	    	 u.setAdmin(admin);
	    	 try {
				count=ud.saveinsert(u);
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
	    	if(count>0){
	    		System.out.println("添加用戶成功!");flag=false;
	    	} else{
	    		System.out.println("添加用戶失敗!");
	    	}
		}
     }
     //修改用戶信息
     public void updateuser(String admin){
    	 System.out.println("->>管理員界面->>管理員登錄>>->>管理員菜單->>圖書信息管理->>修改用戶信息");
    	 System.out.println("\t\t1 修改用戶全部信息             2 修改用戶名");
    	 System.out.println("\t\t3 修改用戶密碼                    4 修改用戶年齡");
    	 System.out.println("\t\t5 修改用戶的管理員             6 返回管理員界面");
    	 System.out.println("------------------------------------------------");
    	 System.out.print("請選擇菜單:");
    	 int choose=input.nextInt();
    	 switch(choose){
    	 case 1:
    		 this.updateuserall(admin);
    		 this.usermenu(admin);
    		 break;
    	 case 2:
    		 this.updateusername(admin);
    		 this.usermenu(admin);
    		 break;
    	 case 3:
    		 this.updateuserpass(admin);
    		 this.usermenu(admin);
    		 break;
    	 case 4:
    		 this.updateuserage(admin);
    		 this.usermenu(admin);
    		 break;
    	 case 5:
    		 this.updateuseradmin(admin);
    		 this.usermenu(admin);
    		 break;
    	 default:
    		 this.usermenu(admin);
    		 break;
    	 } 
     }
     //修改用戶全部信息
     public void updateuserall(String admin){
    	 boolean flag=true;
    	 Users u=new Users();
    	 UsersDao ud=new UsersDao();
    	 int count=0;
    	 System.out.print("請輸入須要修改信息的用戶姓名:");
    	 String name=input.next();
    	 List<Users> li=new ArrayList<Users>();
    	 try {
			li=ud.select();
		} catch (Exception e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}
		 for(Users u1:li){
			 if(u1.getName().equals(name)){
				 flag=false;
				 System.out.print("請輸入修改後的編號:");
		    	 int id=input.nextInt();u.setId(id);
		    	 System.out.print("請輸入修改後的姓名:");
		    	 String name1=input.next();u.setName(name1);
		    	 System.out.print("請輸入修改後的性別:");
		    	 String sex=input.next();u.setSex(sex);
		    	 System.out.print("請輸入修改後的年齡:");
		    	 int age=input.nextInt();u.setAge(age);
		    	 System.out.print("請輸入修改後的證件號碼:");
		    	 String identitycard=input.next();u.setIdentitycard(identitycard);
		    	 System.out.print("請輸入修改後的×××日期:");
		    	 String workdate=input.next();u.setWorkdate(workdate);
		    	 System.out.print("請輸入修改後的電話號碼:");
		    	 String tel=input.next();u.setTel(tel);
		    	 System.out.print("請輸入修改後的押金:");
		    	 int yajin=input.nextInt();u.setYajin(yajin);
		    	 System.out.print("請輸入修改後的密碼:");
		    	 String password=input.next();u.setPassword(password);
		    	 System.out.print("請輸入修改後的管理員:");
		    	 String admin1=input.next();u.setAdmin(admin1);
		    	 try {
					count=ud.saveupdate(u, name);
				} catch (Exception e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				if(count>0){
					System.out.println("修改用戶全部信息成功!");
				}else{
					System.out.println("修改用戶全部信息失敗!");
				} 
			 }
		 }
		 if(flag){
			 System.out.println("不存在用戶"+name+",請確認後進行修改!");
	    	 this.updateuser(admin);
		 }
     }
     //修改用戶名
     public void updateusername(String admin){
    	 boolean flag=true;
    	 UsersDao ud=new UsersDao();
    	 int count=0;
    	 System.out.print("請輸入須要修改用戶名的用戶姓名:");
    	 String name=input.next();
    	 List<Users> li=new ArrayList<Users>();
    	 try {
			li=ud.select();
		} catch (Exception e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}
		 for(Users u1:li){
			 if(u1.getName().equals(name)){
				 flag=false;
				 System.out.print("請輸入修改後的姓名:");
		    	 String name1=input.next();
		    	 try {
					count=ud.updatename(name1, name);
				} catch (Exception e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				if(count>0){
					System.out.println("修改用戶名成功!");
				}else{
					System.out.println("修改用戶名失敗!");
				}
			 }
		 }
		 if(flag){
			 System.out.println("不存在用戶"+name+",請確認後進行修改!");
	    	 this.updateuser(admin);
		 }
     }
     //修改用戶密碼
     public void updateuserpass(String admin){
    	 boolean flag=true;
    	 UsersDao ud=new UsersDao();
    	 int count=0;
    	 System.out.print("請輸入須要修改用戶密碼的用戶姓名:");
    	 String name=input.next();
    	 List<Users> li=new ArrayList<Users>();
    	 try {
			li=ud.select();
		} catch (Exception e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}
		 for(Users u1:li){
			 if(u1.getName().equals(name)){
				 flag=false;
				 System.out.print("請輸入修改後的密碼:");
		    	 String pass=input.next();
		    	 try {
					count=ud.updatepassword(pass, name);
				} catch (Exception e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				if(count>0){
					System.out.println("修改用戶密碼成功!");
				}else{
					System.out.println("修改用戶密碼失敗!");
				}
			 }
		 }
		 if(flag){
			 System.out.println("不存在用戶"+name+",請確認後進行修改!");
	    	 this.updateuser(admin);
		 }
     }
     //修改用戶年齡
     public void updateuserage(String admin){
    	 boolean flag=true;
    	 UsersDao ud=new UsersDao();
    	 int count=0;
    	 System.out.print("請輸入須要修改用戶密碼的用戶姓名:");
    	 String name=input.next();
    	 List<Users> li=new ArrayList<Users>();
    	 try {
			li=ud.select();
		} catch (Exception e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}
		 for(Users u1:li){
			 if(u1.getName().equals(name)){
				 flag=false;
				 System.out.print("請輸入修改後的年齡:");
		    	 int age=input.nextInt();
		    	 try {
					count=ud.updateage(age, name);
				} catch (Exception e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				if(count>0){
					System.out.println("修改用戶年齡成功!");
				}else{
					System.out.println("修改用戶年齡失敗!");
				}
			 }
		 }
		 if(flag){
			 System.out.println("不存在用戶"+name+",請確認後進行修改!");
	    	 this.updateuser(admin);
		 }
     }
     //修改用戶管理員
     public void updateuseradmin(String admin){
    	 boolean flag=true;
    	 UsersDao ud=new UsersDao();
    	 int count=0;
    	 System.out.print("請輸入須要修改用戶密碼的用戶姓名:");
    	 String name=input.next();
    	 List<Users> li=new ArrayList<Users>();
    	 try {
			li=ud.select();
		} catch (Exception e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}
		 for(Users u1:li){
			 if(u1.getName().equals(name)){
				 flag=false;
				 System.out.print("請輸入修改後的管理員:");
		    	 String admin1=input.next();;
		    	 try {
					count=ud.updateadmin(admin1, name);
				} catch (Exception e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				if(count>0){
					System.out.println("修改用戶管理員成功!");
				}else{
					System.out.println("修改用戶管理員失敗!");
				}
			 }
		 }
		 if(flag){
			 System.out.println("不存在用戶"+name+",請確認後進行修改!");
	    	 this.updateuser(admin);
		 }
     }
     //刪除用戶信息
     public void deleteuser(String admin){
    	 Users u=new Users();
    	 System.out.print("請輸入須要刪除的用戶姓名:");
    	 u.setName(input.next());
    	 UsersDao ud=new UsersDao();
    	 int count=0;
    	 try {
			count=ud.savedelete(u);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		if(count>0){
			System.out.println("刪除用戶成功!");
		}else{
			System.out.println("刪除用戶失敗!");
		}
    	 
     }
     //讀者信息管理
     public void readermenu(String admin){
    	 System.out.println("-->>管理員界面-->>管理員登錄>>-->>管理員菜單-->>讀者信息管理");
    	 System.out.print("\t\t1 讀者信息查看");
    	 System.out.println("\t\t2 讀者信息添加");
    	 System.out.println("\t\t3 返回管理員界面");
    	 System.out.println("------------------------------------------------");
    	 System.out.print("請選擇菜單:");
    	 int choose=input.nextInt();
    	 switch(choose){
    	 case 1:
    		 this.viewallreader();
    		 this.readermenu(admin);
    		 break;
    	 case 2:
    		 this.addreader();
    		 this.readermenu(admin);
    		 break;
    	 default:
    		 this.menuad(admin);
    		 break;
    	 }
     }
     //查看全部讀者信息
     public void viewallreader(){
    	 ReaderDao wd=new ReaderDao();
    	 List<Reader> li=new ArrayList<Reader>();
    	 try {
			li=wd.select();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		for(Reader r:li){
			System.out.print(r.getId()+"\t");
			System.out.print(r.getName()+"\t");
			System.out.print(r.getSex()+"\t");
			System.out.print(r.getAge()+"\t");
			System.out.print(r.getIdentitycard()+"\t");
			System.out.print(r.getNowdate()+"\t");
			System.out.print(r.getMaxnum()+"\t");
			System.out.print(r.getTel()+"\t");
			System.out.print(r.getKeepmoney()+"\t");
			System.out.print(r.getZj()+"\t");
			System.out.print(r.getZy()+"\t");
			System.out.print(r.getBztime()+"\n");
		}
     }
     //添加讀者信息
     public void addreader(){
    	 boolean flag=true;
    	 UsersDao ud=new UsersDao();
    	 ReaderDao rd=new ReaderDao();
    	 int count=0;
    	 Reader r1=new Reader();
    	 System.out.print("請輸入須要添加的讀者名:");
    	 String name=input.next();
    	 int max=0;
    	 List<Reader> li=new ArrayList<Reader>();
    	 try {
 		     li=rd.select();
 		     for(Reader r:li){
 		    	if(r.getName().equals(name)){
 	    			 System.out.println("該讀者已存在,無需重複添加!");flag=false;
 		    	     }
 		    }
 		 } catch (Exception e) {
 			 // TODO Auto-generated catch block
 			 e.printStackTrace();
 		 }
 		List<Reader> li1=new ArrayList<Reader>();
   	    try {
		     li1=rd.select();
		     for(Reader r:li1){
		    	 if(r.getId()>max){
		    	     max=r.getId();
		    	  }
		    }
		   max=max+1;
		   r1.setId(max);
		 } catch (Exception e) {
			 // TODO Auto-generated catch block
			 e.printStackTrace();
		 }
    	 if(flag){
 			try{
 			ResultSet rs=ud.findbyname(name);
 			while(rs.next()){
 				r1.setName(rs.getString(2));
 				r1.setSex(rs.getString(3));
 				r1.setAge(rs.getInt(4));
 				r1.setIdentitycard(rs.getString(5));
 				r1.setBztime(rs.getString(6));
 				r1.setTel(rs.getString(7));
 				r1.setKeepmoney(rs.getInt(8));
 				r1.setPassword(rs.getString(9));
 			}
 			} catch (Exception e) {
 				// TODO Auto-generated catch block
 				e.printStackTrace();
 			}
 			System.out.print("是否如今存錢?(y/n)");
 			if(input.next().equalsIgnoreCase("y")){
 				System.out.print("所存錢數:");
 				int money=input.nextInt();
 				r1.setKeepmoney(r1.getKeepmoney()+money);
 			}
 			ZjtypeDao zjd=new ZjtypeDao();
 	    	List<Zjtype> li2=new ArrayList<Zjtype>();
 	    	try {
 				li2=zjd.select();
 				System.out.println("證件類型編號\t證件類型\t權利");
 		    	for(Zjtype z:li2){
 		    		System.out.print(z.getZjid()+"\t\t");
 		    		System.out.print(z.getTypename()+"\t");
 		    		System.out.print(z.getPower()+"\n");
 		    	}
 			} catch (Exception e2) {
 				// TODO Auto-generated catch block
 				e2.printStackTrace();
 			}
 		   	System.out.print("請問您想註冊爲哪一種證件類型?(一、普通 /二、vip)");
 			int zj=input.nextInt();
 			r1.setZj(zj);
 			System.out.print("您的職業是:");
 			String zy=input.next();
 			r1.setZy(zy);
 			Date date=new Date();
 	    	DateFormat format=new SimpleDateFormat("yyyy.MM.dd");
 	    	String time=format.format(date);
 			r1.setNowdate(time);
 			System.out.print("請輸入您的最大借書量:");
 			int num=input.nextInt();
 			r1.setMaxnum(num);
 			try {
 				count=rd.saveinsert(r1);
 			} catch (Exception e) {
 				// TODO Auto-generated catch block
 				e.printStackTrace();
 			}
 			if(count>0){
 				System.out.println("添加讀者信息成功!");flag=false;
 			}else{
 				System.out.println("添加讀者信息失敗!");
 			} 
    	}
     }
     //圖書類別管理
     public void booktypemenu(String admin){
    	 System.out.println("-->>管理員界面-->>管理員登錄>>-->>管理員菜單-->>圖書類別管理");
    	 System.out.println("\t\t1 圖書類別添加");
    	 System.out.println("\t\t2 圖書類別修改");
    	 System.out.println("\t\t3 返回管理員界面");
    	 System.out.println("------------------------------------------------");
    	 System.out.print("請選擇菜單:");
    	 int choose=input.nextInt();
    	 switch(choose){
    	 case 1:
    		 this.addbooktype();
    		 this.booktypemenu(admin);
    		 break;
    	 case 2:
    		 this.updatebooktype();
    		 this.booktypemenu(admin);
    		 break;
    	 default:
    		 this.menuad(admin);
    		 break;
    	 }
     }
     
     //添加圖書類型
     public void addbooktype(){
    	 Booktype bt=new Booktype();
    	 BookTypeDao btd=new BookTypeDao();
    	 int count=0;
    	 System.out.print("請輸入添加圖書類型:");
    	 String typename=input.next();
    	 System.out.print("請輸入添加圖書類型的編號:");
    	 int id=input.nextInt();
    	 bt.setTypename(typename);
    	 bt.setId(id);
    	 try {
			count=btd.saveinsert(bt);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
    	 if(count>0){
    		 System.out.println("添加圖書類型成功!");
    	 }else{
    		 System.out.println("添加圖書類型失敗!");
    	 }
     }
     //修改圖書類型
     public void updatebooktype(){
    	 Booktype bt=new Booktype();
    	 BookTypeDao btd=new BookTypeDao();
    	 int count=0;
    	 System.out.print("請輸入須要修改的圖書類型編號:");
    	 int id=input.nextInt();
    	 System.out.print("請輸入修改後的圖書類型:");
    	 String typename=input.next();
    	 System.out.print("請輸入修改後的圖書類型編號:");
    	 int id1=input.nextInt();
    	 bt.setTypename(typename);
    	 bt.setId(id1);
    	 try {
			count=btd.saveupdate(bt, id);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		if(count>0){
   		 System.out.println("修改圖書類型成功!");
   	 }else{
   		 System.out.println("修改圖書類型失敗!");
   	 }
     }
     /**
      * 讀者登陸界面
      * 查看,借閱,歸還,
      */
     //讀者登陸
     public void loginwr(){
    	 System.out.println("-->>讀者界面-->>讀者登錄");
    	 System.out.print("請輸入讀者名:");
    	 String reader=input.next();
    	 System.out.print("請輸入密碼:");
    	 String password=input.next();
    	 ReaderDao rd=new ReaderDao(); 
    	 List<Reader> li=new ArrayList<Reader>();
    	 try {
			li=rd.select();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		for(Reader r:li){
			if(r.getName().equals(reader)&&r.getPassword().equals(password)){
				menuwr(reader);
			}
		}
    	 System.out.println("用戶名或密碼不正確或您未註冊讀者帳號,請確認後從新登陸!");
    	 loginwr();
     }
     //讀者界面
     public void menuwr(String reader){
    	 System.out.println("-->>讀者界面-->>讀者登錄-->>讀者菜單");
    	 System.out.print("\t\t1 查看借閱明細");
    	 System.out.println("\t\t2 借閱圖書");
    	 System.out.print("\t\t3 歸還圖書");
    	 System.out.println("\t\t4 查找圖書");
    	 System.out.println("\t\t5 返回主界面");
    	 System.out.println("-------------------------------------------------");
    	 System.out.print("請選擇菜單:");
    	 int choose=input.nextInt();
    	 switch(choose){
    	 case 1:
    		 this.view(reader);
    		 this.menuwr(reader);
    		 break;
    	 case 2:
    		 this.borrow(reader);
    		 this.menuwr(reader);
    		 break;
    	 case 3:
    		 this.returnbook(reader);
    		 this.menuwr(reader);
    		 break;
    	 case 4:
    		 this.find();
    		 this.menuwr(reader);
    		 break;
    	 default:
    		 this.menu();
    		 break;
    	 }
     }
     //查看借閱明細
     public void view(String reader){
    	 BorrowbookDao bbd=new BorrowbookDao();
    	 List<Borrowbook> li=new ArrayList<Borrowbook>();
    	 try {
			li=bbd.select();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
    	 System.out.println("讀者名"+"\t"+"書名"+"\t"+"借書日期"+"\t\t"+"應還日期"+"\t\t");
		 for(Borrowbook bk:li){
			 if(bk.getBorrower().equals(reader)){
				 System.out.print(bk.getBorrower()+"\t");
				 System.out.print(bk.getBookname()+"\t");
				 System.out.print(bk.getBorrowdate()+"\t");
				 System.out.print(bk.getReturntime()+"\t");
			 } 
		 }
     }
     //借閱圖書
     public void borrow(String reader){
    	 BookDao bd=new BookDao();
    	 Book b=new Book();
    	 Borrowbook bk=new Borrowbook();
    	 System.out.print("請輸入須要借閱圖書的名稱:");
    	 String name=input.next();
    	 bk.setBookname(name);
    	 List<Book> li=new ArrayList<Book>();
    	 try {
			li=bd.select();
		} catch (Exception e2) {
			// TODO Auto-generated catch block
			e2.printStackTrace();
		}
    	 for(Book b1:li){
    		 if(b1.getBookname().equals(name)&&b.getState()==0){
    			 bk.setBorrower(reader);
//    			 Date date=new Date();
//    	    	 DateFormat format=new SimpleDateFormat("yyyy.MM.dd");
//    	    	 String time=format.format(date);
    			 Calendar cal=Calendar.getInstance();
    	 		 int day=cal.get(Calendar.DATE);
    	 		 int month=cal.get(Calendar.MONTH)+1;
    	 		 int year=cal.get(Calendar.YEAR);
    	    	 String time=year+"."+month+"."+day;
    	    	 bk.setBorrowdate(time);
    	    	 String rtime=year+"."+(month+1)+"."+day;
		    	 bk.setReturntime(rtime);
		    	 BorrowbookDao bbd=new BorrowbookDao();
		    	 int count1=0;
		    	 try {
					count1=bbd.saveinsert(bk);
				} catch (Exception e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
				}
		    	 b.setBookname(name);
		    	 b.setState(1);
		    	 int count=0;
		    	 try {
					count=bd.savemodify(b, name);
				} catch (Exception e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				if(count>0&&count1>0){
					System.out.println("借閱《"+b.getBookname()+"》成功!");
				}else{
					System.out.println("借閱《"+b.getBookname()+"》失敗!");
				}   	  
    			}
		}
     }
     //歸還圖書
     public void returnbook(String reader){
    	 BookDao bd=new BookDao();
    	 Book b=new Book();
    	 BorrowbookDao bbd=new BorrowbookDao();
    	 int count1=0;
    	 int count=0;
    	 System.out.print("請輸入須要歸還圖書的名稱:");
    	 String name=input.next();
    	 b.setBookname(name);
    	 b.setState(0);
    	 try {
			count1=bbd.savedelete(name);
		} catch (Exception e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}
    	 try {
			count=bd.savemodify(b, name);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		if(count>0&&count1>0){
			System.out.println("歸還《"+b.getBookname()+"》成功!");
		}else{
			System.out.println("歸還《"+b.getBookname()+"》失敗,您可能未借該圖書或圖書名稱不正確!");
		}
	}
   //根據書名查找圖書
   	public void find(){
   		System.out.print("請輸入須要查找的圖書名稱:");
   		boolean flag=true;
   		String name=input.next();
   		BookDao bd=new BookDao();
   		List<Book> li=new ArrayList<Book>();
   		try {
			li=bd.select();
		} catch (Exception e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}
		for(Book b:li){
			if(b.getBookname().equals(name)){
				flag=false;
				try {
		   			System.out.println("國際標準書號"+"\t"+"圖書類型id"+"\t\t"+"書名"+"\t\t"+"做者"+"\t\t"+"譯者"+"\t\t"+"出版社"+"\t"+"出版日期"+"\t\t"+"價格"+"\t"+"狀態");
					ResultSet rs=bd.savefind(name);
					while(rs.next()){
						System.out.print(rs.getString(1)+"\t\t");
						System.out.print(rs.getInt(2)+"\t\t");
						System.out.print(rs.getString(3)+"\t\t");
						System.out.print(rs.getString(4)+"\t\t");
						System.out.print(rs.getString(5)+"\t\t");
						System.out.print(rs.getString(6)+"\t");
						System.out.print(rs.getString(7)+"\t");
						System.out.print(rs.getDouble(8)+"\t");
						if(rs.getInt(9)==0){
							System.out.print("未借出"+"\n");
						}else{
							System.out.print("已借出"+"\n");
						}
					}
				} catch (Exception e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		}
		if(flag){
		System.out.println("不存在圖書《"+name+"》!");
		}
   	}
   	//讀者註冊
   	public void enroll(){
   		boolean flag=true;
   		System.out.println("-->>讀者註冊-->>讀者信息註冊");
   		UsersDao ud=new UsersDao();
   		ReaderDao rd=new ReaderDao();
   		int count=0;
   		System.out.print("請輸入須要註冊的讀者名:");
   		String name=input.next();
   		int max=1;
   		Reader r1=new Reader();
   	    List<Reader> li=new ArrayList<Reader>();
   	    try {
		     li=rd.select();
		     for(Reader r:li){
		    	if(r.getName().equals(name)){
	    			 System.out.println("該讀者已存在,無需重複添加!");flag=false;
		    	 }
		    }
		 } catch (Exception e) {
			 // TODO Auto-generated catch block
			 e.printStackTrace();
		 }
		 List<Reader> li1=new ArrayList<Reader>();
		 try {
			li1=rd.select();
			for(Reader rea:li1){
				if(max<rea.getId()){
					max=rea.getId();
				}
			}
			max=max+1;
		} catch (Exception e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}
		 r1.setId(max);
   	     if(flag){
			try{
			ResultSet rs=ud.findbyname(name);
			while(rs.next()){
				r1.setName(rs.getString(2));
				r1.setSex(rs.getString(3));
				r1.setAge(rs.getInt(4));
				r1.setIdentitycard(rs.getString(5));
				r1.setBztime(rs.getString(6));
				r1.setTel(rs.getString(7));
				r1.setKeepmoney(rs.getInt(8));
				r1.setPassword(rs.getString(9));
			}
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			System.out.print("是否如今存錢?(y/n)");
			if(input.next().equalsIgnoreCase("y")){
				System.out.print("所存錢數:");
				int money=input.nextInt();
				r1.setKeepmoney(r1.getKeepmoney()+money);
			}
			ZjtypeDao zjd=new ZjtypeDao();
	    	List<Zjtype> li2=new ArrayList<Zjtype>();
	    	try {
				li2=zjd.select();
				System.out.println("證件類型編號\t證件類型\t權利");
		    	for(Zjtype z:li2){
		    		System.out.print(z.getZjid()+"\t\t");
		    		System.out.print(z.getTypename()+"\t");
		    		System.out.print(z.getPower()+"\n");
		    	}
			} catch (Exception e2) {
				// TODO Auto-generated catch block
				e2.printStackTrace();
			}
		   	System.out.print("請問您想註冊爲哪一種證件類型?(一、普通 /二、vip)");
			int zj=input.nextInt();
			r1.setZj(zj);
			System.out.print("您的職業是:");
			String zy=input.next();
			r1.setZy(zy);
			Date date=new Date();
	    	DateFormat format=new SimpleDateFormat("yyyy.MM.dd");
	    	String time=format.format(date);
			r1.setNowdate(time);
			System.out.print("請輸入您的最大借書量:");
			int num=input.nextInt();
			r1.setMaxnum(num);
			try {
				count=rd.saveinsert(r1);
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			if(count>0){
				System.out.println("註冊成功!");flag=false;
			}else{
				System.out.println("註冊失敗!");
			} 
   		}
   		
   	}
}

(6)建立測試類Test測試

public class Test{
     public static void main(String[] args) throws Exception {
    	 Management m=new Management();
    	 m.menu();
    	
     }
}
相關文章
相關標籤/搜索