用户登录界面
当用户进入系统时,图书管理员根据自己的身份信息,输入具有唯一标识的用户名和密码,进行登陆;若输入出现错误,可清空数据,重新进行输入。
登录界面
具体功能实现代码:
public class UserDao {
public User login(Connection con,User user)throws Exception{
User resultUser=null;
String sql="select * from t_user where userName=? and password=?";
PreparedStatement pstmt=con.prepareStatement(sql);
pstmt.setString(1, user.getUserName());
pstmt.setString(2, user.getPassword());
ResultSet rs=pstmt.executeQuery();
if(rs.next()){
resultUser=new User();
resultUser.setId(rs.getInt("id"));
resultUser.setUserName(rs.getString("userName"));
resultUser.setPassword(rs.getString("password"));
}
return resultUser;
}
图书类别管理界面包括对图书类别的添加与维护功能,为了页面的简洁性与操作的便利性,将图书类别的查询、修改与删除操作统一放在了维护功能内。在图书类别添加界面,在添加完类别与类别的简单描述之后,数据库将通过insert语句,完成对图书类别的添加;在维护功能页面,数据库将通过select语句、update语句、delete语句分别对图书类别进行查询、修改、删除操作
图书类别维护界面
具体功能实现代码:
public class BookTypeDao {
public int add(Connection con,BookType bookType)throws Exception{
String sql="insert into t_bookType values(null,?,?)";
PreparedStatement pstmt=con.prepareStatement(sql);
pstmt.setString(1, bookType.getBookTypeName());
pstmt.setString(2, bookType.getBookTypeDesc());
return pstmt.executeUpdate();
}
public ResultSet list(Connection con,BookType bookType)throws Exception{
StringBuffer sb=new StringBuffer("select * from t_bookType");
if(StringUtil.isNotEmpty(bookType.getBookTypeName())){
sb.append(" and bookTypeName like '%"+bookType.getBookTypeName()+"%'");
}
PreparedStatement pstmt=con.prepareStatement(sb.toString().replaceFirst("and", "where"));
return pstmt.executeQuery();
}
public int delete(Connection con,String id)throws Exception{
String sql="delete from t_bookType where id=?";
PreparedStatement pstmt=con.prepareStatement(sql);
pstmt.setString(1, id);
return pstmt.executeUpdate();
}
public int update(Connection con,BookType bookType)throws Exception{
String sql="update t_bookType set bookTypeName=?,bookTypeDesc=? where id=?";
PreparedStatement pstmt=con.prepareStatement(sql);
pstmt.setString(1, bookType.getBookTypeName());
pstmt.setString(2, bookType.getBookTypeDesc());
pstmt.setInt(3, bookType.getId());
return pstmt.executeUpdate();
}
}
图书信息管理界面
图书信息管理界面包括对图书信息的添加与维护功能,为了页面的简洁性与操作的便利性,将图书信息的查询、修改与删除操作统一放在了维护功能内。在图书信息添加界面,在添加完图书的名称、作者、价格等信息后,数据库将通过insert语句,完成对图书信息的添加;在维护功能页面,数据库将通过select语句、update语句、delete语句分别对图书信息进行查询、修改、删除操作。
具体功能实现代码:
public class BookDao {
public int add(Connection con,Book book)throws Exception{
String sql="insert into t_book values(null,?,?,?,?,?,?)";
PreparedStatement pstmt=con.prepareStatement(sql);
pstmt.setString(1, book.getBookName());
pstmt.setString(2, book.getAuthor());
pstmt.setString(3, book.getSex());
pstmt.setFloat(4, book.getPrice());
pstmt.setInt(5, book.getBookTypeId());
pstmt.setString(6, book.getBookDesc());
return pstmt.executeUpdate();
}
public ResultSet list(Connection con,Book book)throws Exception{
StringBuffer sb=new StringBuffer("select * from t_book b,t_bookType bt where b.bookTypeId=bt.id");
if(StringUtil.isNotEmpty(book.getBookName())){
sb.append(" and b.bookName like '%"+book.getBookName()+"%'");
}
if(StringUtil.isNotEmpty(book.getAuthor())){
sb.append(" and b.author like '%"+book.getAuthor()+"%'");
}
if(book.getBookTypeId()!=null && book.getBookTypeId()!=-1){
sb.append(" and b.bookTypeId="+book.getBookTypeId());
}
PreparedStatement pstmt=con.prepareStatement(sb.toString());
return pstmt.executeQuery();
}
public int delete(Connection con,String id)throws Exception{
String sql="delete from t_book where id=?";
PreparedStatement pstmt=con.prepareStatement(sql);
pstmt.setString(1, id);
return pstmt.executeUpdate();
}
public int update(Connection con,Book book)throws Exception{
String sql="update t_book set bookName=?,author=?,sex=?,price=?,bookDesc=?,bookTypeId=? where id=?";
PreparedStatement pstmt=con.prepareStatement(sql);
pstmt.setString(1, book.getBookName());
pstmt.setString(2, book.getAuthor());
pstmt.setString(3, book.getSex());
pstmt.setFloat(4, book.getPrice());
pstmt.setString(5, book.getBookDesc());
pstmt.setInt(6, book.getBookTypeId());
pstmt.setInt(7, book.getId());
return pstmt.executeUpdate();
}
}
功能界面实现原理
系统整体使用swing框架,若要主界面添加菜单,则需要添加菜单空间menu和标签控件lable,然后在init方法内设置各项属性即可;若要在原窗体内添加对象,则需先在init方法里添加所需控件,然后实例化对象,最后用代码设置各项属性;若要添加一个弹出式窗体,则先需将菜单项做好,加入一个监听事件处理器,被弹出窗体要以新建源文件的形式编写(新建Java类),并添加一个事件处理方法,然后在构造方法里调用动态加载的init方法,,再在这个动态加载方法里添加要显示的内容即可。
数据库实现
系统与数据库的成功连接和搭建,是该系统能够顺利实现其各个模块功能的重要环节,这个环节中利用Sqlyog建立连接并新建用户表、图书类别管理表、图书信息管理表后,再通过使用JDBC等各项技术,实现了系统与数据库的连接,具体代码如下:
public class DbUtil {
private String dbUrl="";
private String dbUse |