Java 实现步骤

Java 实现步骤

1.打开数据库,右击local sql,点击安全性,选择sql身份验证,点击确定,退出。打开表面的安全性,打开登录名,打开sa用户名,添加密码。如果sa有箭头,sa-状态重启。在电脑中搜索服务找到SQL server(MSS)并启用。
//bookborrow
package com.bbm.view;
public class BookBorrow extends JFrame {

//序列化 为了保持版本的兼容性,在版本升级时反序列化,仍保持对象的唯一性

private static final long serialVersionUID=1L;

//定义面板

private JPanel 	readerBbJP,bookBbJP,readerJP,bookBorderJP,bookJP,buttonJP;

//定义标签

private JLabel IDJL,readerNameJL,readerTypeJL,ISBNJL,bookTypeJL,bookNameJL,authorJL,pressJL,publicationDateJL,
editionJL,priceJL,dateJL,playerJL;

//定义文本框

private JTextField IDJTF,readerNameJTF,readerTypeJTF,ISBNJTF,bookTypeJTF,bookNameJTF,authorJTF,pressJTF,publicationDateJTF,
editionJTF,priceJTF,dateJTF,playerJTF;

//定义表格,用于存放查询出来的图书信息

private JTable jtable;

//定义滚动条

private JScrollPane jscrollPane;

//定义按钮

private JButton borrowJB,colseJB;

//定义一维数组,作为表的表头

private String[] array={"ISBN","书名","借书日期"};

//将查询到的借阅信息转换成二维对象数组

private Object[][] getSelect(List<BorrowBook> list){
	Object[][] results=new Object[list.size()][array.length];
	for(int i=0;i<list.size();i++){
		BorrowBook bB=list.get(i);
		results[i][0]=bB.getISBN();
		List<Book> list1=BookDao.selectBookByISBN(bB.getISBN());
		Book book=list1.get(0);
		results[i][1]=book.getBookname();
		results[i][2]=bB.getBorrowdate();
	}
	return results;
}

//构造方法

public BookBorrow(){
	this.setTitle("图书借阅");
	this.setBounds(500, 500, 600, 450);

/读者借阅信息面板设计/

	readerBbJP=new JPanel();
	TitledBorder tb1=new TitledBorder("读者借阅信息");
	readerBbJP.setBorder(tb1);
	readerBbJP.setLayout(new BorderLayout());

//读者借阅信息查询标签和文本框面板

	readerJP=new JPanel();

//创建读者编号标签和文本框,并添加到readerJP中

	IDJL=new JLabel("读者编号:");
	readerJP.add(IDJL);
	IDJTF=new JTextField();
	IDJTF.addKeyListener(new SelectListener());
	IDJTF.setColumns(10);
	readerJP.add(IDJTF);

//创建姓名标签和文本框,并添加到readerJP中

	readerNameJL=new JLabel("姓名:");
	readerJP.add(readerNameJL);
	readerNameJTF=new JTextField();
	readerNameJTF.setColumns(10);
	readerJP.add(readerNameJTF);

//创建类型标签和文本框,并添加到readerJP中

	readerTypeJL=new JLabel("类型:");
	readerJP.add(readerTypeJL);
	readerTypeJTF=new JTextField();
	readerTypeJTF.setColumns(10);
	readerJP.add(readerTypeJTF);
	readerBbJP.add(readerJP,BorderLayout.NORTH);

//查询结果面板设计

	bookBorderJP=new JPanel();
	jscrollPane=new JScrollPane();
	jscrollPane.setPreferredSize(new Dimension(400,100));
	/*String[] array={"ISBN","书名","借书日期"};
	String[][] results={
			{"123456789","Java","2019-01-01"}
	};*/
	Object[][] results=getSelect(BookBorrowDao.selectBorrowBookByReaderId(IDJTF.getText()));
	jtable=new JTable(results,array);
	jtable.addMouseListener(new TableListener());
	jscrollPane.setViewportView(jtable);
	bookBorderJP.add(jscrollPane);
	readerBbJP.add(bookBorderJP,BorderLayout.CENTER);

/图书借阅面板设计/

	bookBbJP=new JPanel();
	TitledBorder tb2=new TitledBorder("图书借阅");
	bookBbJP.setBorder(tb2);
	bookJP=new JPanel();
	bookJP.setBorder(new EmptyBorder(10,40,10,40));
	GridLayout gridLayout=new GridLayout(5,4);
	gridLayout.setHgap(10);
	gridLayout.setVgap(10);
	bookJP.setLayout(gridLayout);

//创建ISBN标签,并添加到bookJP

	ISBNJL=new JLabel("ISNB:");
	ISBNJL.setHorizontalAlignment(SwingConstants.CENTER);
	bookJP.add(ISBNJL);
	ISBNJTF=new JTextField();
	ISBNJTF.addKeyListener(new SelectByISBNListener());
	ISBNJTF.setColumns(10);
	bookJP.add(ISBNJTF);

//创建类别标签,并添加到bookJP

	bookTypeJL=new JLabel("类别:");
	bookTypeJL.setHorizontalAlignment(SwingConstants.CENTER);
	bookJP.add(bookTypeJL);
	bookTypeJTF=new JTextField();
	bookJP.add(bookTypeJTF);

//创建书名标签,并添加到bookJP

	bookNameJL=new JLabel("书名:");
	bookNameJL.setHorizontalAlignment(SwingConstants.CENTER);
	bookJP.add(bookNameJL);
	bookNameJTF=new JTextField();
	bookJP.add(bookNameJTF);

//创建作者标签,并添加到bookJP

	authorJL=new JLabel("作者:");
	authorJL.setHorizontalAlignment(SwingConstants.CENTER);
	bookJP.add(authorJL);
	authorJTF=new JTextField();
	bookJP.add(authorJTF);

//创建出版社标签,并添加到bookJP

	pressJL=new JLabel("出版社:");
	pressJL.setHorizontalAlignment(SwingConstants.CENTER);
	bookJP.add(pressJL);
	pressJTF=new JTextField();
	bookJP.add(pressJTF);

//创建出版日期标签,并添加到bookJP

	publicationDateJL=new JLabel("出版日期:");
	publicationDateJL.setHorizontalAlignment(SwingConstants.CENTER);
	bookJP.add(publicationDateJL);
	publicationDateJTF=new JTextField();
	bookJP.add(publicationDateJTF);

//创建版次标签,并添加到bookJP

	editionJL=new JLabel("版次:");
	editionJL.setHorizontalAlignment(SwingConstants.CENTER);
	bookJP.add(editionJL);
	editionJTF=new JTextField();
	bookJP.add(editionJTF);

//创建定价标签,并添加到bookJP

	priceJL=new JLabel("定价:");
	priceJL.setHorizontalAlignment(SwingConstants.CENTER);
	bookJP.add(priceJL);
	priceJTF=new JTextField();
	bookJP.add(priceJTF);

//创建当前日期标签,并添加到bookJP

	dateJL=new JLabel("当前日期:");
	dateJL.setHorizontalAlignment(SwingConstants.CENTER);
	bookJP.add(dateJL);
	dateJTF=new JTextField();

//时间格式为“yyyy-mm-dd”

	SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd");

//格式化系统当前日期

	String str=format.format(new java.util.Date());
	dateJTF.setText(str);
	bookJP.add(dateJTF);

//创建操作人员标签,并添加到bookJP

	playerJL=new JLabel("操作人员:");
	playerJL.setHorizontalAlignment(SwingConstants.CENTER);
	bookJP.add(playerJL);
	playerJTF=new JTextField(Login.getUser().getName());            //丛登录信息中获取用户名
	playerJTF.setEditable(false);
	bookJP.add(playerJTF);
	bookBbJP.add(bookJP);

/按钮面板设计/

	buttonJP=new JPanel();
	borrowJB=new JButton("借阅");
	borrowJB.addActionListener(new BorrowListener());
	colseJB=new JButton("关闭");
	colseJB.addActionListener(new closeListener());
	buttonJP.add(borrowJB);
	buttonJP.add(colseJB);

//将面板添加到该界面中

	this.add(readerBbJP,BorderLayout.NORTH);
	this.add(bookBbJP,BorderLayout.CENTER);
	this.add(buttonJP,BorderLayout.SOUTH);
	this.setVisible(true);
	//this.setResizable(false);
}

//读者信息及借阅情况查询监听器类

class SelectListener implements KeyListener{
	public void keyTyped(KeyEvent e) {
	}
	public void keyPressed(KeyEvent e) {
		if(e.getKeyChar()==KeyEvent.VK_ENTER){
			String id=IDJTF.getText().trim();
			List<Reader> list=ReaderDao.selectReaderById(id);
			for(int i=0;i<list.size();i++){
				Reader reader=list.get(i);
				readerNameJTF.setText(reader.getName());
				readerTypeJTF.setText(reader.getTypename());
			}
			Object[][] results=getSelect(BookBorrowDao.selectBorrowBookByReaderId(IDJTF.getText().trim()));
			jtable=new JTable(results,array);
			jtable.addMouseListener(new TableListener());
			jscrollPane.setViewportView(jtable);
		}
	}
	public void keyReleased(KeyEvent e) {
	}
}

//鼠标选中表格填入信息监听器类

class TableListener extends MouseAdapter{
	public void mouseClicked(MouseEvent e) {

//变量selRow保存选中的行

		int selRow =jtable.getSelectedRow();

//获取选中行中的每一列

		String ISBN=jtable.getValueAt(selRow, 0).toString().trim();
		ISBNJTF.setText(ISBN);
		List<Book> list =BookDao.selectBookByISBN(ISBN);
		for(int i=0;i<list.size();i++){
			Book book=list.get(i);
			bookTypeJTF.setText(book.getTypename());
			bookNameJTF.setText(book.getBookname());
			authorJTF.setText(book.getAuthor());
			pressJTF.setText(book.getPress());
			editionJTF.setText(book.getEdition());
			publicationDateJTF.setText(String.valueOf(book.getPublicationdate()));
			priceJTF.setText(String.valueOf(book.getPrice()));
		}
	}
}

//根据输入的ISBN检索图书信息

class SelectByISBNListener implements KeyListener{
	public void keyPressed(KeyEvent e) {
		if(e.getKeyChar()==KeyEvent.VK_ENTER){
			String ISBN=ISBNJTF.getText().trim();
			List<Book> list =BookDao.selectBookByISBN(ISBN);
			for(int i=0;i<list.size();i++){
				Book book=list.get(i);
				bookTypeJTF.setText(book.getTypename());
				bookNameJTF.setText(book.getBookname());
				authorJTF.setText(book.getAuthor());
				pressJTF.setText(book.getPress());
				editionJTF.setText(book.getEdition());
				publicationDateJTF.setText(String.valueOf(book.getPublicationdate()));
				priceJTF.setText(String.valueOf(book.getPrice()));
			}
		}
	}
	public void keyTyped(KeyEvent e) {
	}
	public void keyReleased(KeyEvent e) {
	}
}

//借阅功能实现

class BorrowListener implements ActionListener{
	public void actionPerformed(ActionEvent e) {
		if(IDJTF.getText().length()==0){
			JOptionPane.showMessageDialog(null, "读者编号不能为空");
			return;
		}
		if(ISBNJTF.getText().length()==0){
			JOptionPane.showMessageDialog(null, "图书编号不能为空");
			return;
		}
		String rea## 标题derid=IDJTF.getText().trim();
		String ISBN=ISBNJTF.getText().trim();
		String borrowdate=dateJTF.getText();
		int i=BookBorrowDao.borrowBook(readerid, ISBN, borrowdate);
		if(i==1){
			JOptionPane.showMessageDialog(null, "借阅成功");
			Object[][] results=getSelect(BookBorrowDao.selectBorrowBookByReaderId(IDJTF.getText().trim()));
			jtable=new JTable(results,array);
			jscrollPane.setViewportView(jtable);
		}
	}
}

//关闭按钮实现

class closeListener implements ActionListener{
	public void actionPerformed(ActionEvent e){
		setVisible(false);
	}
}
public static void main(String[] args) {
	new BookBorrow();
}

}
//booktypemanage
package com.bbm.view;
public class BookTypeManage extends JFrame {

//序列化 为了保持版本的兼容性,在版本升级时反序列化,仍保持对象的唯一性

private static final long serialVersionUID=1L;

//定义面板

private JPanel selectJP,select_conditionJP,select_resultJP,updateJP,buttonJP;

//定义标签

private JLabel bookTypeJL,bookTypeIDJL,bookTypeNameJL;

//定义文本框

private JTextField bookTypeJTF,bookTypeIDJTF,bookTypeNameJTF;

//定义表格

private JTable jtable;

//定义滚动条

private JScrollPane jscrollPane;

//定义按钮

private JButton selectJB,addJB,updateJB,deleteJB,exitJB;

//定义一维数组,作为表的表头

String[] bookTypeSearch={"图书类型编号","图书类型名称"};

//将查询到的图书类型信息转换成二维对象数组

private Object[][] getSelect(List<BookType> list){
	Object[][] results =new Object[list.size()][bookTypeSearch.length];
	for(int i=0;i<list.size();i++){
		BookType bt=list.get(i);
		results[i][0]=bt.getTypeid();
		results[i][1]=bt.getTypename();
	}
	return results;
}

//构造方法

public BookTypeManage(){
	this.setTitle("图书类别管理");
	this.setBounds(200,200,500,300);

//图书类型查询面板设计

	selectJP=new JPanel();
	selectJP.setLayout(new BorderLayout());

//图书类型标签和文本框

	select_conditionJP=new JPanel();
	bookTypeJL=new JLabel("图书类型:");
	select_conditionJP.add(bookTypeJL);
	bookTypeJTF=new JTextField();
	bookTypeJTF.addKeyListener(new SelectByReaderTypeEnter());
	bookTypeJTF.setColumns(20);
	select_conditionJP.add(bookTypeJTF);

//查询按钮

	selectJB=new JButton();
	selectJB.addActionListener(new SelectByBookType());
	selectJB.setText("查询");
	select_conditionJP.add(selectJB);
	selectJP.add(select_conditionJP,BorderLayout.NORTH);

//查询结果面板设计

	select_resultJP=new JPanel();
	jscrollPane=new JScrollPane();
	jscrollPane.setPreferredSize(new Dimension(400,100));
	/*String[] readerTypeSearch={"图书类型编号","图书类型名称"};
	String[][] results={
			{"1","计算机"},
			{"2","社科类"},
			{"3","小说"},
			{"4","名著"},
			{"5","java"},
			{"6","文化"}		
	};*/
	Object[][] results=getSelect(BookTypeDao.selectBookType());
	jtable=new JTable(results,bookTypeSearch);
	jtable.addMouseListener(new TableListener());
	jscrollPane.setViewportView(jtable);
	select_resultJP.add(jscrollPane);
	selectJP.add(select_resultJP,BorderLayout.CENTER);

//图书类别信息修改面板设计

	updateJP=new JPanel();
	updateJP.setBorder(new EmptyBorder(10,40,10,40));
	GridLayout gridLayout=new GridLayout(2,2);
	gridLayout.setHgap(10);
	gridLayout.setVgap(10);
	updateJP.setLayout(gridLayout);

//创建图书类型编号标签,并添加到updateJP

	bookTypeIDJL=new JLabel("图书类别编号:");
	bookTypeIDJL.setHorizontalAlignment(SwingConstants.CENTER);
	updateJP.add(bookTypeIDJL);
	bookTypeIDJTF=new JTextField();
	updateJP.add(bookTypeIDJTF);

//创建图书类型名称标签,并添加到updateJP

	bookTypeNameJL=new JLabel("图书类别名称:");
	bookTypeNameJL.setHorizontalAlignment(SwingConstants.CENTER);
	updateJP.add(bookTypeNameJL);
	bookTypeNameJTF=new JTextField();
	updateJP.add(bookTypeNameJTF);

//按钮面板设计

	buttonJP=new JPanel();
	addJB=new JButton("添加");
	addJB.addActionListener(new AddBookType());
	updateJB=new JButton("修改");
	updateJB.addActionListener(new UpdateListener());
	deleteJB=new JButton("删除");
	deleteJB.addActionListener(new DeleteListener());
	exitJB=new JButton("退出");
	exitJB.addActionListener(new CloseActionListener());
	buttonJP.add(addJB);
	buttonJP.add(updateJB);
	buttonJP.add(deleteJB);
	buttonJP.add(exitJB);

//将面板添加到该界面中

	this.add(selectJP,BorderLayout.NORTH);
	this.add(updateJP,BorderLayout.CENTER);
	this.add(buttonJP,BorderLayout.SOUTH);
	this.setResizable(false);
	this.setVisible(true);
}

//图书类型查询功能实现

class SelectByBookType implements ActionListener{
	public void actionPerformed(ActionEvent e) {
		Object[][] results=getSelect(BookTypeDao.selectBookType(bookTypeJTF.getText().trim()));
		jtable=new JTable(results,bookTypeSearch);
		jscrollPane.setViewportView(jtable);
		jtable.addMouseListener(new TableListener());
	}
}

//按图书类型查询功能实现

class SelectByReaderTypeEnter extends KeyAdapter{
	public void keyPressed(KeyEvent e) {
		if(e.getKeyChar()==KeyEvent.VK_ENTER){
			Object[][] results=getSelect(BookTypeDao.selectBookType(bookTypeJTF.getText().trim()));
			jtable=new JTable(results,bookTypeSearch);
			jscrollPane.setViewportView(jtable);
			jtable.addMouseListener(new TableListener());
		}
	}
}

//添加按钮功能实现

class AddBookType implements ActionListener{
	public void actionPerformed(ActionEvent e) {
		if(bookTypeIDJTF.getText().length()==0){
			JOptionPane.showMessageDialog(null, "类型编号不可为空");
			return;
		}
		else if(bookTypeNameJTF.getText().length()==0){
			JOptionPane.showMessageDialog(null, "类型名称不可为空");
			return;
		}

//类型编号

		int id=Integer.valueOf(bookTypeIDJTF.getText().trim());

//类型名称

		String typename=bookTypeNameJTF.getText().trim();
		int i=BookTypeDao.insertBookType(id, typename);
		if(i==1){
			JOptionPane.showMessageDialog(null, "添加成功");
			Object[][] results=getSelect(BookTypeDao.selectBookType());
			jtable=new JTable(results,bookTypeSearch);
			jscrollPane.setViewportView(jtable);
			//select_resultJP.add(jscrollPane);
			jtable.addMouseListener(new TableListener());
		}
	}
}

//鼠标选中表格填入信息适配器类

class TableListener extends MouseAdapter{
	public void mouseClicked(MouseEvent e) {

//变量selRow保存选中的行

		int selRow =jtable.getSelectedRow();

//获取选中行中的每一列

		bookTypeIDJTF.setText(jtable.getValueAt(selRow, 0).toString().trim());
		bookTypeNameJTF.setText(jtable.getValueAt(selRow, 1).toString().trim());
	}
}

//修改功能按钮实现

class UpdateListener implements ActionListener{
	public void actionPerformed(ActionEvent e) {

//类型编号

		int id=Integer.valueOf(bookTypeIDJTF.getText().trim());

//类型名称

		String typename=bookTypeNameJTF.getText().trim();
		int u=BookTypeDao.updateBookType(id, typename);
		if(u==1){
			JOptionPane.showMessageDialog(null, "修改成功");
			Object[][] results=getSelect(BookTypeDao.selectBookType());
			jtable=new JTable(results,bookTypeSearch);
			jscrollPane.setViewportView(jtable);
			select_resultJP.add(jscrollPane);
			jtable.addMouseListener(new TableListener());
		}
	}
}

//删除按钮功能实现

class DeleteListener implements ActionListener{
	public void actionPerformed(ActionEvent e) {

//类型编号

		int id=Integer.valueOf(bookTypeIDJTF.getText().trim());
		int d=BookTypeDao.deleteBookType(id);
		if(d==1){
			JOptionPane.showMessageDialog(null, "删除成功");
			Object[][] results=getSelect(BookTypeDao.selectBookType());
			jtable=new JTable(results,bookTypeSearch);
			jscrollPane.setViewportView(jtable);
			select_resultJP.add(jscrollPane);
			jtable.addMouseListener(new TableListener());
		}
	}
}

//退出按钮功能实现

class CloseActionListener implements ActionListener{
	public void actionPerformed(final ActionEvent e){
		setVisible(false);
	}
}
public static void main(String[] args) {
	new BookTypeManage();
}

}
//bookreturn
package com.bbm.view;
public class BookReturn extends JFrame {

//序列化 为了保持版本的兼容性,在版本升级时反序列化,仍保持对象的唯一性

private static final long serialVersionUID=1L;

//定义面板

private JPanel readerBbJP,bookBbJP,readerJP,bookBorderJP,bookJP,buttonJP;

//定义标签

private JLabel IDJL,readerNameJL,readerTypeJL,ISBNJL,bookTypeJL,bookNameJL,authorJL,pressJL,publicationDateJL,
editionJL,priceJL,dateJL,playerJL,fineJL,diffDateJL;

//定义文本框

private JTextField IDJTF,readerNameJTF,readerTypeJTF,ISBNJTF,bookTypeJTF,bookNameJTF,authorJTF,pressJTF,publicationDateJTF,
editionJTF,priceJTF,dateJTF,playerJTF,fineJTF,diffDateJTF;

//定义表格,用于存放查询出来的图书信息

private JTable jtable;

//定义滚动条

private JScrollPane jscrollPane;

//定义按钮

private JButton borrowJB,colseJB;

//定义一维数组,作为表的表头

private String[] array={"ISBN","书名","借书日期"};

//将查询到的借阅信息转换成二维对象数组

private Object[][] getSelect(List<BorrowBook> list){
	Object[][] results=new Object[list.size()][array.length];
	for(int i=0;i<list.size();i++){
		BorrowBook bB=list.get(i);
		results[i][0]=bB.getISBN();
		List<Book> list1=BookDao.selectBookByISBN(bB.getISBN());
		Book book=list1.get(0);
		results[i][1]=book.getBookname();
		results[i][2]=bB.getBorrowdate();
	}
	return results;
}

//构造方法

public BookReturn(){
	this.setTitle("图书归还");                                                                                                                                                                                                                                                                                                                                                                                                           
	this.setBounds(500, 500, 600, 480);

/读者借阅信息面板设计/

	readerBbJP=new JPanel();
	TitledBorder tb1=new TitledBorder("读者借阅信息");
	readerBbJP.setBorder(tb1);
	readerBbJP.setLayout(new BorderLayout());
	//读者借阅信息查询标签和文本框面板
	readerJP=new JPanel();
	//创建读者编号标签和文本框,并添加到readerJP中
	IDJL=new JLabel("读者编号:");
	readerJP.add(IDJL);
	IDJTF=new JTextField();
	IDJTF.addKeyListener(new SelectListener());
	IDJTF.setColumns(10);
	readerJP.add(IDJTF);
	//创建姓名标签和文本框,并添加到readerJP中
	readerNameJL=new JLabel("姓名:");
	readerJP.add(readerNameJL);
	readerNameJTF=new JTextField();
	readerNameJTF.setColumns(10);
	readerJP.add(readerNameJTF);
	//创建类型标签和文本框,并添加到readerJP中
	readerTypeJL=new JLabel("类型:");
	readerJP.add(readerTypeJL);
	readerTypeJTF=new JTextField();
	readerTypeJTF.setColumns(10);
	readerJP.add(readerTypeJTF);
	readerBbJP.add(readerJP,BorderLayout.NORTH);
	//查询结果面板设计
	bookBorderJP=new JPanel();
	jscrollPane=new JScrollPane();
	jscrollPane.setPreferredSize(new Dimension(400,100));
	/*String[] array={"ISBN","书名","借书日期"};
	String[][] results={
			{"123456789","Java","2019-01-01"}
	};*/
	Object[][] results=getSelect(BookBorrowDao.selectBorrowBookByReaderId(IDJTF.getText()));
	jtable=new JTable(results,array);
	jtable.addMouseListener(new TableListener());
	jscrollPane.setViewportView(jtable);
	bookBorderJP.add(jscrollPane);
	readerBbJP.add(bookBorderJP,BorderLayout.CENTER);
	/*图书借阅面板设计*/
	bookBbJP=new JPanel();
	TitledBorder tb2=new TitledBorder("图书归还");
	bookBbJP.setBorder(tb2);
	bookJP=new JPanel();
	bookJP.setBorder(new EmptyBorder(10,40,10,40));
	GridLayout gridLayout=new GridLayout(6,4);
	gridLayout.setHgap(10);
	gridLayout.setVgap(10);
	bookJP.setLayout(gridLayout);
	//创建ISBN标签,并添加到bookJP
	ISBNJL=new JLabel("ISNB:");
	ISBNJL.setHorizontalAlignment(SwingConstants.CENTER);
	bookJP.add(ISBNJL);
	ISBNJTF=new JTextField();
	ISBNJTF.addKeyListener(new SelectByISBNListener());
	ISBNJTF.setColumns(10);
	bookJP.add(ISBNJTF);
	//创建类别标签,并添加到bookJP
	bookTypeJL=new JLabel("类别:");
	bookTypeJL.setHorizontalAlignment(SwingConstants.CENTER);
	bookJP.add(bookTypeJL);
	bookTypeJTF=new JTextField();
	bookJP.add(bookTypeJTF);
	//创建书名标签,并添加到bookJP
	bookNameJL=new JLabel("书名:");
	bookNameJL.setHorizontalAlignment(SwingConstants.CENTER);
	bookJP.add(bookNameJL);
	bookNameJTF=new JTextField();
	bookJP.add(bookNameJTF);
	//创建作者标签,并添加到bookJP
	authorJL=new JLabel("作者:");
	authorJL.setHorizontalAlignment(SwingConstants.CENTER);
	bookJP.add(authorJL);
	authorJTF=new JTextField();
	bookJP.add(authorJTF);
	//创建出版社标签,并添加到bookJP
	pressJL=new JLabel("出版社:");
	pressJL.setHorizontalAlignment(SwingConstants.CENTER);
	bookJP.add(pressJL);
	pressJTF=new JTextField();
	bookJP.add(pressJTF);
	//创建出版日期标签,并添加到bookJP
	publicationDateJL=new JLabel("出版日期:");
	publicationDateJL.setHorizontalAlignment(SwingConstants.CENTER);
	bookJP.add(publicationDateJL);
	publicationDateJTF=new JTextField();
	bookJP.add(publicationDateJTF);
	//创建版次标签,并添加到bookJP
	editionJL=new JLabel("版次:");
	editionJL.setHorizontalAlignment(SwingConstants.CENTER);
	bookJP.add(editionJL);
	editionJTF=new JTextField();
	bookJP.add(editionJTF);
	//创建定价标签,并添加到bookJP
	priceJL=new JLabel("定价:");
	priceJL.setHorizontalAlignment(SwingConstants.CENTER);
	bookJP.add(priceJL);
	priceJTF=new JTextField();
	bookJP.add(priceJTF);
	//创建当前日期标签,并添加到bookJP
	dateJL=new JLabel("当前日期:");
	dateJL.setHorizontalAlignment(SwingConstants.CENTER);
	bookJP.add(dateJL);
	dateJTF=new JTextField();
	//时间格式为“yyyy-mm-dd”
	SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd");
	//格式化系统当前日期
	String str=format.format(new java.util.Date());
	dateJTF.setText(str);
	bookJP.add(dateJTF);
	//创建超期天数标签,并添加到bookJP
	diffDateJL=new JLabel("超期天数:");
	diffDateJL.setHorizontalAlignment(SwingConstants.CENTER);
	bookJP.add(diffDateJL);
	diffDateJTF=new JTextField();
	bookJP.add(diffDateJTF);
	//创建罚金标签,并添加到bookJP
	fineJL=new JLabel("罚金:");
	fineJL.setHorizontalAlignment(SwingConstants.CENTER);
	bookJP.add(fineJL);
	fineJTF=new JTextField();
	bookJP.add(fineJTF);
	//创建操作人员标签,并添加到bookJP
	playerJL=new JLabel("操作人员:");
	playerJL.setHorizontalAlignment(SwingConstants.CENTER);
	bookJP.add(playerJL);
	playerJTF=new JTextField(Login.getUser().getName());
	playerJTF.setEditable(false);
	bookJP.add(playerJTF);
	bookBbJP.add(bookJP);
	/*按钮面板设计*/
	buttonJP=new JPanel();
	borrowJB=new JButton("归还");
	borrowJB.addActionListener(new bookReturn());
	colseJB=new JButton("关闭");
	buttonJP.add(borrowJB);
	buttonJP.add(colseJB);
	//将面板添加到该界面中
	this.add(readerBbJP,BorderLayout.NORTH);
	this.add(bookBbJP,BorderLayout.CENTER);
	this.add(buttonJP,BorderLayout.SOUTH);
	this.setVisible(true);
	this.setResizable(false);
}
//读者信息及借阅情况查询监听器类
class SelectListener implements KeyListener{
	public void keyTyped(KeyEvent e) {
	}
	public void keyPressed(KeyEvent e) {
		if(e.getKeyChar()==KeyEvent.VK_ENTER){
			String id=IDJTF.getText().trim();
			List<Reader> list=ReaderDao.selectReaderById(id);
			for(int i=0;i<list.size();i++){
				Reader reader=list.get(i);
				readerNameJTF.setText(reader.getName());
				readerTypeJTF.setText(reader.getTypename());
			}
			Object[][] results=getSelect(BookBorrowDao.selectBorrowBookByReaderId(IDJTF.getText().trim()));
			jtable=new JTable(results,array);
			jtable.addMouseListener(new TableListener());
			jscrollPane.setViewportView(jtable);
			
		}
	}
	public void keyReleased(KeyEvent e) {
	}
}
//根据输入的ISBN检索图书信息
class SelectByISBNListener extends KeyAdapter{
	public void keyPressed(KeyEvent e) {
		if(e.getKeyChar()==KeyEvent.VK_ENTER){
			String ISBN=ISBNJTF.getText().trim();
			List<Book> list =BookDao.selectBookByISBN(ISBN);
			for(int i=0;i<list.size();i++){
				Book book=list.get(i);
				bookTypeJTF.setText(book.getTypename());
				bookNameJTF.setText(book.getBookname());
				authorJTF.setText(book.getAuthor());
				pressJTF.setText(book.getPress());
				editionJTF.setText(book.getEdition());
				publicationDateJTF.setText(String.valueOf(book.getPublicationdate()));
				priceJTF.setText(String.valueOf(book.getPrice()));
			}
		}
	}	
}
//鼠标选中表格填入信息监听器类
class TableListener extends MouseAdapter{
	public void mouseClicked(MouseEvent e) {
		//变量selRow保存选中的行
		int selRow =jtable.getSelectedRow();
		//获取选中行中的ISBN
		String ISBN=jtable.getValueAt(selRow, 0).toString().trim();
		ISBNJTF.setText(ISBN);
		List<Book> list =BookDao.selectBookByISBN(ISBN);
		for(int i=0;i<list.size();i++){
			Book book=list.get(i);
			bookTypeJTF.setText(book.getTypename());
			bookNameJTF.setText(book.getBookname());
			authorJTF.setText(book.getAuthor());
			pressJTF.setText(book.getPress());
			editionJTF.setText(book.getEdition());
			publicationDateJTF.setText(String.valueOf(book.getPublicationdate()));
			priceJTF.setText(String.valueOf(book.getPrice()));
		}
		/*计算超期天数和罚金*/
		//设置超期天数
		java.sql.Date borrowday,returnday;
		borrowday=java.sql.Date.valueOf(jtable.getValueAt(selRow, 2).toString().trim());
		returnday=java.sql.Date.valueOf(dateJTF.getText().trim());
		//计算归还日期减借阅日期所得微秒数
		Long m_intervalday=returnday.getTime()-borrowday.getTime();
		//计算所得天数
		Long borrowtime=m_intervalday/1000/60/60/24;
		List<Reader> list1=ReaderDao.selectReaderById(IDJTF.getText().trim());
		//limit保存该读者能借阅天数信息
		int limit;
		for(int i=0;i<list.size();i++){
			Reader reader=list1.get(i);
			limit=reader.getLimit();
			if(borrowtime>limit){
				diffDateJTF.setText(String.valueOf(borrowtime));
				diffDateJTF.setForeground(Color.red);
				//用超期天数乘每天的罚金得到总罚金
				Double zfk=Double.valueOf(borrowtime)*Fine.getFine();
				fineJTF.setText(new java.text.DecimalFormat("#.00").format(zfk));
			}else{
				diffDateJTF.setText("未超过规定天数");
				fineJTF.setText("0");
			}
		}
	}
}
//图书归还功能实现
class bookReturn implements ActionListener{
	public void actionPerformed(ActionEvent e) {
		String readerid=IDJTF.getText().trim();
		String ISBN=ISBNJTF.getText().trim();
		String returndate=dateJTF.getText().trim();
		int u=BookBorrowDao.returnBook(readerid, ISBN, returndate);
		if(u==1){
			JOptionPane.showMessageDialog(null, "图书已归还");
			Object[][] results=getSelect(BookBorrowDao.selectBorrowBookByReaderId(IDJTF.getText().trim()));
			jtable=new JTable(results,array);
			jtable.addMouseListener(new TableListener());
			jscrollPane.setViewportView(jtable);
		}
	}
}

public static void main(String[] args) {
	new BookReturn();
}

}
//bookselect
package com.bbm.view;
public class BookSelectandUpdate extends JFrame {
//序列化 为了保持版本的兼容性,在版本升级时反序列化,仍保持对象的唯一性
private static final long serialVersionUID=1L;
//定义中间容器
private JTabbedPane JTP;
//定义面板
private JPanel selectJP,select_conditionJP,select_resultJP,buttonJP,updateJP,bookJP,buttonJP1;
//定义标签
private JLabel ISBNJL,bookTypeJL,bookNameJL,authorJL,pressJL,publicationDateJL,editionJL,priceJL;
//定义文本框
private JTextField select_conditionJTF,ISBNJTF,bookNameJTF,authorJTF,pressJTF,publicationDateJTF,editionJTF,priceJTF;
//定义查询条件,和图书类型的文本框
private JComboBox conditionJCB,bookTypeJCB;
//定义滚动面板,用于存放查询出来的图书信息表格
private JScrollPane jscrollPane;
//定义表格,用于存放查询出来的图书信息
private JTable jtable;
//定义按钮
private JButton selectJB,exitJB,updateJB,closeJB;
//定义一维数组,作为表的表头
private String[] booksearch={“ISBN”,“类别”,“书名”,“作者”,“出版社”,“出版日期”,“版次”,“定价”};
//将查询到的图书信息转换成二维对象数组
private Object[][] getSelect(List list){
Object[][] results =new Object[list.size()][booksearch.length];
for(int i=0;i<list.size();i++){
Book book=list.get(i);
results[i][0]=book.getISBN();
results[i][1]=book.getTypename();
results[i][2]=book.getBookname();
results[i][3]=book.getAuthor();
results[i][4]=book.getPress();
results[i][5]=book.getPublicationdate();
results[i][6]=book.getEdition();
results[i][7]=book.getPrice();
}
return results;
}

//构造方法
public BookSelectandUpdate(){
	this.setBounds(200, 200, 500, 330);
	this.setTitle("图书信息查询与修改");
	//中间容器
	JTP=new JTabbedPane();
	
	/*图书信息查询面板设计*/
	selectJP=new JPanel();
	selectJP.setLayout(new BorderLayout());
	//查询条件面板
	//查询条件下拉面板
	select_conditionJP=new JPanel();
	conditionJCB=new JComboBox();
	String[] array={"ISBN","类别","书名","作者","出版社"};
	for(int i=0;i<array.length;i++){
		conditionJCB.addItem(array[i]);
	}
	select_conditionJP.add(conditionJCB);
	//查询条件文本框
	select_conditionJTF=new JTextField();
	select_conditionJTF.addKeyListener(new SelectListenerByEnter());
	select_conditionJTF.setColumns(20);
	select_conditionJP.add(select_conditionJTF);
	selectJP.add(select_conditionJP,BorderLayout.NORTH);
	//查询结果面板
	select_resultJP=new JPanel();
	jscrollPane=new JScrollPane();
	jscrollPane.setPreferredSize(new Dimension(400,175));
	/*String[] booksearch={"ISBN","类别","书名","作者","出版社","出版日期","版次","定价"};
	String[][] results={
			{"ISBN","类别","书名","作者","出版社","出版日期","版次","定价"},
			{"ISBN","类别","书名","作者","出版社","出版日期","版次","定价"},
			{"ISBN","类别","书名","作者","出版社","出版日期","版次","定价"}
	};*/
	Object[][] results=getSelect(BookDao.selectBook());
	jtable=new JTable(results,booksearch);
	jtable.addMouseListener(new TableListener());
	jtable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
	jscrollPane.setViewportView(jtable);
	select_resultJP.add(jscrollPane);
	selectJP.add(select_resultJP,BorderLayout.CENTER);
	//按钮面板设计
	buttonJP=new JPanel();
	selectJB=new JButton("查询");
	selectJB.addActionListener(new SelectListener());
	exitJB=new JButton("退出");
	exitJB.addActionListener(new closeListener());
	buttonJP.add(selectJB);
	buttonJP.add(exitJB);
	selectJP.add(buttonJP,BorderLayout.SOUTH);

	/*图书信息修改面板设计*/
	updateJP=new JPanel();
	updateJP.setLayout(new BorderLayout());
	//图书信息面板设计
	bookJP=new JPanel();
	GridLayout gridLayout=new GridLayout(8,2);
	gridLayout.setHgap(10);
	gridLayout.setVgap(10);
	bookJP.setLayout(gridLayout);
	//创建ISBN的标签和文本框,并添加到bookJP
	ISBNJL=new JLabel("ISBN:");
	ISBNJL.setHorizontalAlignment(SwingConstants.CENTER);
	bookJP.add(ISBNJL);
	ISBNJTF=new JTextField();
	ISBNJTF.addKeyListener(new SelectByISBNListener());
	bookJP.add(ISBNJTF);
	//创建ISBN的标签和下拉列表框,并添加到bookJP
	bookTypeJL=new JLabel("类别:");
	bookTypeJL.setHorizontalAlignment(SwingConstants.CENTER);
	bookJP.add(bookTypeJL);
	bookTypeJCB=new JComboBox();
	List<BookType> list =BookTypeDao.selectBookType();
	for(int i=0;i<list.size();i++){
		BookType bookType=list.get(i);
		bookTypeJCB.addItem(bookType.getTypename());
	}
	bookJP.add(bookTypeJCB);
	//创建书名的标签和文本框,并添加到bookJP
	bookNameJL=new JLabel("书名:");
	bookNameJL.setHorizontalAlignment(SwingConstants.CENTER);
	bookJP.add(bookNameJL);
	bookNameJTF=new JTextField();
	bookJP.add(bookNameJTF);
	//创建作者的标签和文本框,并添加到bookJP
	authorJL=new JLabel("作者:");
	authorJL.setHorizontalAlignment(SwingConstants.CENTER);
	bookJP.add(authorJL);
	authorJTF=new JTextField();
	bookJP.add(authorJTF);
	//创建出版社的标签和文本框,并添加到bookJP
	pressJL=new JLabel("出版社:");
	pressJL.setHorizontalAlignment(SwingConstants.CENTER);
	bookJP.add(pressJL);
	pressJTF=new JTextField();
	bookJP.add(pressJTF);
	//创建出版日期的标签和文本框,并添加到bookJP
	publicationDateJL=new JLabel("出版日期:");
	publicationDateJL.setHorizontalAlignment(SwingConstants.CENTER);
	bookJP.add(publicationDateJL);
	publicationDateJTF=new JTextField();
	bookJP.add(publicationDateJTF);
	//创建版次的标签和文本框,并添加到bookJP
	editionJL=new JLabel("版次:");
	editionJL.setHorizontalAlignment(SwingConstants.CENTER);
	bookJP.add(editionJL);
	editionJTF=new JTextField();
	bookJP.add(editionJTF);
	//创建定价的标签和文本框,并添加到bookJP
	priceJL=new JLabel("定价:");
	priceJL.setHorizontalAlignment(SwingConstants.CENTER);
	bookJP.add(priceJL);
	priceJTF=new JTextField();
	bookJP.add(priceJTF);
	updateJP.add(bookJP,BorderLayout.CENTER);
	//按钮面板设计
	buttonJP1=new JPanel();
	updateJB=new JButton("修改");
	updateJB.addActionListener(new UpdateListener());
	closeJB=new JButton("关闭");
	closeJB.addActionListener(new closeListener());
	buttonJP1.add(updateJB);
	buttonJP1.add(closeJB);
	updateJP.add(buttonJP1,BorderLayout.SOUTH);
	updateJP.add(bookJP);
	//添加面板到该界面中
	JTP.add("图书信息查询",selectJP);
	JTP.add("图书信息修改",updateJP);
	this.add(JTP);
	this.setResizable(false);
	this.setVisible(true);
}
//按条件查询指定读者信息
class SelectListener implements ActionListener{
	public void actionPerformed(ActionEvent e) {
		//condition用来存放用户选择的查询条件
		String condition=(String) conditionJCB.getSelectedItem();
		//按图书编号查询
		if(condition.equals("ISBN")){
			Object[][] results =getSelect(BookDao.selectBookByISBN(select_conditionJTF.getText().trim()));
			jtable=new JTable(results,booksearch);
			jscrollPane.setViewportView(jtable);
			jtable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
			jtable.addMouseListener(new TableListener());
		}
		//按类别查询
		if(condition.equals("类别")){
			Object[][] results=getSelect(BookDao.selectBookByType(select_conditionJTF.getText().trim()));
			jtable=new JTable(results,booksearch);
			jscrollPane.setViewportView(jtable);
			jtable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
			jtable.addMouseListener(new TableListener());
		}
		//按书名查询
		if(condition.equals("书名")){
			Object[][] results=getSelect(BookDao.selectBookByName(select_conditionJTF.getText().trim()));
			jtable=new JTable(results,booksearch);
			jscrollPane.setViewportView(jtable);
			jtable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
			jtable.addMouseListener(new TableListener());
		}
		//按作者查询
		if(condition.equals("作者")){
			Object[][] results=getSelect(BookDao.selectBookByAuthor(select_conditionJTF.getText().trim()));
			jtable=new JTable(results,booksearch);
			jscrollPane.setViewportView(jtable);
			jtable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
			jtable.addMouseListener(new TableListener());
		}
		//按出版社查询
		if(condition.equals("出版社")){
			Object[][] results=getSelect(BookDao.selectBookByPress(select_conditionJTF.getText().trim()));
			jtable=new JTable(results,booksearch);
			jscrollPane.setViewportView(jtable);
			jtable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
			jtable.addMouseListener(new TableListener());
		}
	}
}
//按条件查询指定读者信息<ENTER>
class SelectListenerByEnter extends KeyAdapter{
	public void keyPressed(KeyEvent e) {
		if(e.getKeyChar()==KeyEvent.VK_ENTER){
			//condition用来存放用户选择的查询条件
			String condition=(String) conditionJCB.getSelectedItem();
			//按图书编号查询
			if(condition.equals("ISBN")){
				Object[][] results =getSelect(BookDao.selectBookByISBN(select_conditionJTF.getText().trim()));
				jtable=new JTable(results,booksearch);
				jscrollPane.setViewportView(jtable);
				jtable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
				jtable.addMouseListener(new TableListener());
			}
			//按类别查询
			if(condition.equals("类别")){
				Object[][] results=getSelect(BookDao.selectBookByType(select_conditionJTF.getText().trim()));
				jtable=new JTable(results,booksearch);
				jscrollPane.setViewportView(jtable);
				jtable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
				jtable.addMouseListener(new TableListener());
			}
			//按书名查询
			if(condition.equals("书名")){
				Object[][] results=getSelect(BookDao.selectBookByName(select_conditionJTF.getText().trim()));
				jtable=new JTable(results,booksearch);
				jscrollPane.setViewportView(jtable);
				jtable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
				jtable.addMouseListener(new TableListener());
			}
			//按作者查询
			if(condition.equals("作者")){
				Object[][] results=getSelect(BookDao.selectBookByAuthor(select_conditionJTF.getText().trim()));
				jtable=new JTable(results,booksearch);
				jscrollPane.setViewportView(jtable);
				jtable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
				jtable.addMouseListener(new TableListener());
			}
			//按出版社查询
			if(condition.equals("出版社")){
				Object[][] results=getSelect(BookDao.selectBookByPress(select_conditionJTF.getText().trim()));
				jtable=new JTable(results,booksearch);
				jscrollPane.setViewportView(jtable);
				jtable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
				jtable.addMouseListener(new TableListener());
			}
		}
	}
}
//修改按钮功能实现
class UpdateListener implements ActionListener{
	public void actionPerformed(ActionEvent e) {
		String ISBN=ISBNJTF.getText().trim();
		String typename=(String) bookTypeJCB.getSelectedItem();
		String bookname=bookNameJTF.getText().trim();
		String author=authorJTF.getText().trim();
		String press=pressJTF.getText().trim();
		String publicationdate=publicationDateJTF.getText().trim();
		String edition=editionJTF.getText().trim();
		double price=Double.valueOf(priceJTF.getText().trim());
		int u=BookDao.updatebook(ISBN, typename, bookname, author, press, publicationdate, edition, price);
		if(u==1){
			JOptionPane.showMessageDialog(null, "修改成功");
			Object[][] results=getSelect(BookDao.selectBookByPress(select_conditionJTF.getText().trim()));
			jtable=new JTable(results,booksearch);
			jscrollPane.setViewportView(jtable);
			jtable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
		}
	}
}
//鼠标选中表格填入信息监听器类
class TableListener extends MouseAdapter{
	public void mouseClicked(MouseEvent e) {
		//变量selRow保存选中的行
		int selRow =jtable.getSelectedRow();
		//获取选中行中的每一列
		ISBNJTF.setText(jtable.getValueAt(selRow, 0).toString().trim());
		bookTypeJCB.setSelectedItem(jtable.getValueAt(selRow, 1).toString().trim());
		bookNameJTF.setText(jtable.getValueAt(selRow, 2).toString().trim());
		authorJTF.setText(jtable.getValueAt(selRow, 3).toString().trim());
		pressJTF.setText(jtable.getValueAt(selRow, 4).toString().trim());
		editionJTF.setText(jtable.getValueAt(selRow, 6).toString().trim());
		publicationDateJTF.setText(jtable.getValueAt(selRow, 5).toString().trim());
		priceJTF.setText(jtable.getValueAt(selRow, 7).toString().trim());
	}
}

//关闭按钮监听器类
class closeListener implements ActionListener{
	public void actionPerformed(ActionEvent e){
		setVisible(false);
	}
}
//根据输入的ISBN检索图书信息
class SelectByISBNListener implements KeyListener{
	public void keyPressed(KeyEvent e) {
		if(e.getKeyChar()==KeyEvent.VK_ENTER){
			String ISBN=ISBNJTF.getText().trim();
			List<Book> list =BookDao.selectBookByISBN(ISBN);
			for(int i=0;i<list.size();i++){
				Book book=list.get(i);
				bookTypeJCB.setSelectedItem(book.getTypename());
				bookNameJTF.setText(book.getBookname());
				authorJTF.setText(book.getAuthor());
				pressJTF.setText(book.getPress());
				editionJTF.setText(book.getEdition());
				publicationDateJTF.setText(String.valueOf(book.getPublicationdate()));
				priceJTF.setText(String.valueOf(book.getPrice()));
			}
		}
	}
	public void keyTyped(KeyEvent e) {
	}
	public void keyReleased(KeyEvent e) {
	}
}
public static void main(String[] args) {
	new BookSelectandUpdate();
}

}
// BookTypeDao
package com.bbm.db;
/图书类别管理/
public class BookTypeDao {
//1.查询所有图书类别信息
public static List selectBookType(){
List list =new ArrayList();
String sql=“select * from booktype”;
ResultSet rs = Dao.executeQuery(sql);
try{
while(rs.next()){
BookType bookType=new BookType();
bookType.setTypeid(rs.getInt(“typeid”));
bookType.setTypename(rs.getString(“typename”));
list.add(bookType);
}
}catch(Exception e){
e.printStackTrace();
}
Dao.close();
return list;
}
//2.查询指定图书类别名的图书类别信息
public static List selectBookType(String name){
List list =new ArrayList();
String sql=“select * from booktype where typename like '%”+name+"%’";
ResultSet rs = Dao.executeQuery(sql);
try{
while(rs.next()){
BookType bookType=new BookType();
bookType.setTypeid(rs.getInt(“typeid”));
bookType.setTypename(rs.getString(“typename”));
list.add(bookType);
}
}catch(Exception e){
e.printStackTrace();
}
Dao.close();
return list;
}
//3.添加图书类别信息
public static int insertBookType(Integer id,String typename){
int i=0;
try{
String sql1=“insert into booktype values(”+id+",’"+typename+"’)";
i=Dao.executeUpdate(sql1);
}catch(Exception e){
e.printStackTrace();
}
return i;
}
//4.修改图书类别信息
public static int updateBookType(Integer id,String typename){
int i=0;
try{
String sql1=“update booktype set typename=’”+typename+"’ where typeid="+id;
i=Dao.executeUpdate(sql1);
}catch(Exception e){
e.printStackTrace();
}
return i;
}
//5.删除图书类别信息
public static int deleteBookType(Integer id){
int i=0;
try{
String sql1=“delete from booktype where typeid=”+id;
i=Dao.executeUpdate(sql1);
}catch(Exception e){
e.printStackTrace();
}
return i;

}

public static void main(String[] args) {
	//查询
	List<BookType> list=BookTypeDao.selectBookType();				//查询所有
	/*List<BookType> list=BookTypeDao.selectBookType("文化");*/		//按类别查询
	for(int i=0;i<list.size();i++){
		BookType bookType=list.get(i);
		System.out.print(bookType.getTypeid()+"  ");
		System.out.println(bookType.getTypename());
	}
	//添加
	/*int i=BookTypeDao.insertBookType(7, "aa");
	if(i>=0)
		System.out.println("插入成功");
	else
		System.out.println("插入失败");*/
	//修改
	/*int u=BookTypeDao.updateBookType(7, "bb");
	if(u>=0)
		System.out.println("修改成功");
	else
		System.out.println("修改失败");*/
	//删除
	/*int d=BookTypeDao.deleteBookType(7);
	if(d>=0)
		System.out.println("删除成功");
	else
		System.out.println("删除失败");*/
	
	
	
	
}

}
// BookBorrowDao
package com.bbm.db;
/图书借阅管理/
public class BookBorrowDao {
//1.查询指定读者编号的借书信息
public static List selectBorrowBookByReaderId(String readerid){
List list=new ArrayList();
String sql=“select * from borrowbook where readerid=’”+readerid+"’ and returndate is null";
ResultSet rs = Dao.executeQuery(sql);
try{
while(rs.next()){
BorrowBook borrowBook=new BorrowBook();
borrowBook.setBorrowdate(rs.getDate(“borrowdate”));
borrowBook.setFine(rs.getDouble(“fine”));
borrowBook.setISBN(rs.getString(“ISBN”));
borrowBook.setReaderid(rs.getString(“readerid”));
borrowBook.setReturndate(rs.getDate(“returndate”));
list.add(borrowBook);
}
}catch(Exception e){
e.printStackTrace();
}
Dao.close();
return list;
}
//2.图书借阅,保存借阅者的读者编号、借阅图书的ISBN及借阅日期
public static int borrowBook(String readerid,String ISBN ,String borrowdate){
int i=0;
try{
String sql1=“insert into borrowbook(readerid,ISBN,borrowdate) values(’”+readerid+"’,’"+ISBN+"’,’"+borrowdate+"’)";
i=Dao.executeUpdate(sql1);
}catch(Exception e){
e.printStackTrace();
}
return i;
}
//3.图书归还,保存还书者的读者编号、所还书的ISBN及还书日期
public static int returnBook(String readerid,String ISBN ,String returndate){
int i=0;
try{
String sql1=“update borrowbook set returndate=’”+returndate+"’ where readerid=’"+readerid+"’ and ISBN=’"+ISBN+"’";
i=Dao.executeUpdate(sql1);
}catch(Exception e){
e.printStackTrace();
}
return i;
}

public static void main(String[] args) {
	//查询指定读者编号的借书信息
	/*List<BorrowBook> list=BookBorrowDao.selectBorrowBookByReaderId("3");
	for(int i=0;i<list.size();i++){
		BorrowBook borrowBook=list.get(i);
		System.out.print(borrowBook.getISBN()+"  ");
		System.out.print(borrowBook.getBorrowdate()+"  ");
		System.out.print(borrowBook.getFine()+"  ");
		System.out.println(borrowBook.getReturndate());
	}*/
	//添加
	/*int i=BookBorrowDao.borrowBook("6", "123456789789", "2019-01-01");
	if(i>=0)
		System.out.println("插入成功");
	else
		System.out.println("插入失败");*/
	
	//修改
	int u=BookBorrowDao.returnBook("6", "123456789789", "2019-04-05");
	if(u>=0)
		System.out.println("修改成功");
	else
		System.out.println("修改失败");
}

}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

轩辕椿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值