DAO层设计的主要任务是创建DAO接口以及创建DAO接口的实现类。
本系统一共定义了4个DAO接口。
AdminDAO.java文件:
package com.integration.dao;
import java.util.List;
import com.integration.entity.Admin;
public interface AdminDAO {
public void saveAdmin(Admin admin);
public List<Admin> findAllAdmin();
public void removeAdmin(Admin admin);
public void updateAdmin(Admin admin);
public Admin findAdminById(Integer id);
public Admin loginAdmin(Admin admin);
}
RoomDAO.java文件:
package com.integration.dao;
import java.util.List;
import com.integration.entity.Room;
public interface RoomDAO {
public void saveRoom(Room room);
public List<Room> findAllRoom();
public void removeRoom (Room room);
public void updateRoom (Room room);
public Room findRoomById(Integer id);
}
OrderDAO.java文件:
package com.integration.dao;
import java.util.List;
import com.integration.entity.Order;
import com.integration.entity.User;
public interface OrderDAO {
public void saveOrder(Order order);
public List<Order> findAllOrder();
public void removeOrder(Order order);
public void updateOrder(Order order);
public Order findOrderById(Integer id);
public List<Order> getUserOrder(User user);
public Order findOrderByUseridAndRoomid(int userid, int roomid);
}
UserDAO.java文件:
package com.integration.dao;
import java.util.List;
import com.integration.entity.User;
public interface UserDAO {
public void saveUser(User user);
public List<User> findAllUsers();
public void removeUser(User user);
public void updateUser(User user);
public User findUserById(Integer id);
public User loginUser(User user);
}
DAO接口实现类也有4个,分别实现了AdminDAO、HotelDAO、OrderDAO和UserDAO这4个接口。
AdminDAOImpl.java文件:
package com.integration.dao.impl;
import java.util.List;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import com.integration.entity.Admin;
import com.integration.dao.AdminDAO;
public class AdminDAOImpl extends HibernateDaoSupport implements AdminDAO {
@SuppressWarnings("unchecked")
public List<Admin> findAllAdmin() {
String hql = "from Admin admin order by admin.username desc)";
return (List<Admin>) this.getHibernateTemplate().find(hql);
}
public Admin findAdminById(Integer id) {
return (Admin) this.getHibernateTemplate().get(Admin.class, id);
}
public void removeAdmin(Admin admin) {
this.getHibernateTemplate().delete(admin);
}
public void saveAdmin(Admin admin) {
this.getHibernateTemplate().save(admin);
}
public void updateAdmin(Admin admin) {
this.getHibernateTemplate().update(admin);
}
@SuppressWarnings("unchecked")
public Admin loginAdmin(Admin admin) {
String hql = "from Admin admin where admin.username='"
+ admin.getUsername() + "' and admin.password='"
+ admin.getPassword() + "'";
List<Admin> admins = (List<Admin>) this.getHibernateTemplate()
.find(hql);
if (admins.size() > 0) {
return admins.get(0);
}
return null;
}
}
OrderDAOImpl.java文件:
package com.integration.dao.impl;
import java.util.List;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import com.integration.entity.Order;
import com.integration.entity.User;
import com.integration.dao.OrderDAO;
public class OrderDAOImpl extends HibernateDaoSupport implements OrderDAO {
@SuppressWarnings("unchecked")
public List<Order> findAllOrder() {
String hql = "from Order ord order by ord.orderid desc";
return (List<Order>) this.getHibernateTemplate().find(hql);
}
public Order findOrderById(Integer id) {
return (Order) this.getHibernateTemplate().get(Order.class, id);
}
public void removeOrder(Order order) {
this.getHibernateTemplate().delete(order);
}
public void saveOrder(Order order) {
this.getHibernateTemplate().save(order);
}
public void updateOrder(Order order) {
this.getHibernateTemplate().update(order);
}
@SuppressWarnings("unchecked")
public List<Order> getUserOrder(User user) {
String hql = "from Order ord where ord.userid='" + user.getUserid()
+ "'";
return (List<Order>) this.getHibernateTemplate().find(hql);
}
@SuppressWarnings("unchecked")
public Order findOrderByUseridAndRoomid(int userid, int roomid) {
String hql = "from Order ord where ord.userid=" + userid
+ " and ord.roomid=" + roomid + "";
List<Order> orders = (List<Order>) this.getHibernateTemplate()
.find(hql);
return orders == null ? null : orders.get(0);
}
}
RoomDAOImpl.java文件:
package com.integration.dao.impl;
import java.util.List;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import com.integration.entity.Room;
import com.integration.dao.RoomDAO;
public class RoomDAOImpl extends HibernateDaoSupport implements RoomDAO {
@SuppressWarnings("unchecked")
public List<Room> findAllRoom() {
String hql = "from Room room order by room.roomid desc";
return (List<Room>) this.getHibernateTemplate().find(hql);
}
public Room findRoomById(Integer id) {
return (Room) this.getHibernateTemplate().get(Room.class, id);
}
public void removeRoom(Room room) {
this.getHibernateTemplate().delete(room);
}
public void saveRoom(Room room) {
this.getHibernateTemplate().save(room);
}
public void updateRoom(Room room) {
this.getHibernateTemplate().update(room);
}
}
UserDAOImpl.java文件:
package com.integration.dao.impl;
import java.util.List;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import com.integration.entity.User;
import com.integration.dao.UserDAO;
public class UserDAOImpl extends HibernateDaoSupport implements UserDAO {
public void saveUser(User user) {
this.getHibernateTemplate().save(user);
}
@SuppressWarnings("unchecked")
public List<User> findAllUsers() {
String hql = "from User user order by user.userid desc";
return (List<User>) this.getHibernateTemplate().find(hql);
}
public void removeUser(User user) {
this.getHibernateTemplate().delete(user);
}
public void updateUser(User user) {
this.getHibernateTemplate().update(user);
}
public User findUserById(Integer id) {
User user = (User) this.getHibernateTemplate().get(User.class, id);
return user;
}
@SuppressWarnings("unchecked")
public User loginUser(User user) {
String hql = "from User user where user.username='"
+ user.getUsername() + "' and user.password='"
+ user.getPassword() + "'";
List<User> users = (List<User>) this.getHibernateTemplate().find(hql);
if (users.size() > 0) {
return users.get(0);
}
return null;
}
}
后面马上继续业务逻辑层设计……