简易图书管理系统(windowBuilder插件实现)

成品图

在这里插入图片描述在这里插入图片描述
项目环境:eclipse +java1.8.0.121+mysql8
主要使用MVC结构
项目结构截图
在这里插入图片描述
model封装图书类别和图书的实体类
dao封装操作数据库 和用户登录的操作类
view封装每一个界面的类
util封装数据库连接操作

包结构截图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
贴一下 主要操作数据库的Dao类操作 方便以后查看

图书Dao类

package com.java1234.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

import com.java1234.model.Book;
import com.java1234.model.BookType;
import com.java1234.util.StringUtil;

/**
 * 图书Dao类
 * @author Administrator
 *
 */
public class BookDao {
	public int addBook(Connection conn,Book book)throws Exception {
		String sql="insert into t_book values(null,?,?,?,?,?,?)";
		PreparedStatement pstmt=conn.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();
		
	}
	/**
	 * 查询图书
	 * @param conn
	 * @param book
	 * @return
	 */
	public ResultSet list(Connection conn,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());
		}
		System.out.println("sql:"+sb.toString());
		PreparedStatement pstmt=conn.prepareStatement(sb.toString());
		return pstmt.executeQuery();
	}
	/**
	 * 删除记录
	 * @param conn
	 * @param book
	 * @return
	 */
	public int delete(Connection conn,String id)throws Exception {
		String sql="delete from t_book where id=?";
		PreparedStatement pstmt=conn.prepareStatement(sql);
		pstmt.setString(1, id);
		return pstmt.executeUpdate();
		
	}
	
	/**
	 * 更新图书信息
	 * @param conn
	 * @param bookType
	 * @return
	 * @throws Exception
	 */
	public int update(Connection conn,Book book) throws Exception{
		String sql="update t_book set bookName=?,sex=?,price=?,author=?,bookTypeId=?,bookDesc=? where id=?";
		PreparedStatement pstmt=conn.prepareStatement(sql);
		pstmt.setString(1,book.getBookName());
		pstmt.setString(2, book.getSex());
		pstmt.setFloat(3, book.getPrice());
		pstmt.setString(4, book.getAuthor());
		
		
		pstmt.setInt(5, book.getBookTypeId());
		pstmt.setString(6, book.getBookDesc());
		pstmt.setInt(7, book.getId());
		return pstmt.executeUpdate();
}
}

图书类别Dao

package com.java1234.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

import com.java1234.model.BookType;
import com.java1234.util.StringUtil;

/**
 * 图书类别Dao类
 * @author Administrator
 *
 */
public class BookTypeDao {
	/**
	 * 图书类别添加
	 * @param conn
	 * @param booktype
	 * @return
	 * @throws Exception
	 */
	public int add(Connection conn,BookType booktype) throws Exception{
		String sql="insert into t_bookType values(null,?,?)";
		PreparedStatement pstmt=conn.prepareStatement(sql);
		pstmt.setString(1, booktype.getBookTypeName());
		pstmt.setString(2, booktype.getBookTypeDesc());
		return pstmt.executeUpdate();
		
	}
	/**
	 * 查询图书类别集合
	 * @param conn
	 * @param bookTypeDao
	 * @return
	 */
	public ResultSet list(Connection conn,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=conn.prepareStatement(sb.toString().replace("and", "where"));
		
		return pstmt.executeQuery();
		
	}
	/**
	 * 删除图书类别
	 * @param conn
	 * @param id
	 * @return
	 * @throws Exception
	 */
	public int delete(Connection conn,String id) throws Exception{
		String sql="delete from t_bookType where id=?";
		PreparedStatement pstmt=conn.prepareStatement(sql);
		pstmt.setString(1, id);
		return pstmt.executeUpdate();
	}
	/**
	 * 更新图书类别
	 * @param conn
	 * @param bookType
	 * @return
	 * @throws Exception
	 */
	public int update(Connection conn,BookType bookType) throws Exception{
		String sql="update t_bookType set bookTypeName=?,bookTypeDesc=? where id=?";
		PreparedStatement pstmt=conn.prepareStatement(sql);
		pstmt.setString(1,bookType.getBookTypeName());
		pstmt.setString(2, bookType.getBookTypeDesc());
		pstmt.setInt(3, bookType.getId());
		return pstmt.executeUpdate();
	}
}

