前些天做的:struts2.0与hibernate整合

wen_qwfy 2008-05-08 10:03:01

//--------------配置文件struts.xml-----------------
<?xml version="1.0" encoding="GBK"?>

<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>

<constant name="struts.i18n.encoding" value="GBK"/>
<constant name="struts.custom.i18n.resources" value="messageResource"/>

<package name="mystrut2" extends="struts-default">
<action name="Login" class="com.wenbo.action.LoginAction">
<result name="input">/login.jsp</result>
<result name="error">/error.jsp</result>
<result name="success">/login_success.jsp</result>
</action>
</package>

</struts>


//-------------------配置文件hibernate.cfg.xml-------------------
<?xml version="1.0" encoding="GBK"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
<session-factory>
<!-- Database connection settings -->
<property name="connection.driver_class">com.microsoft.jdbc.sqlserver.SQLServerDriver</property>
<property name="connection.url">jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=struts2hibernate</property>
<property name="connection.username">sa</property>
<property name="connection.password"></property>

<!-- SQL dialect -->
<property name="dialect">org.hibernate.dialect.SQLServerDialect</property>

<!-- Echo all executed SQL to stdout -->
<property name="show_sql">true</property>

<!-- Drop and re-create the database schema on startup -->
<property name="hbm2ddl.auto">update</property>

<mapping resource="com/wenbo/entity/User.hbm.xml"/>
</session-factory>
</hibernate-configuration>


//----------com.wenbo.entity::user.java(javaBean文件)-----

//----------com.wenbo.entity: ***.hbm.xml----------
<?xml version="1.0" encoding="gbk"?>

<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping package="com.wenbo.entity">
<class name="User" table="users">
<id name="id" column="id" type="integer">
<generator class="identity"/>
</id>
<property name="username" column="username" type="string" />
<property name="password" column="password" type="string" />
</class>
</hibernate-mapping>


//-----------hibernate连接数据库---------------
package com.wenbo.util;

import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

public class HibernateUtil {
private static SessionFactory factory;

static{
try{
Configuration cfg = new Configuration();
factory = cfg.configure().buildSessionFactory();
}
catch(HibernateException e){
System.out.println("111111111111111");
}
}

public static Session getSession(){
//System.out.println("0000000000");
return factory.openSession();
}
}


//------------com.wenbo.dao接口------------
package com.wenbo.dao;

import com.wenbo.entity.User;
import java.util.Collection;

public interface userDao {
//public void insert(UserBean user);
//public void update(UserBean user);
//public void delete(UserBean user);
public User select(String name);
//public Collection selectAll();
}


//------------com.wenbo.dao.impl实现接口-----------
package com.wenbo.dao.impl;

import org.hibernate.Query;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.hibernate.Session;

import com.wenbo.dao.userDao;
import com.wenbo.entity.User;
import com.wenbo.util.HibernateUtil;

public class userDaoImpl implements userDao {

private Session session = null;
private Transaction trans = null;


public User select(String name) {
// TODO Auto-generated method stub
User user = null;
try{
session = HibernateUtil.getSession();
trans = session.beginTransaction();
Query query = session.createQuery("from User u where u.username= ?" );
query.setString(0, name);
if(null != query.list() || !query.list().isEmpty()){
user = (User) query.list().get(0);
}
trans.commit();
}
catch(Exception e){
e.printStackTrace();
trans.rollback();
}
finally{
session.close();
}
return user;
}

}


//-----------控制器的实现Action.java-----------
package com.wenbo.action;

import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ModelDriven; //该接口提供模型驱动方法
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ActionContext; //该类提供Servlet API的访问
import com.wenbo.dao.userDao;
import com.wenbo.dao.impl.userDaoImpl;
import com.wenbo.entity.User;
import com.wenbo.entity.UserBean;

public class LoginAction extends ActionSupport implements ModelDriven<UserBean>{
//使用模型驱动
private UserBean userModel = new UserBean();

//实现ModelDriven接口必须实现的方法
public UserBean getModel(){
return this.userModel;
}

public String execute() throws Exception{

userDao userDao = new userDaoImpl();
User user = userDao.select(getModel().getUsername());

if(null != user ){
if(getModel().getPassword().equalsIgnoreCase(user.getPassword())){
getModel().setTip("服务器提示!!!");

//String user = (String) ActionContext.getContext().getSession().get("user");
ActionContext.getContext().getSession().put("user", getModel().getUsername());
return "success";
}
else{
getModel().setTip("输入用户名或密码错误!!!");
return "error";
}
}
else{
getModel().setTip("没有该用户!!!");
return "error";
}
}
}


//-----login.jsp页面-----
<%@ page contentType="text/html; charset=GBK" language="java"%>
<%@taglib prefix="s" uri="/struts-tags"%>
<HTML>
<HEAD>
<TITLE>登录成功页面</TITLE>
</HEAD>
<BODY>
<s:form action="Login.action">
<h3>用户登录</h3>
<s:textfield name="username" label="用户名:"/>
<s:textfield name="password" label="密码:"/>
<s:submit value="提交"/>
</s:form>
</BODY>
</HTML>

//-----login_success.jsp页面-----
<%@ page contentType="text/html; charset=GBK" language="java"%>
<%@taglib prefix="s" uri="/struts-tags"%>
<HTML>
<HEAD>
<TITLE>登录页面</TITLE>
</HEAD>
<BODY>
<h3><s:property value="tip"/></h3>
欢迎,${sessionScope.user},您已经登录成功!
</BODY>
</HTML>

//-----error.jsp页面-----
<%@ page contentType="text/html; charset=GBK" language="java"%>
<%@taglib prefix="s" uri="/struts-tags"%>
<HTML>
<HEAD>
<TITLE>错误</TITLE>
</HEAD>
<BODY>
<s:property value="tip"/>
</BODY>
</HTML>


...全文
339 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