Struts2整合Hibernate3实现用户登录功能(一)

2014-11-23 22:59:07 · 作者: · 浏览: 0
所用技术:struts2 ,hibernate,jsp,mysql
本DEMO仅仅实现用户登录功能,采用MVC思想,自己也觉得相对是比较简单,比较容易理解数据流向的一个例子,通过整合这个过程,能够清晰的看出整个项目工程的数据流向和设计思想,是新手对于整合struts2和hibernate的最好的例子。
现将整合思想,过程,代码整理如下,如果新手看了还是有不明白或者需要 源码,本人乐意效劳和分享源码。
JSP作为视图层V,显示登录,登录成功,失败页面;Struts2作为控制层C处理页面跳转;Hibernate用作数据模型M,它与前台程序的接口以DAO形式提供。
一. 数据库设计:
1.创建数据库test 表名为:user
id int not null 自增
username varchar(11) not null
password varchar(11 not null)
二.M层开发:
2.Hibernate基本配置:
为Web项目添加Hibernate的相关jar包,hibernate.cfg.xml,并应用右击项目文件,myeclise,add hibernate …将建立sessionfacotry.这样就不用再自己去写了,实现了高效开发。下为hibernate.cfg.xml:
复制代码
< xml version='1.0' encoding='UTF-8' >
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
root
jdbc:mysql:///test
org.hibernate.dialect.MySQLDialect
123456
org.gjt.mm.mysql.Driver
true
复制代码
3.生成POJO(Plain Old Java Object,简单的Java对象,通常也称为VO[ Value Object ]对象,值对象)对象类 ,POJO是一种特殊的Java类,其中有一些属性及其对应的getter/setter方法,不允许有业务方法。将User.hbm.xml配置文件一定要放在和User实体bean相同的文件目录下。(附User.hbm.xml代码)
复制代码
< xml version="1.0" encoding='UTF-8' >
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" >
复制代码
4.在src中另外建立两个包,分别放DAO接口IUserDAO及其实现类UserDAO。(附IUserDAO ,UserDAO 源码)
UserDAO.java
复制代码
package com.red.dao.impl;
import java.util.List;
import javax.persistence.Query;
import com.red.dao.IUserDAO;
import com.red.factory.HibernateSessionFactory;
import com.red.vo.User;
/**
* 实现接口
* @author Red
*
*/
public class UserDAO implements IUserDAO{
public User validateUser(String username,String password){
String sql="from User u where u.username= and u.password= ";
org.hibernate.Query query=HibernateSessionFactory.getSession().createQuery(sql);
query.setParameter(0, username);
query.setParameter(1, password);
List users=query.list();
if(users.size()!=0){
User user=(User)users.get(0);
return user;
}
HibernateSessionFactory.closeSession();
return null;
}
}
复制代码
IUserDAO.java
复制代码
package com.red.dao;
import com.red.vo.User;
/**
* 接口
* @author Red
*
*/
public interface IUserDAO {
public User validateUser(String username,String password);
}
复制代码
三.C层开发:
5.加载,配置Struts2:
将jar包复制到lib目录下,并且将mysql的驱动包也放进去,修改web.xml的代码。(附web.xml代码)
复制代码
< xml version="1.0" encoding="UTF-8" >
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
struts2
org.apache.struts2.dispatcher.FilterDispatcher
struts2
/*
index. jsp