UserDao类

package com.java1234.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

import com.java1234.model.User;

/**
 * 用户Dao类
 * @author Administrator
 *
 */
public class UserDao {
	/**
	 * 登陆验证
	 * 
	 * @param conn
	 * @param user
	 * @return
	 * @throws Exception
	 */
	public User login(Connection conn,User user) throws Exception{
		User resultUser=null;
		String sql="select * from t_user where userName=? and password=?";
		PreparedStatement pstmt=conn.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;
	}
}

项目主要练习操作sql的增删改查 和一些常用的windowBuilder组件的使用
项目地址.

  • 2
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Eclipse中的WindowBuilder插件是一个用于创建GUI界面的工具。它可以帮助开发人员快速创建和编辑Swing、SWT和JavaFX应用程序的用户界面。WindowBuilder插件提供了一个可视化的界面设计器,使开发人员可以通过拖放和调整控件的方式来创建GUI界面。此外,WindowBuilder还提供了一些代码生成工具,可以自动生成GUI界面的代码,从而加快开发速度。总之,WindowBuilder插件是一个非常实用的工具,可以帮助开发人员更快速、更高效地创建GUI界面。 ### 回答2: WindowBuilder是一个用于创建GUI(图形用户界面)的插件,可以在Eclipse开发环境中使用。基本上,WindowBuilder的作用就是让GUI设计变得更加容易和直观,从而让开发者能够更快速地创建出高品质的图形化应用程序。 WindowBuilder插件支持多种GUI工具包, 包括Android、Swing、SWT、GWT和RCP,以及其他一些GUI工具包。其中,Swing和SWT的支持比较成熟,而且在运行时,WindowBuilder插件利用国际标准XML格式保存所有GUI设置,以便开发者可以更方便地在不同平台和操作系统上进行移植和打包工作。 WindowBuilder插件的主要功能包括设计和编辑GUI、代码自动生成、可视化预览和调试等。你只需要简单地拖拽、放置、设计和排列GUI元素,然后插入业务逻辑代码,WindowBuilder就可以自动生成对应的代码。 另外,WindowBuilder也支持插件扩展,你可以自己编写代码生成器来支持特定的组件,比如自定义的UI控件和布局管理器等。 总之,WindowBuilder插件是一个非常方便的GUI开发工具,它可以显著地提高开发效率,简化开发工作流程,同时也可以提高代码的可维护性和可读性,帮助开发者更高效地构建出高品质的GUI应用程序。 ### 回答3: Eclipse是一款功能强大、灵活易用且开放源代码的集成开发环境,为Java开发者提供了丰富的插件和工具来提高代码质量和开发效率。而WindowBuilder插件则是Eclipse中非常实用的一个插件,可以帮助Java开发者更快、更方便地构建用户界面。 WindowBuilder插件可以帮助Java开发者通过可视化界面编辑器快速创建和编辑Swing、SWT和GWT等Java用户界面。它支持多种布局模式、组件和Swing样式,并提供了许多便捷的快捷键和操作,大大提高了开发效率和代码质量。 使用WindowBuilder,Java开发者可以在Eclipse中创建Swing、SWT或GWT的Java Class,并通过视图模式或源代码模式来编辑和设计用户界面。WindowBuilder提供了丰富的可视化设计器,包括GridBagLayout、FlowLayout、BorderLayout,以及其他自定义布局,使得Java开发者可以选择最适合自己的布局方式来设计用户界面。 同时,WindowBuilder还支持对代码的自动生成和导入,可以快速生成Java代码,减少手写代码的工作量,大大提高了开发效率。此外,WindowBuilder还支持各种界面控件的拖放和重置大小等操作,可以让Java开发者更快捷地创建出完美的用户界面。 总之,WindowBuilder插件是Java开发者必备的一个插件,它可以帮助Java开发者更快速、更高效地构建用户界面,提高开发效率和代码质量。同时,凭借其强大的可视化编辑功能,使得Java开发者可以更轻松地实现各种布局模式和交互效果,让Java开发变得更加快捷、高效和灵活。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值