IDEA使用jdbc实现图书管理系统(四)

1.昨天我们完成了Dao层的操作,今天我们来构建Service层 。

        首先,还是让我们来明白一下Service层的作用:Service层是通过UI层传递的数据来调用Dao层的方法。简而言之:就是说Service层只有一句话,写方法,返回结果

        来看代码:

这里以我的Books表为例子,大家别忘记还有一个User表的Service层。当然,我这个截图并不完整,在BookDao层里边还有一个方法getall,这里没有展示出来。

User表中的Dao层可以根据需要来选择对数据库进行的操作,所以Service层也就只有Dao层的那些方法就行了。

以下是使用IntelliJ IDEA连接数据库实现资料室图书管理系统的步骤: 1.在IntelliJ IDEA中创建一个Java项目,并添加所需的依赖库。 2.在项目中创建一个Java类,用于连接数据库。可以使用JDBC连接MySQL数据库,代码如下: ```java import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class DBUtil { private static final String URL = "jdbc:mysql://localhost:3306/library?useSSL=false&serverTimezone=UTC"; private static final String USER = "root"; private static final String PASSWORD = "123456"; public static Connection getConnection() { Connection conn = null; try { Class.forName("com.mysql.cj.jdbc.Driver"); conn = DriverManager.getConnection(URL, USER, PASSWORD); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } return conn; } } ``` 3.在项目中创建一个Java类,用于实现图书管理系统的功能。可以使用JDBC连接数据库,实现增删改查等操作,代码如下: ```java import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class BookDao { public void addBook(Book book) { Connection conn = null; PreparedStatement pstmt = null; try { conn = DBUtil.getConnection(); String sql = "insert into book(name, author, price) values(?, ?, ?)"; pstmt = conn.prepareStatement(sql); pstmt.setString(1, book.getName()); pstmt.setString(2, book.getAuthor()); pstmt.setDouble(3, book.getPrice()); pstmt.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } finally { DBUtil.close(conn, pstmt, null); } } public void deleteBook(int id) { Connection conn = null; PreparedStatement pstmt = null; try { conn = DBUtil.getConnection(); String sql = "delete from book where id=?"; pstmt = conn.prepareStatement(sql); pstmt.setInt(1, id); pstmt.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } finally { DBUtil.close(conn, pstmt, null); } } public void updateBook(Book book) { Connection conn = null; PreparedStatement pstmt = null; try { conn = DBUtil.getConnection(); String sql = "update book set name=?, author=?, price=? where id=?"; pstmt = conn.prepareStatement(sql); pstmt.setString(1, book.getName()); pstmt.setString(2, book.getAuthor()); pstmt.setDouble(3, book.getPrice()); pstmt.setInt(4, book.getId()); pstmt.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } finally { DBUtil.close(conn, pstmt, null); } } public Book getBookById(int id) { Connection conn = null; PreparedStatement pstmt = null; ResultSet rs = null; Book book = null; try { conn = DBUtil.getConnection(); String sql = "select * from book where id=?"; pstmt = conn.prepareStatement(sql); pstmt.setInt(1, id); rs = pstmt.executeQuery(); if (rs.next()) { book = new Book(); book.setId(rs.getInt("id")); book.setName(rs.getString("name")); book.setAuthor(rs.getString("author")); book.setPrice(rs.getDouble("price")); } } catch (SQLException e) { e.printStackTrace(); } finally { DBUtil.close(conn, pstmt, rs); } return book; } public List<Book> getAllBooks() { Connection conn = null; PreparedStatement pstmt = null; ResultSet rs = null; List<Book> list = new ArrayList<Book>(); try { conn = DBUtil.getConnection(); String sql = "select * from book"; pstmt = conn.prepareStatement(sql); rs = pstmt.executeQuery(); while (rs.next()) { Book book = new Book(); book.setId(rs.getInt("id")); book.setName(rs.getString("name")); book.setAuthor(rs.getString("author")); book.setPrice(rs.getDouble("price")); list.add(book); } } catch (SQLException e) { e.printStackTrace(); } finally { DBUtil.close(conn, pstmt, rs); } return list; } } ``` 4.在项目中创建一个Java类,用于测试图书管理系统的功能。可以在该类中调用BookDao类中的方法,实现对图书的增删改查等操作,代码如下: ```java public class Test { public static void main(String[] args) { BookDao dao = new BookDao(); // 添加图书 Book book1 = new Book(); book1.setName("Java编程思想"); book1.setAuthor("Bruce Eckel"); book1.setPrice(99.0); dao.addBook(book1); // 修改图书 Book book2 = dao.getBookById(1); book2.setPrice(88.0); dao.updateBook(book2); // 删除图书 dao.deleteBook(2); // 查询所有图书 List<Book> list = dao.getAllBooks(); for (Book book : list) { System.out.println(book); } } } ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值