二.图书借阅系统

在简单学习Java的基础知识点后,动手做了一个十分简陋的图书馆借阅系统,作为对所学知识的综合应用,有不足的地方希望大家多多评论,会积极进行改正。

1.先附上总的效果
一开始的登录界面
在这里插入图片描述
登录界面
在这里插入图片描述
注册界面
在这里插入图片描述

登录进去后的个人主页
(本来想在上方插入一张图片,但是刚学swing部分,搞不懂图片的插入方式,搞了很久还是没懂,就暂时放下了)
在这里插入图片描述
借书页面
在这里插入图片描述
输入关键词后搜索的结果
在这里插入图片描述
还书界面,点击自动显示未还书籍
在这里插入图片描述
查询未还书籍的具体信息
在这里插入图片描述
2.贴上源代码
1).这里简单说一下与数据库的操作,注册用户时在表person_information插入个人信息,注册的同时创建专属个人的 账号+密码_no_book_information 表记录未还书籍 ,还有 账号+密码_already_book_information 表记录已还书籍的信息记录,在借书时将书籍的信息插入账号+密码_no_book_information 表,在还书时在
账号+密码_already_book_information 表插入已还书籍的信息,删除账号+密码_no_book_information 表中对应的借阅记录。

2).首先做了一个初始化连接数据库的类,方便在需要时调用。
(涉及数据库方面只是简单的增删查改,本人也是刚学,不做过多的说明)

package booksystem;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
/*
 * 用于初始化连接数据库
 */
public class jdbcConnection 
{
	public static Connection getConnection()throws SQLException
	{
		try
		{
			Class.forName("com.mysql.jdbc.Driver");
			
		}
		catch(ClassNotFoundException e)
		{
			e.printStackTrace();
			System.exit(0);
		}
		
		return DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/book_system?characterEncoding=UTF-8","root","123456789");
		
	}

}

登录界面
主要思路:
登录时在数据库中搜索是否存在该账户,存在进入主页,不存在则提示错误,注册时在数据库的用户列表插入新用户的信息。

package booksystem;
import javax.swing.*;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
/*
 * 图书馆登录界面的设计
 * 包括 登录和注册两部分
 * 
 */
@SuppressWarnings("serial")
public class jieMian extends JFrame                              //总页面
{
		
	public jieMian()
	{
		super();
		
		JLabel label=new JLabel("欢迎来到图书馆借阅系统");
		label.setFont(new Font("宋体", 0	,25));
		label.setBounds(100,50,300,150);
		
		
		JButton button=new JButton("登录");
		button.addActionListener(new ActionListener()
				{

					@Override
					public void actionPerformed(ActionEvent e) 
					{
						new dengLu();
						
					}
			
			
				});
		
		JButton button1=new JButton("注册");
		button1.addActionListener(new ActionListener()
				{

					@Override
					public void actionPerformed(ActionEvent e) 
					{
						new zhuCe();
						
					}
			
			
				});
		
		Box box=Box.createVerticalBox();
		box.add(button);
		box.add(Box.createVerticalStrut(50));
		box.add(button1);
		box.setBounds(200,250,100,150);
		
		
		setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
		setSize(500,500);
		setResizable(false);
		setLocation(700,200);
		setVisible(true);
		setLayout(null);
		add(label);
		add(box);
		
	}
	
	//注册页面
	
	class zhuCe extends JFrame implements ActionListener
	{
		private JTextField zhangHao2;
		private JPasswordField password2;
		
		public zhuCe()
		{
			super();
			
			Box box=Box.createHorizontalBox();
			zhangHao2=new JTextField(15);
			box.add(new JLabel("账号:"));
			box.add(Box.createHorizontalStrut(10));
			box.add(zhangHao2);
			
			Box box1=Box.createHorizontalBox();
			password2=new JPasswordField(15);
			box1.add(new JLabel("密码:"));
			box1.add(Box.createHorizontalStrut(10));
			box1.add(password2); 
			
			
			JButton button=new JButton("确认");
			button.addActionListener(this);
			
			JButton button1=new JButton("重置");
			button1.addActionListener(this);
			
			Box box2=Box.createHorizontalBox();
			box2.add(Box.createHorizontalStrut(30));
			box2.add(button);
			box2.add(Box.createHorizontalStrut(70));
			box2.add(button1);
			
			Box box3=Box.createVerticalBox();
			box3.add(box);
			box3.add(Box.createVerticalStrut(10));
			box3.add(box1);
			box3.add(Box.createVerticalStrut(10));
			box3.add(box2);
			box3.setBounds(100,50,250,100);
			
			setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
			setSize(500,250);
			setLayout(null);
			setVisible(true);
			setLocation(700,300);
			add(box3);
			
			
		}

