package cn.xh.dao.impl; import cn.xh.dao.ClientDao; import cn.xh.domain.Book; import cn.xh.domain.Category; import cn.xh.domain.Favorite; import cn.xh.domain.User; import cn.xh.util.JDBCUtil; import java.sql.*; import java.util.ArrayList; import java.util.List; public class ClientDaoImpl implements ClientDao { // ??? @Override public User login(String username, String password) { User user = new User(); try { Connection connection = JDBCUtil.getConnection(); PreparedStatement preparedStatement = connection .prepareStatement("select * from user where user_username=? and user_password=?"); preparedStatement.setString(1, username); preparedStatement.setString(2, password); ResultSet executeQuery = preparedStatement.executeQuery(); if (executeQuery.next()) { user.setUsername(executeQuery.getString("user_username")); user.setPassword(executeQuery.getString("user_password")); user.setName(executeQuery.getString("user_name")); user.setSex(executeQuery.getString("user_sex")); user.setTel(executeQuery.getString("user_tel")); user.setAddress(executeQuery.getString("user_address")); user.setId(executeQuery.getString("user_id")); } else { } } catch (Exception e) { } return user; } // ??? @Override public boolean register(User user) { Connection connection = JDBCUtil.getConnection(); try { Statement statement = connection.createStatement(); ResultSet resultSet = statement .executeQuery("select * from user where user_username='" + user.getUsername() + "'"); if (resultSet.next() == true) { return true; } else { try { PreparedStatement preparedStatement = connection.prepareStatement( "insert into user (user_id,user_username,user_password,user_name,user_sex,user_tel,user_address) values(?,?,?,?,?,?,?)"); preparedStatement.setString(1, user.getId()); preparedStatement.setString(2, user.getUsername()); preparedStatement.setString(3, user.getPassword()); preparedStatement.setString(4, user.getName()); preparedStatement.setString(5, user.getSex()); preparedStatement.setString(6, user.getTel()); preparedStatement.setString(7, user.getAddress()); // ?? preparedStatement.executeUpdate(); } catch (Exception e) { e.printStackTrace(); } return false; } } catch (Exception e) { e.printStackTrace(); } return false; } @Override public List<Book> getCategoryBook(String cid) { try { Connection connection = JDBCUtil.getConnection(); PreparedStatement preparedStatement = null; if (cid==null){ preparedStatement= connection.prepareStatement( "select * from bookdb"); }else { preparedStatement = connection.prepareStatement( "select * from bookdb where book_category = (select category_id from category where category_id = '"+cid+"')"); } ResultSet rs = preparedStatement.executeQuery(); List<Book> list = new ArrayList<Book>(); while (rs.next()) { Book books = new Book(); books.setBook_id(rs.getString("book_id")); books.setBook_name(rs.getString("book_name")); books.setBook_author(rs.getString("book_author")); books.setBook_press(rs.getString("book_press")); Category category = findCategoryById(rs.getString("book_category")); books.setCategory(category); books.setFilename(rs.getString("filename")); books.setPath(rs.getString("path")); books.setBook_desc(rs.getString("book_desc")); books.setBook_kunumber(rs.getInt("book_kunumber")); books.setBook_xiaonumber(rs.getInt("book_xiaonumber")); books.setBook_price(rs.getDouble("book_price")); list.add(books); } return list; } catch (Exception e) { e.printStackTrace(); } throw new RuntimeException("?????????"); } // ????鼮????id????鼮?????????? private Category findCategoryById(String book_category) { Category category = new Category(); try { Connection connection = JDBCUtil.getConnection(); PreparedStatement preparedStatement = connection .prepareStatement("select * from category where category_id=?"); preparedStatement.setString(1, book_category); ResultSet resultSet = preparedStatement.executeQuery(); while (resultSet.next()) { category.setCategory_id(resultSet.getString("category_id")); category.setCategory_name(resultSet.getString("category_name")); category.setCategory_desc(resultSet.getString("category_desc")); return category; } } catch (Exception e) { e.printStackTrace(); } throw new RuntimeException(""); } // ??????????鼮?б? @Override public List<Book> rwsk() { try { Connection connection = JDBCUtil.getConnection(); PreparedStatement preparedStatement = connection.prepareStatement( "select * from bookdb where book_category = (select category_id from category where category_name = '???????')"); ResultSet rs = preparedStatement.executeQuery(); List<Book> list = new ArrayList<Book>(); while (rs.next()) { Book books = new Book(); books.setBook_id(rs.getString("book_id")); books.setBook_name(rs.getString("book_name")); books.setBook_author(rs.getString("book_author")); books.setBook_press(rs.getString("book_press")); Category category = findCategoryById(rs.getString("book_category")); books.setCategory(category); books.setFilename(rs.getString("filename")); books.setPath(rs.getString("path")); books.setBook_desc(rs.getString("book_desc")); books.setBook_kunumber(rs.getInt("book_kunumber")); books.setBook_xiaonumber(rs.getInt("book_xiaonumber")); books.setBook_price(rs.getDouble("book_price")); list.add(books); } return list; } catch (Exception e) { e.printStackTrace(); } throw new RuntimeException("?????????"); } // ?????????鼮?б? @Override public List<Book> sets() { try { Connection connection = JDBCUtil.getConnection(); PreparedStatement preparedStatement = connection.prepareStatement( "select * from bookdb where book_category = (select category_id from category where category_name = '??????')"); ResultSet rs = preparedStatement.executeQuery(); List<Book> list = new ArrayList<Book>(); while (rs.next()) { Book books = new Book(); books.setBook_id(rs.getString("book_id")); books.setBook_name(rs.getString("book_name")); books.setBook_author(rs.getString("book_author")); books.setBook_press(rs.getString("book_press")); Category category = findCategoryById(rs.getString("book_category")); books.setCategory(category); books.setFilename(rs.getString("filename")); books.setPath(rs.getString("path")); books.setBook_desc(rs.getString("book_desc")); books.setBook_kunumber(rs.getInt("book_kunumber")); books.setBook_xiaonumber(rs.getInt("book_xiaonumber")); books.setBook_price(rs.getDouble("book_price")); list.add(books); } return list; } catch (Exception e) { e.printStackTrace(); } throw new RuntimeException("?????????"); } // ??????????鼮?б? @Override public List<Book> jjjr() { try { Connection connection = JDBCUtil.getConnection(); PreparedStatement preparedStatement = connection.prepareStatement( "select * from bookdb where book_category = (select category_id from category where category_name = '???????')"); ResultSet rs = preparedStatement.executeQuery(); List<Book> list = new ArrayList<Book>(); while (rs.next()) { Book books = new Book(); books.setBook_id(rs.getString("book_id")); books.setBook_name(rs.getString("book_name")); books.setBook_author(rs.getString("book_author")); books.setBook_press(rs.getString("book_press")); Category category = findCategoryById(rs.getString("book_category")); books.setCategory(category); books.setFilename(rs.getString("filename")); books.setPath(rs.getString("path")); books.setBook_desc(rs.getString("book_desc")); books.setBook_kunumber(rs.getInt("book_kunumber")); books.setBook_xiaonumber(rs.getInt("book_xiaonumber")); books.setBook_price(rs.getDouble("book_price")); list.add(books); } return list; } catch (Exception e) { e.printStackTrace(); } throw new RuntimeException("?????????"); } // ??????????鼮?б? @Override public List<Book> kxjs() { try { Connection connection = JDBCUtil.getConnection(); PreparedStatement preparedStatement = connection.prepareStatement( "select * from bookdb where book_category = (select category_id from category where category_name = '???????')"); ResultSet rs = preparedStatement.executeQuery(); List<Book> list = new ArrayList<Book>(); while (rs.next()) { Book books = new Book(); books.setBook_id(rs.getString("book_id")); books.setBook_name(rs.getString("book_name")); books.setBook_author(rs.getString("book_author")); books.setBook_press(rs.getString("book_press")); Category category = findCategoryById(rs.getString("book_category")); books.setCategory(category); books.setFilename(rs.getString("filename")); books.setPath(rs.getString("path")); books.setBook_desc(rs.getString("book_desc")); books.setBook_kunumber(rs.getInt("book_kunumber")); books.setBook_xiaonumber(rs.getInt("book_xiaonumber")); books.setBook_price(rs.getDouble("book_price")); list.add(books); } return list; } catch (Exception e) { e.printStackTrace(); } throw new RuntimeException("?????????"); } // ???????????鼮?б? @Override public List<Book> jyks() { try { Connection connection = JDBCUtil.getConnection(); PreparedStatement preparedStatement = connection.prepareStatement( "select * from bookdb where book_category = (select category_id from category where category_name = '????????')"); ResultSet rs = preparedStatement.executeQuery(); List<Book> list = new ArrayList<Book>(); while (rs.next()) { Book books = new Book(); books.setBook_id(rs.getString("book_id")); books.setBook_name(rs.getString("book_name")); books.setBook_author(rs.getString("book_author")); books.setBook_press(rs.getString("book_press")); Category category = findCategoryById(rs.getString("book_category")); books.setCategory(category); books.setFilename(rs.getString("filename")); books.setPath(rs.getString("path")); books.setBook_desc(rs.getString("book_desc")); books.setBook_kunumber(rs.getInt("book_kunumber")); books.setBook_xiaonumber(rs.getInt("book_xiaonumber")); books.setBook_price(rs.getDouble("book_price")); list.add(books); } return list; } catch (Exception e) { e.printStackTrace(); } throw new RuntimeException("?????????"); } // ?????????? @Override public void personInformation(User user) { try { Connection connection = JDBCUtil.getConnection(); PreparedStatement prepareStatement = connection.prepareStatement( "update user set user_name=?,user_sex=?,user_tel=?,user_address=? where user_username=?"); prepareStatement.setString(1, user.getName()); prepareStatement.setString(2, user.getSex()); prepareStatement.setString(3, user.getTel()); prepareStatement.setString(4, user.getAddress()); prepareStatement.setString(5, user.getUsername()); prepareStatement.executeUpdate(); } catch (Exception e) { e.printStackTrace(); } } // ??????? @Override public void personPassword(User user) { try { Connection connection = JDBCUtil.getConnection(); PreparedStatement prepareStatement = connection .prepareStatement("update user set user_password=? where user_username=?"); prepareStatement.setString(1, user.getPassword()); prepareStatement.setString(2, user.getUsername()); prepareStatement.executeUpdate(); } catch (Exception e) { e.printStackTrace(); } } // ?????? @Override public List<Book> search(String search) { List<Book> lists = new ArrayList<Book>(); try { Connection connection = JDBCUtil.getConnection(); PreparedStatement preparedStatement = connection .prepareStatement("select * from bookdb where book_name like ?"); preparedStatement.setString(1, "%" + search + "%"); ResultSet rs = preparedStatement.executeQuery(); while (rs.next()) { Book books = new Book(); books.setBook_id(rs.getString("book_id")); books.setBook_name(rs.getString("book_name")); books.setBook_author(rs.getString("book_author")); books.setBook_press(rs.getString("book_press")); Category category = findCategoryById(rs.getString("book_category")); books.setCategory(category); books.setFilename(rs.getString("filename")); books.setPath(rs.getString("path")); books.setBook_desc(rs.getString("book_desc")); books.setBook_kunumber(rs.getInt("book_kunumber")); books.setBook_xiaonumber(rs.getInt("book_xiaonumber")); books.setBook_price(rs.getDouble("book_price")); lists.add(books); } return lists; } catch (Exception e) { e.printStackTrace(); } return null; } // ????鼮id????鼮??? @Override public Book findBookById(String book_id) { try { Book book = new Book(); Connection connection = JDBCUtil.getConnection(); PreparedStatement prepareStatement = connection.prepareStatement("select * from bookdb where book_id = ?"); prepareStatement.setString(1, book_id); ResultSet rs = prepareStatement.executeQuery(); if (rs.next()) { book.setBook_id(rs.getString("book_id")); book.setBook_name(rs.getString("book_name")); book.setBook_author(rs.getString("book_author")); book.setBook_press(rs.getString("book_press")); Category category = findCategoryById(rs.getString("book_category")); book.setCategory(category); book.setFilename(rs.getString("filename")); book.setPath(rs.getString("path")); book.setBook_desc(rs.getString("book_desc")); book.setBook_kunumber(rs.getInt("book_kunumber")); book.setBook_xiaonumber(rs.getInt("book_xiaonumber")); book.setBook_price(rs.getDouble("book_price")); } return book; } catch (Exception e) { e.printStackTrace(); } return null; } // ??????? @Override public void addfavorite(String favorite_id, String user_id, String book_id) { try { Connection connection = JDBCUtil.getConnection(); PreparedStatement prepareStatement = connection .prepareStatement("insert into favorite (favorite_id,user_id,book_id) values (?,?,?)"); prepareStatement.setString(1, favorite_id); prepareStatement.setString(2, user_id); prepareStatement.setString(3, book_id); prepareStatement.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } } // ??????? @Override public List<Favorite> findFavoriteByUserId(User user) { try { Connection connection = JDBCUtil.getConnection(); PreparedStatement prepareStatement = connection .prepareStatement("select * from favorite where user_id = ?"); prepareStatement.setString(1, user.getId()); ResultSet rs = prepareStatement.executeQuery(); List<Favorite> list = new ArrayList<Favorite>(); while (rs.next()) { Favorite favorite = new Favorite(); favorite.setUser(user); favorite.setFavorite_id(rs.getString("favorite_id")); Book book = findBookById(rs.getString("book_id")); favorite.setBook(book); list.add(favorite); } return list; } catch (Exception e) { e.printStackTrace(); } return null; } @Override public boolean findFavorite(String user_id, String book_id) { try { Connection connection = JDBCUtil.getConnection(); PreparedStatement prepareStatement = connection .prepareStatement("select * from favorite where user_id=? and book_id=?"); prepareStatement.setString(1, user_id); prepareStatement.setString(2, book_id); ResultSet rs = prepareStatement.executeQuery(); if (rs.next()) { return true; } return false; } catch (Exception e) { e.printStackTrace(); } throw new RuntimeException(); } @Override public void delFavorite(String book_id) { try { Connection connection = JDBCUtil.getConnection(); PreparedStatement prepareStatement = connection.prepareStatement("delete from favorite where book_id=?"); prepareStatement.setString(1, book_id); prepareStatement.executeUpdate(); } catch (Exception e) { e.printStackTrace(); } } }