J2SE图书管理系统(4)——图书类别添加功能

本文介绍了一个图书类别管理系统的实现过程,涵盖了实体层、数据访问层、工具类和视图层的详细设计。系统通过Java实现了图书类别的添加、重置等功能,确保数据的有效性和完整性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.实体层:com.java.model;

首先在实体层model里面添加图书类别BookType的实体信息,包括get set方法和构造方法:

package com.java.model;

/**
 * 图书类别实体
 * @author 
 *
 */
public class BookType {
	
	//编号
	private int id;
	//图书类别名称
	private String bookTypeName;
	//图书类别描述
	private String bookTypeDesc;
	
	public BookType() {
		super();
		// TODO Auto-generated constructor stub
	}
	
	public BookType(String bookTypeName, String bookTypeDesc) {
		super();
		this.bookTypeName = bookTypeName;
		this.bookTypeDesc = bookTypeDesc;
	}
	
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getBookTypeName() {
		return bookTypeName;
	}
	public void setBookTypeName(String bookTypeName) {
		this.bookTypeName = bookTypeName;
	}
	public String getBookTypeDesc() {
		return bookTypeDesc;
	}
	public void setBookTypeDesc(String bookTypeDesc) {
		this.bookTypeDesc = bookTypeDesc;
	}
	
	
}

 

2.数据访问层:com.java.dao; 

我们先在数据库db_book里面新建一个t_bookType表,存储了图书类别的数据: 

在数据访问层Dao里面新建图书类别的数据访问类BookTypeDao,主要包含了添加图书类别的信息:

package com.java.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import com.java.model.BookType;

/**
 * 图书类别Dao
 * @author 
 *
 */
public class BookTypeDao {

	public int add_Book(Connection con,BookType bookType) throws Exception{
		String sql="insert into BookType values(null,?,?)";
		PreparedStatement pstmt=con.prepareStatement(sql);
		pstmt.setString(1, bookType.getBookTypeName());
		pstmt.setString(2, bookType.getBookTypeDesc());
		//返回操作的结果
		return pstmt.executeUpdate();
	}
}

 

3.工具类:com.java.util;

在工具类里面写上一个判断字符串是否为空的StringUtil类:

package com.java.util;

public class StringUtil {

	/**
	 * 判断是否为空
	 * 
	 * @param str
	 * @return
	 */
	public static boolean isEmpty(String str) {
		if (str == null || "".equals(str.trim())) {
			return true;
		} else {
			return false;
		}
	}

	/**
	 * 判断是否不是空
	 */
	public static boolean isNotEmpty(String str) {
		//注意这里的逻辑判断条件
		if (str != null && !"".equals(str.trim())) {
			return true;
		} else {
			return false;
		}
	}
}

 

 4.视图层:com.java.view;

首先图书类别添加的窗体也是一个内部窗体,我们在view里面新建一个BookType_add_InterFrm类:

右键点击view包->new->Other->WindowBuilder->Swing Designer->JInternalFrame类;

建好之后在Designer上添加一些控件:

这里都是一些基本的控件和按钮,图标可以用我们之前的images包里面导入的图标;

给JTextField框进行重命名,命名为:bookTypeName_Txt;

给JTextArea框进行重命名,命名为:  bookTypeDesc_Txt;

控件功能代码:

(1) 首先是重置按钮功能:

右键重置按钮->Add event handler->action->actionPerformed;

系统会自动在Source里面生成对应的方法:

这里我们在actionPerformed()方法里面写一个resetValueActionPerformed(e)方法,

将实现重置的代码写在这个方法里面,并将方法的定义写在系统自动生成的actionPerformed()方法的外部;

用文本自带的setText方法将框里面的内容设置为空!这样就可以了;  

(2)添加功能按钮:

右键添加按钮->Add event handler->action->actionPerformed;

系统会自动在Source里面生成对应的方法:

这里我们在actionPerformed()方法里面写一个bookTypeAddActionPerformed(e)方法,

将实现重置的代码写在这个方法里面,并将方法的定义写在系统自动生成的actionPerformed()方法的外部;

//添加事件处理
	private void bookTypeAddActionPerformed(ActionEvent evt) {
		
		//从界面获取用户填的图书类别名称和图书类别描述信息
		String bookTypeName=this.bookTypeName_Txt.getText();
		String bookTypeDesc=this.bookTypeDesc_Txt.getText();
		//判断图书类别名称是否为空
		if(StringUtil.isEmpty(bookTypeName)){
			JOptionPane.showMessageDialog(null, "图书类别名称不能为空!");
			return;
		}
		
		//进行数据库连接
		BookType bookType=new BookType(bookTypeName,bookTypeDesc);
		Connection con=null;
		try {
			con=dbUtil.getCon();//首先连接数据库
			int result=bookTypeDao.add_Book(con,bookType);//返回的是Int类型,表示执行了几条数据
			if(result==1){
				JOptionPane.showMessageDialog(null, "图书类别添加成功!");
				resetValue();//添加成功后要立即将框中内容重置
			}else{
				JOptionPane.showMessageDialog(null, "图书类别添加失败!");
			}
		} catch (Exception e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}finally{
				try {
					dbUtil.close(con);//最后要关闭数据库连接
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
		}
	}

(3)测试环节:

我们可以去看数据库表中t_booktype的数据:

 

可以看到图书类别数据添加成功! 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值