本课程设计基于MySQL数据库和Java语言开发一套学生管理系统,涵盖用户界面设计、数据存储及查询功能实现等内容。
```java
package com.java.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import com.java.model.Book;
import com.java.util.StringUtil;
/**
* 图书Dao类
*/
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();
}
/**
* 查询图书信息
*
* @param con 数据库连接对象
* @param book 图书查询条件对象,可能包含书名、作者和类别ID等属性值
* @return 包含匹配的图书记录的结果集
* @throws Exception 可能抛出的异常
*/
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 %).append(book.getBookName()).append(%);
}
if (StringUtil.isNotEmpty(book.getAuthor())) {
sb.append( and b.author like %).append(book.getAuthor()).append(%);
}
if (book.getBookTypeId() != null && book.getBookTypeId() != -1) {
sb.append( and b.bookTypeId=).append(book.getBookTypeId());
}
PreparedStatement pstmt = con.prepareStatement(sb.toString());
return pstmt.executeQuery();
}
/**
* 删除图书信息
*
* @param con 数据库连接对象
* @param id 要删除的图书ID
* @return 影响行数,表示操作是否成功
* @throws Exception 可能抛出的异常
*/
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();
}
/**
* 修改图书信息
*
* @param con 数据库连接对象
* @param book 包含要更新的字段和值的图书对象
* @return 影响行数,表示操作是否成功
* @throws Exception 可能抛出的异常
*/
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();
}
/**
* 检查指定图书类别下是否存在图书
*
* @param con 数据库连接对象
* @param bookTypeId 要检查的图书类别的ID值
* @return 如果存在则返回true,否则false。
* @throws Exception 可能抛出的异常
*/
public boolean existBookByBookTypeId(Connection con, String bookTypeId) throws Exception {
String sql = select * from t_book where bookTypeId=?;
PreparedStatement pstmt = con.prepareStatement(sql);
pstmt.setString(1, bookTypeId);
ResultSet rs = pstmt.executeQuery();
return rs.next();
}
}
```