		//事件处理
		@Override
		public void actionPerformed(ActionEvent e)  
		{
			String ret=e.getActionCommand();
			
			if(ret.equals("确认"))
			{
				//需要插入一个检验数据合理性并更新数据库的操作
				String insertzh=zhangHao2.getText();
				String insertpw=new String(password2.getPassword());
				insert(insertzh,insertpw);                                           //点击确认后插入数据自动关闭
				this.dispose();
				
			}
			else
			{
				zhangHao2.setText("");
				password2.setText("");
			}
		}
		
		
		//处理注册账号密码并插入数据库
		//这里只是简单地将账号密码插入数据库,没有考虑若账号不能与之前的用户相同还有不能用空格注册。
		//处理空格的方法:提取原始账号密码,用trim()除去前后空格比较长度做第一轮筛选,再逐个字符进行比较
		private void insert(String zh,String pw)
		{
			try(
			Statement statement=jdbcConnection.getConnection().createStatement();
			)
			{
				String sqlsentence="insert into person_information values('"+zh+"','"+pw+"',now());";
				statement.execute(sqlsentence);
				
				String sqlsentence1="create table "+zh+pw+"_no_book_information(书名 varchar(20) not null,"       //建立一个个人的借书未还表
						+ "借书时间  datetime not null,"
						+ "借阅天数  int unsigned not null,"
						+ "应还时间  datetime not null);";
				statement.execute(sqlsentence1);
				
				//建立已还书籍记录
				String sqlsentence2="create table "+zh+pw+"_already_book_information(书名 varchar(20) not null,"       //建立一个个人的借书未还表
						+ "借书时间  datetime not null,"
						+ "借阅天数  int unsigned not null,"
						+ "应还时间  datetime not null,"
						+ "归还时间   datetime  not null);";  
				statement.execute(sqlsentence2);
				
			}
			catch(SQLException e)
			{
				System.out.println("注册账号更新数据库时出错!");
				e.printStackTrace();
				System.exit(0);
				
			}
		}
		
		
								
		
	}
	
	
	
	
	//登录界面
	
	class dengLu extends JFrame implements ActionListener
	{
		private JTextField zhangHao1;
		private JPasswordField password1;
		
		public dengLu
		()
		{
			super();
			
			Box box=Box.createHorizontalBox();
			zhangHao1=new JTextField(15);
			box.add(new JLabel("账号:"));
			box.add(Box.createHorizontalStrut(10));
			box.add(zhangHao1);
			
			Box box1=Box.createHorizontalBox();
			password1=new JPasswordField(15);
			box1.add(new JLabel("密码:"));
			box1.add(Box.createHorizontalStrut(10));
			box1.add(password1); 
			
			
			JButton button=new JButton("确认");
			button.addActionListener(this);
			
			Box box2=Box.createHorizontalBox();
			box2.add(Box.createHorizontalStrut(30));
			box2.add(button);

			Box box3=Box.createVerticalBox();
			box3.add(box);
			box3.add(Box.createVerticalStrut(10));
			box3.add(box1);
			box3.add(Box.createVerticalStrut(10));
			box3.add(box2);
			
			box3.setBounds(100,50,250,100);
			
			setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
			setSize(500,250);
			setLayout(null);
			setVisible(true);
			setLocation(700,300);
			add(box3);
			
		}

