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("修改失败");
}
}