7、图书添加功能

1、新建图书信息表t_book

在这里插入图片描述

添加外键,t_book的bookTypeId外键关联于t_bookType的主键id
在这里插入图片描述

2、新建Book的实体

public class Book {
	private int id;//编号
	private String bookName;//图书名称
	private String author;//作者
	private String sex;//性别
	private Float price;//价格
	private Integer bookTypeId;//图书类别Id
	private String bookTypeName;//图书类别名称
	private String bookDesc;//描述
	

	
	public Book(String bookName, String author, String sex, Float price, Integer bookTypeId, String bookDesc) {
		super();
		this.bookName = bookName;
		this.author = author;
		this.sex = sex;
		this.price = price;
		this.bookTypeId = bookTypeId;
		this.bookDesc = bookDesc;
	}
	public Book(int id, String bookName, String author, Float price, Integer bookTypeId, String bookTypeName,
			String bookDesc) {
		super();
		this.id = id;
		this.bookName = bookName;
		this.author = author;
		this.price = price;
		this.bookTypeId = bookTypeId;
		this.bookTypeName = bookTypeName;
		this.bookDesc = bookDesc;
	}
	public Book() {
		super();
		// TODO Auto-generated constructor stub
	}
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getBookName() {
		return bookName;
	}
	public void setBookName(String bookName) {
		this.bookName = bookName;
	}
	public String getAuthor() {
		return author;
	}
	public void setAuthor(String author) {
		this.author = author;
	}
	public Float getPrice() {
		return price;
	}
	public void setPrice(Float price) {
		this.price = price;
	}
	public Integer getBookTypeId() {
		return bookTypeId;
	}
	public void setBookTypeId(Integer bookTypeId) {
		this.bookTypeId = bookTypeId;
	}
	public String getBookTypeName() {
		return bookTypeName;
	}
	public void setBookTypeName(String bookTypeName) {
		this.bookTypeName = bookTypeName;
	}
	public String getBookDesc() {
		return bookDesc;
	}
	public void setBookDesc(String bookDesc) {
		this.bookDesc = bookDesc;
	}
	public String getSex() {
		return sex;
	}
	public void setSex(String sex) {
		this.sex = sex;
	}
	
	
	
}


3、新建book的数据操作Dao类,BookDao.java

/**
 * 图书Dao类
 * @author Administrator
 *
 */
public class BookDao {

	/**
	 * 图书添加
	 * @param con
	 * @param book
	 * @return
	 * @throws Exception 
	 */
	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();
		
	}
}

4、新建图书添加界面BookAddInterFrm.java

在这里插入图片描述
修改布局:
在这里插入图片描述

添加JLabel,JTextField,JRadioButton,JTextArea,JButton组件
在这里插入图片描述
重命名组件名称
在这里插入图片描述

5、新建“图书管理-添加”事件

在这里插入图片描述

public void actionPerformed(ActionEvent e) {
	BookAddInterFrm bookAddInterFrm=new BookAddInterFrm();
	bookAddInterFrm.setVisible(true);
	table.add(bookAddInterFrm);
}

6、封装一个方法,把图书类别的数据写入进去

/**
	 * 初始化图书类别下拉框
	 */
	private void fillBookType(){
		Connection con=null;
		BookType bookType=null;
		try{
			con=dbUtil.getCon();
			ResultSet rs=bookTypeDao.list(con, new BookType());
			while(rs.next()){
				bookType=new BookType();
				bookType.setId(rs.getInt("id"));
				bookType.setBookTypeName(rs.getString("bookTypeName"));
				this.bookTypeJcb.addItem(bookType);
			}
		}catch(Exception e){
			e.printStackTrace();
		}finally{
			try {
				dbUtil.close(con);
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}

调用方法

fillBookType();

在BookType.java里添加重写toString的代码,不然显示如图
在这里插入图片描述

@Override
	public String toString() {
		return bookTypeName;
	}
	

7、实现添加功能

给添加按钮添加事件

public void actionPerformed(ActionEvent e) {
	BookAddActionPerformed(e);
}
			

新建重置表单方法

/**
	 * 重置表单
	 */
	private void resetValue() {
		this.bookNameTxt.setText("");
		this.authorTxt.setText("");
		this.priceTxt.setText("");
		this.manJrb.setSelected(true);
		this.bookDescTxt.setText("");
		if(this.bookTypeJcb.getItemCount()>0){
			this.bookTypeJcb.setSelectedIndex(0);
		}
	}
/**
 * 图书添加事件处理
 * @param e
 */
private void BookAddActionPerformed(ActionEvent evt) {
	String bookName=this.bookNameTxt.getText();
	String author=this.authorTxt.getText();
	String price=this.priceTxt.getText();
	String bookDesc=this.bookDescTxt.getText();
	
	if(StringUtil.isEmpty(bookName)){
		JOptionPane.showMessageDialog(null, "图书名称为空!");
		return;
	}
	if(StringUtil.isEmpty(author)){
		JOptionPane.showMessageDialog(null, "作者为空!");
		return;
	}
	if(StringUtil.isEmpty(price)){
		JOptionPane.showMessageDialog(null, "价格为空!");
		return;
	}
	
	String sex="";
	if(manJrb.isSelected()){//如果选择男
		sex="男";
	}else if(femaleJrb.isSelected()){
		sex="女";
	}
	
	BookType bookType=(BookType)bookTypeJcb.getSelectedItem();
	int bookTypeId=bookType.getId();
	Book book=new Book(bookName,author,sex,Float.parseFloat(price),bookTypeId,bookDesc);
	
	Connection con=null;
	try{
		con=dbUtil.getCon();
		int addNum=bookDao.add(con, book);
		if(addNum==1){
			JOptionPane.showMessageDialog(null, "添加成功");
			resetValue();
		}else{
			JOptionPane.showMessageDialog(null, "添加失败");
		}
	}catch(Exception e){
		e.printStackTrace();
		JOptionPane.showMessageDialog(null, "添加失败");
	}finally{
		try {
			dbUtil.close(con);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}

8、实现重置功能
新建重置按钮事件

public void actionPerformed(ActionEvent e) {
	resetValueActionPerformed(e);
}
/**
 * 重置事件处理
 * @param e
 */
private void resetValueActionPerformed(ActionEvent evt) {
	this.resetValue();
	
}

在这里插入图片描述
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值