		@Override
		public void actionPerformed(ActionEvent e) 
		{
			
				//需要插入一个检验数据合理性并更新数据库的操作
			String select=zhangHao1.getText();
			String select1=new String(password1.getPassword());                      //注意getPassword方法返回的时char数组
			
			select(select,select1);                                                  //处理事件 
			
		}
		
		
		private void select(String zh1,String pw1)
		{
			try(
			Statement statement1=jdbcConnection.getConnection().createStatement();
			)
			{
				String sqlsentence1="select * from person_information where  账号='"+zh1+"';";
				System.out.println(sqlsentence1);
				ResultSet set=statement1.executeQuery(sqlsentence1);
				
				
				if(!set.next())
				{
					zhangHao1.setText("无此账号!");                          //查询数据库发现无此账号记录
				}
				else
					if(set.getString("密码").equals(pw1))
				{
					new zhuYe(zh1,pw1);
									                                                        //这里应该新建一个账号主页
					this.dispose();                                      //若输入正确的账号密码,则次登录窗口消失,进入账号主页
				    
				}
					else
					{
						
						zhangHao1.setText("密码错误!");                   //显示密码错误
					}
				
			}
			catch(SQLException e)
			{
				System.out.println("注册账号更新数据库时出错!");
				e.printStackTrace();
				System.exit(0);
				
			}
		}
		
						
	}				
}

主页部分
主要思路:
主要包括三个按钮对应三个功能块

package booksystem;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
/*
 * 个人主页
 * 
 */

@SuppressWarnings("serial")
public class zhuYe extends JFrame 
{
	static String zh;
	static String pw;
	
	public zhuYe(String zh,String pw)
	{
		super(zh+"的主页");
		zhuYe.zh=zh;
		zhuYe.pw=pw;
		
		JButton button=new JButton("借书");
		button.setBounds(450,550,150,50);
		button.addActionListener(new ActionListener()
				{

					@Override
					public void actionPerformed(ActionEvent arg0) {
						new selectBook();
						
					}
			
						
				});
		
		JButton button1=new JButton("还书");
		button1.setBounds(450,650,150,50);
		button1.addActionListener(new ActionListener()
				{

					@Override
					public void actionPerformed(ActionEvent arg0) {
						new returnBook();
					}
			
				});
		
		JButton button2=new JButton("查询");
		button2.setBounds(450,750,150,50);
		button2.addActionListener(new ActionListener()
				{

					@Override
					public void actionPerformed(ActionEvent arg0) 
					{
						new findNoReturnBook();
						
					}
			
				});
		
		add(button);
		add(button1);
		add(button2);
		
		setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
		setSize(1000,1000);
		setLocation(400,30);
		setLayout(null);
		setVisible(true);
	}
			
	

}

借书部分
输入关键词,搜索数据库的图书列表,将相关的书籍显示于列表框上,借阅天数默认为10天。

package booksystem;

import java.awt.Dimension;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Vector;

import javax.swing.*;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;

@SuppressWarnings("serial")
public class selectBook extends JFrame 
{
	private JTextField textSelect;                                             //用户输入关键词搜索的文本框
	private JTextField textDay;                                                //用户输入借阅天数的文本框
	private JList<String> list;                                                //显示搜索结果的文本列表
	private Vector<String> bookSelect;                                               //根据关键字在数据库中搜寻得到的书列表,作为JList的参数
	private String bookName;                                                  //在输入关键字查询列表中被选中的书名
	private String borrowDay="10";                                            //借阅天数默认为10天
	
