packagecom.zzuli.dao.impl;importcom.zzuli.dao.BookDao;importcom.zzuli.entity.Book;import java.sql.*;importjava.util.ArrayList;importjava.util.List;/*** Created by hejjon on 2019/5/25.*/
public class BookDaoImpl implementsBookDao {private final String jdbcDriver = "com.mysql.jdbc.Driver";private final String url = "jdbc:mysql://localhost:3306/db_book";private final String userName = "root";private final String password = "123123";
@Overridepublic intinsertBook(Book book) {int n = 0;
String sql= "insert into t_book values (default,?,?,?)";
Connection conn= null;
PreparedStatement ps= null;
java.sql.Date pubDate= null;try{//加载驱动
Class.forName(jdbcDriver);//获取连接
conn =DriverManager.getConnection(url, userName, password);//创建会话
ps =conn.prepareStatement(sql);//设置 ? 的值
ps.setString(1, book.getBookName());
ps.setString(2, book.getAuthor());
pubDate= newjava.sql.Date(book.getPubDate().getTime());
ps.setDate(3, pubDate);//执行sql
n =ps.executeUpdate();
}catch(ClassNotFoundException e) {
e.printStackTrace();
}catch(SQLException e) {
e.printStackTrace();
}finally { //关闭数据库资源
try{if (null !=ps) {
ps.close();
}
}catch(SQLException e) {
e.printStackTrace();
}try{if (null !=conn) {
conn.close();
}
}catch(SQLException e) {
e.printStackTrace();
}
}returnn;
}
@Overridepublic int deleteBook(intid) {
String sql= "delete from t_book where id=?";int n = 0;
Connection conn= null;
PreparedStatement ps= null;try{//加载驱动
Class.forName(jdbcDriver);//获取连接
conn =DriverManager.getConnection(url, userName, password);//创建会话
ps =conn.prepareStatement(sql);//设置 ? 的值
ps.setInt(1, id);//执行sql
n =ps.executeUpdate();
}catch(ClassNotFoundException e) {
e.printStackTrace();
}catch(SQLException e) {
e.printStackTrace();
}finally{try{if (null !=ps) {
ps.close();
}
}catch(SQLException e) {
e.printStackTrace();
}try{if (null !=conn) {
conn.close();
}
}catch(SQLException e) {
e.printStackTrace();
}
}returnn;
}
@Overridepublic intupdateBook(Book book) {
String sql= "update t_book set bookName=?, author=?, pubDate=? where id=?";int n = 0;
Connection conn= null;
PreparedStatement ps= null;try{//加载驱动
Class.forName(jdbcDriver);//获取连接
conn =DriverManager.getConnection(url, userName, password);//创建会话
ps =conn.prepareStatement(sql);
ps.setString(1, book.getBookName());
ps.setString(2, book.getAuthor());
ps.setDate(3, newjava.sql.Date(book.getPubDate().getTime()));
ps.setInt(4, book.getId());
n=ps.executeUpdate();
}catch(ClassNotFoundException e) {
e.printStackTrace();
}catch(SQLException e) {
e.printStackTrace();
}finally{try{if (null !=ps) {
ps.close();
}
}catch(SQLException e) {
e.printStackTrace();
}try{if (null !=conn) {
conn.close();
}
}catch(SQLException e) {
e.printStackTrace();
}
}returnn;
}
@OverridepublicBook selectBookByName(String bookName) {
String sql= "select * from t_book where bookName=?";
Book book= null;
Connection conn= null;
PreparedStatement ps= null;
ResultSet rs= null;try{//加载驱动
Class.forName(jdbcDriver);//获取连接
conn =DriverManager.getConnection(url, userName, password);//创建会话
ps =conn.prepareStatement(sql);
ps.setString(1, bookName);
rs=ps.executeQuery();if(rs.next()) {int id = rs.getInt("id");
String name= rs.getString("bookName");
String author= rs.getString("author");
java.util.Date pubDate= rs.getDate("pubDate");
book= newBook(id, name, author, pubDate);
}
}catch(ClassNotFoundException e) {
e.printStackTrace();
}catch(SQLException e) {
e.printStackTrace();
}finally{try{if (null !=ps) {
ps.close();
}
}catch(SQLException e) {
e.printStackTrace();
}try{if (null !=conn) {
conn.close();
}
}catch(SQLException e) {
e.printStackTrace();
}
}returnbook;
}
@Overridepublic ListselectAllBook() {
String sql= "select * from t_book";
List list = new ArrayList<>();
Connection conn= null;
PreparedStatement ps= null;
ResultSet rs= null;try{//加载驱动
Class.forName(jdbcDriver);//获取连接
conn =DriverManager.getConnection(url, userName, password);//创建会话
ps =conn.prepareStatement(sql);//获取结果集
rs =ps.executeQuery();//遍历结果集
while(rs.next()) {int id = rs.getInt("id");
String bookName= rs.getString("bookName");
String author= rs.getString("author");
Date pubDate= rs.getDate("pubDate");
Book book= newBook(id, bookName, author, pubDate);
list.add(book);
}
}catch(ClassNotFoundException e) {
e.printStackTrace();
}catch(SQLException e) {
e.printStackTrace();
}finally{try{if (null !=ps) {
ps.close();
}
}catch(SQLException e) {
e.printStackTrace();
}try{if (null !=conn) {
conn.close();
}
}catch(SQLException e) {
e.printStackTrace();
}
}returnlist;
}
}
本文介绍了一个基于Java的图书管理系统中DAO层的具体实现细节,包括图书的增删改查操作。通过使用JDBC进行数据库交互,实现了图书信息的高效管理。
966

被折叠的 条评论
为什么被折叠?



