Struts1.2+Spring1.2+HIbernate3.1整合示例代码详解(二)

18 篇文章 0 订阅

  五、由于我个人不太喜欢Hibernate自动生成的那些代码,也不喜欢使用Hibernate管理SessionFactory,所以DAO都是自己写的,现在大家和我一起来写DAO吧。。。
  1、先写一个基类baseDAO类,为了我们以后写DAO类时不用每次都写去openSession(),还有一个优点就是在配置Spring下的bean时只要指定bean的parent属性就可以了,也不用每次去注入sessionFactory。为了实现低松耦合,我们都定义了各自的接口。好了,看代码吧。
IBaseDAO.java:
package com.login.dao;

import org.hibernate.Session;

public interface IBaseDAO {

 public Session getSession();
}


import org.hibernate.Session;
import org.hibernate.SessionFactory;

import com.login.dao.IBaseDAO;

public class BaseDAO implements IBaseDAO {

 private SessionFactory sessionFactory;
 
 public SessionFactory getSessionFactory() {
  return sessionFactory;
 }

 public void setSessionFactory(SessionFactory sessionFactory) {
  this.sessionFactory = sessionFactory;
 }

 public Session getSession() {
  
  return sessionFactory.openSession();
 }

}

IUserDAO.java
package com.login.dao;

import com.login.dao.vo.Users;

public interface IUsersDAO {

 public boolean checkLogin(Users user);
}

UserDAO.java
package com.login.dao.Impl;

import java.util.List;

import org.hibernate.Query;
import org.hibernate.Session;

import com.login.dao.IUsersDAO;

@SuppressWarnings("unchecked")
public class UsersDAO extends BaseDAO implements IUsersDAO {

 private Session session = null;
 
 public boolean checkLogin(com.login.dao.vo.Users user) {
  session = getSession();
  String hql = "from Users u where u.username = ? and u.password = ?";
  Query query = session.createQuery(hql);
  query.setParameter(0, user.getUsername());
  query.setParameter(1, user.getPassword());
  List list = query.list();
  session.close();
  if (list.size()>0) {
   return true;
  }
  return false;   
  
    
 }

}

到现在为止,我们的Hibernate已经全部写完了,现在我们开始写Service层。即Spring层
IUsersService.java

package com.login.service;

import com.login.dao.vo.Users;

public interface IUsersService {
 public boolean checkLogin(Users user);
}

UsersService.java
package com.login.service.Impl;

import com.login.dao.IUsersDAO;
import com.login.dao.vo.Users;
import com.login.service.IUsersService;

public class UsersService implements IUsersService {

 private IUsersDAO usersDAO = null;

 public IUsersDAO getUsersDAO() {
  return usersDAO;
 }

 public void setUsersDAO(IUsersDAO usersDAO) {
  this.usersDAO = usersDAO;
 }

 public boolean checkLogin(Users user) {
  
  return getUsersDAO().checkLogin(user);
 }

}

这样我们的Service层也写完了,该写Struts层了。
LoginAction.java

package com.login.struts.action;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import com.login.dao.vo.Users;
import com.login.service.IUsersService;
import com.login.struts.form.LoginForm;


@SuppressWarnings("unused")
public class LoginAction extends Action {
 
 private IUsersService usersService = null;
 
 public IUsersService getUsersService() {
  return usersService;
 }

 public void setUsersService(IUsersService usersService) {
  this.usersService = usersService;
 }

 public ActionForward execute(ActionMapping mapping, ActionForm form,
   HttpServletRequest request, HttpServletResponse response) {
  
  LoginForm loginForm = (LoginForm) form;
  
  Users user = new Users();  
  user.setUsername(loginForm.getUserName());
  user.setPassword(loginForm.getPassword());
  
  if (getUsersService().checkLogin(user)) {
   return mapping.findForward("success");
  }
  return mapping.findForward("failure");
  
 }
}

LoginForm.java:

package com.login.struts.form;

import javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;


@SuppressWarnings("serial")
public class LoginForm extends ActionForm {
 
 private String userName = null;
 private String password = null;

 public String getUserName() {
  return userName;
 }

 public void setUserName(String userName) {
  this.userName = userName;
 }

 public String getPassword() {
  return password;
 }

 public void setPassword(String password) {
  this.password = password;
 }

 public ActionErrors validate(ActionMapping mapping,
   HttpServletRequest request) {
  return null;
 }

 public void reset(ActionMapping mapping, HttpServletRequest request) {
  
 }
}

到此为止,我们Strus层也写完了,下篇我们看下Struts和Spring的配置文件。

此示例源码下载地址:http://download.csdn.net/source/323772

 

Struts2.0+Spring2.0+HIbernate3.1整合用户登录以及增删改查完整示例:http://download.csdn.net/source/326113

实现类:
BaseDAO.java
package com.login.dao.Impl;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值