	public selectBook()
	{
		super();
		
		textSelect=new JTextField();
		textSelect.setPreferredSize(new Dimension(500,30));
		
		bookSelect=new Vector<String>();
	  
		JButton button=new JButton("搜索");                                              //搜索按钮
		button.addActionListener(new ActionListener()
				{

					@Override
					public void actionPerformed(ActionEvent arg0) {
						String keyBookName=textSelect.getText().trim();               //获取用户输入关键词,然后对关键词去除前后空格
						selectBookName(keyBookName);                                                  //调用函数
						list.setListData(bookSelect);                                        //添加搜索的数据
						list.repaint();                                                  //重绘列表                                                
					}
			
				});

		Box box=Box.createHorizontalBox();
		box.add(textSelect);
		box.add(Box.createHorizontalStrut(30));
		box.add(button);
		box.setBounds(180,100,600,30);
	
		add(box);
		
		Font font=new Font("宋体",0,20);
		
		list=new JList<String>();                                                    //显示搜索得到的相关书籍
		list.setPreferredSize(new Dimension(200, 100));
		list.setFont(font);
		list.setListData(bookSelect);
		list.addListSelectionListener(new ListSelectionListener()
				{

					@Override
					public void valueChanged(ListSelectionEvent arg0) 
					{
						bookName=list.getSelectedValue();                              //bookName为用户点击可能借阅的书名
						
						
					}
			
			
				});
		
		//添加滚动条
		JScrollPane scroll=new JScrollPane(list,ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS ,ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
		scroll.setBounds(100,150,800,500);
		
        add(scroll);
		
        JLabel label=new JLabel("天数:");
        label.setBounds(350,650,100,50);
        
        add(label);
        
        textDay=new JTextField();
		textDay.setBounds(400,665,50,20);
		
		add(textDay);
		
		
		JButton button1=new JButton("借阅");
		button1.setBounds(380,700,70,35);
		button1.addActionListener(new ActionListener()
		
				{

					@Override
					public void actionPerformed(ActionEvent arg0) {
						
						if(bookName!=null)                                            //调用更新数据库的信息
						{
							String tempt=textDay.getText();                            //判断用户是否有输入借阅天数,没有默认为10天
							if(!tempt.equals(""))
							{
								borrowDay=tempt;
							}
							System.out.println(tempt);
							updateInformation();
							
						}
						else
						{
							System.out.println("还未确定借阅的书籍!");
						}
					}
			
				});
		
		add(button1);
		
		setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
		setSize(1000,800);
		setLocation(400,200);
		setLayout(null);
		setVisible(true);
		
	}
    
	
	//连接数据库
	private void selectBookName(String name)
	{
		String[] tempt=name.split("");                                      //对用户输入的关键字进行简单的除去空格处理
		name="%";
		
		for(int i=0;i<tempt.length;++i)                                  //将用户输入的关键词做数据库的模糊查询处理
		{
			if(!tempt[i].equals(" "))
			{
				name=name+tempt[i]+"%";
				
			}
			
		}
		
		try
		( Statement statement=jdbcConnection.getConnection().createStatement(); )                  //连接数据,搜索数据库返回搜索结果
		{
			String sql="select * from book_information where 书名 like '"+name+"';";
			
			ResultSet set=statement.executeQuery(sql);
			
			while(set.next())
			{
				bookSelect.add(set.getString("书名"));
				
			}
			
			for(int i=0;i<bookSelect.size();++i)                                   //控制台显示模糊查询的结果,优化时可以作为文件储存
			{
				System.out.println(bookSelect.get(i));
			}
		
			
			if(bookSelect==null)
			{
				bookSelect.add("暂无该书籍!");
				
			}
			
			
		}
		catch(SQLException e)
		{
			System.out.println("根据关键字模糊查询时出错!");
			e.printStackTrace();
			System.exit(0);
		}
		
		
	}
	
	//点击借阅按钮后更新数据库的信息
	/*
	 * 先将图书馆中对应的书籍数量减一
	 * 再将借阅的记录更新至个人的借阅未还记录表中
	 */
	private void updateInformation()
	{
		try                                                                                          
		( Statement statement=jdbcConnection.getConnection().createStatement(); )
		{
			String sql="select * from book_information where 书名='"+bookName+"';";                 
			ResultSet set=statement.executeQuery(sql);
			
			if(set.next())                                                            //搜索不到这种书的信息,退出系统
			{
				Integer number=set.getInt("数量")-1;
				String sql1="update book_information set 数量="+number+"  where 书名='"+bookName+"';";
				statement.execute(sql1);
				System.out.println(sql1);
				
			}
			else
			{
				System.out.println("没有这种书的记录!");
				System.exit(0);
			}
			
			String sql2="insert into "+zhuYe.zh+zhuYe.pw+"_no_book_information  values('"+bookName+"',now(),"+borrowDay+",now()+interval "+borrowDay+" day);";
			System.out.println(sql2);
            statement.execute(sql2);
			
			
		}
		catch(SQLException e)
		{
			System.out.println("借阅更新书籍时出错!");
			e.printStackTrace();
			System.exit(0);
		}
		
	}
	
	

}

还书部分
自动查询该账户未还书籍显示在列表框中,可以点击对应书籍还书。

package booksystem;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Vector;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.ResultSet;
import javax.swing.*;
/*
 * 还书
 * 
 * 当界面做好后,在还书时若没有查询到书本的信息说明书名输入错误,这里直接退出程序,可以优化为提示输入错误并重新输入书名
 */
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
/*
 * 还书
 * 
 */

@SuppressWarnings("serial")
public class returnBook  extends JFrame
{
	private String bookName;                                                  //书名
	private String borrowTime;                                                //借阅天数
	private JList<String> list;                                                //未还书籍的列表
	private Vector<String> bookSelect;                                         //未还书籍列表,作为JList的参数
	
	//窗口界面初始化
	public returnBook()
	{
		super();
		bookSelect=new Vector<String>();
		findBook(zhuYe.zh,zhuYe.pw);                  //初始化bookSelect作为JList的内容参数
		
        Font font=new Font("宋体",0,20);
		
		list=new JList<String>();                                                    
		list.setPreferredSize(new Dimension(200, 100));
		list.setListData(bookSelect);
		list.setFont(font);
		list.addListSelectionListener(new ListSelectionListener()
				{

					@Override
					public void valueChanged(ListSelectionEvent arg0) 
					{
						 String[] tempt=list.getSelectedValue().split(">>");                //将用户选中的书名和借书时间分开存放
						 
						 if(tempt[0]!=null)                                                 //判断字符串处理是否有异常,有异常则退出程序
						 {
						    bookName=tempt[0];
						 }
						 else
						 {
							 System.out.println("书名为空!");
							 System.exit(0);
						 }
						 
						 if(tempt[1]!=null)
						 {
						    borrowTime=tempt[1];
						 }
						 else
						 {
							 System.out.println("借书时间为空!");
							 System.exit(0);
						 }
						 
						 System.out.println(bookName+borrowTime);
						 
					}
			
			
				});
		
		JScrollPane scroll=new JScrollPane(list,ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS ,ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
		scroll.setBounds(100,150,800,500);
		

		JButton button1=new JButton("归还");                                            //点击按钮,归还书籍
		button1.setBounds(400,670,70,35);
		button1.addActionListener(new ActionListener()
		
				{

					@Override
					public void actionPerformed(ActionEvent arg0) {
						if(bookName!=null)                                           
						updateNumber();
						//list.repaint();                              //想要再归还书籍后刷新页面,不成功
						
					}
			
				});
        
        setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        setSize(1000,800);
		setLocation(400,200);
		setLayout(null);
		setVisible(true);
		add(scroll);
		add(button1);
		
	}
	
	
	
	/*
	 * 在图书馆总图书目录中更新书籍的数量
	 * 然后在个人借阅未还记录中删除记录,再在个人已还记录中插入记录
	 * 
	 */
	
	private void updateNumber()
	{
		try(
		Statement statement=jdbcConnection.getConnection().createStatement();               //直接调用函数连接数据库              	
				)
		{
			String sql1="select * from book_information where 书名='"+bookName+"';";           //这里的数量和书名有待检查修改
			System.out.println(sql1);
			ResultSet set=statement.executeQuery(sql1);
			
			if(set.next())                                                            //搜索不到这种书的信息,退出系统
			{
				Integer number=set.getInt("数量")+1;
				String sql2="update book_information set 数量="+number+"  where 书名='"+bookName+"';";
				statement.execute(sql2);
				System.out.println(sql2);
				
			}
			else
			{
				System.out.println("没有这种书的记录!");
				System.exit(0);
			}
			
			
			
			String sql="select * from "+zhuYe.zh+zhuYe.pw+"_no_book_information  where 书名='"+bookName+"' and 借书时间='"+borrowTime+"';";
			ResultSet set1=statement.executeQuery(sql);
			
			if(set1.next())
			{
			String sql3="insert into "+zhuYe.zh+zhuYe.pw+"_already_book_information values('"+set1.getString("书名")+"','"+set1.getString("借书时间")+"',"+set1.getString("借阅天数")+",'"+set1.getString("应还时间")+"',"+"now());";
			System.out.println(sql3);
			statement.execute(sql3);
			
			String sql4="delete from "+zhuYe.zh+zhuYe.pw+"_no_book_information where 书名='"+bookName+"' and 借书时间='"+borrowTime+"';";
			System.out.println(sql4);
			statement.execute(sql4);
			
			}
			else
			{
				System.out.println(zhuYe.zh+"没有这种书的借阅记录!");
				System.exit(0);
			}
													
			
		}
		catch(SQLException g)
		{
			System.out.println("更新数据时出错!");
			g.printStackTrace();
			System.exit(0);
			
		}
		
	}
	
	private void findBook(String zh,String pw)                                 //从数据库中搜索表返回未归还书名初始化bookSelect
	{
		try
		(  Statement statement1=jdbcConnection.getConnection().createStatement();     )
		{
			String sql5="select * from "+zh+pw+"_no_book_information;";
			ResultSet returnSet=statement1.executeQuery(sql5);
			
				
			while(returnSet.next())
			{
				String name=returnSet.getString("书名")+">>"+returnSet.getString("借书时间");                //显示书名和借书时间,这样允许不同时间借同一本书
				
				bookSelect.add(name);
			}
			
			if(bookSelect.size()==0)                                   //如果没有借阅记录
			{
				bookSelect.add("暂无借阅记录!");
			}
			
			
		}
		catch(SQLException e)
		{
			System.out.println("还书搜索未还书籍出错!");
			e.printStackTrace();
			System.exit(0);
		}
	}
	
	
	
}

查询部分
查询个人账号的未还书籍具体信息,显示在表格中。

package booksystem;
import java.awt.*;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Vector;
import javax.swing.*;

/*
 * 
 * 查询还未归还的书籍
 */
@SuppressWarnings("serial")
public class findNoReturnBook extends JFrame  
{

	private Vector<Vector<String>> rowData;
	
	public findNoReturnBook()
	{
		super();
		rowData=new Vector<Vector<String>>();
		Vector<String> columnNames=new Vector<String>();
		columnNames.add("书名");
		columnNames.add("借书时间");
		columnNames.add("借阅天数");
		columnNames.add("应还时间");
		findBook();                                                                      //初始化rowData
		
		JTable table=new JTable(rowData,columnNames);
		JScrollPane pane=new JScrollPane(table);
		table.setPreferredScrollableViewportSize(new Dimension(400, 300));
		
		setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
		setSize(800,600);
		setLayout(new BorderLayout());
		add(pane,BorderLayout.CENTER);
		setLocation(500,200);
		setVisible(true);
		
		
		
	}
	
	
	
	private void findBook()                               //查询数据,并用容器收集起来
	{
		try(
		Statement statement=jdbcConnection.getConnection().createStatement();
		)
		{
			String sql="select * from "+zhuYe.zh+zhuYe.pw+"_no_book_information;";
			ResultSet result=statement.executeQuery(sql);
			
			while(result.next())
			{
				Vector<String> tempt=new Vector<String>();
				tempt.add(result.getString("书名"));
				tempt.add(result.getString("借书时间"));
				tempt.add(result.getString("借阅天数"));
				tempt.add(result.getString("应还时间"));
				
				if(tempt!=null)
				rowData.add(tempt);
			}
			
			if(rowData==null)
			{
				Vector<String> tempt=new Vector<String>();
				tempt.add("暂无借阅数据");
				rowData.add(tempt);
			}
			
			
		}
		catch(SQLException |NullPointerException a)
		{
			System.out.println("查询数据出错!");
			a.printStackTrace();
			System.exit(0);
			
		}
	}
	
	
	
	

}

总结:
1).swing的界面设计很不熟练。(个人也觉得用这个工具包设计界面很是麻烦)
2).做项目的过程将界面和功能的实现混在一起,不利于后期的修改。

  • 13
    点赞
  • 80
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值