今天可以学习struts+hibernate框架的开发,有点小激动。
一、建立新的web project----testsh 。
二、搭建框架:右键项目—MyEclipse—Project Facets—install Apache Struts(2.x) Facet / install Hibernate Facet
三、和前面的项目一样,需要建立的 jsp文件:login.jsp、success.jsp、false.jsp 。
项目目录结构:
四、web.xml配置文件(配置struts,搭建框架后自动生成):
login.jsp
struts2
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
struts2
/*
org.hibernate.dialect.MySQLDialect
jdbc:mysql://127.0.0.1:3306/test
root
Admin123
com.mysql.jdbc.Driver
mybase
TUser.java中核心代码:
package com.ssh;
public class TUser implements java.io.Serializable {
private Integer id;
private String mame;
private String password;
public TUser() {
}
public TUser(String mame, String password) {
this.mame = mame;
this.password = password;
}
public Integer getId() {
return this.id;
}
public void setId(Integer id) {
this.id = id;
}
public String getMame() {
return this.mame;
}
public void setMame(String mame) {
this.mame = mame;
}
public String getPassword() {
return this.password;
}
public void setPassword(String password) {
this.password = password;
}
}
TUser.hbm.xml配置文件:
package com.ssh.entity;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
import org.hibernate.service.ServiceRegistryBuilder;
public class HibernateSessionFactory {
private static final ThreadLocal threadLocal = new ThreadLocal();
private static org.hibernate.SessionFactory sessionFactory;
private static Configuration configuration = new Configuration();
private static ServiceRegistry serviceRegistry;
static {
try {
configuration.configure();
serviceRegistry = new ServiceRegistryBuilder()
.applySettings(configuration.getProperties()).buildServiceRegistry();
sessionFactory = configuration.buildSessionFactory(serviceRegistry);
} catch (Exception e) {
System.err.println("%%%% Error Creating SessionFactory %%%%");
e.printStackTrace();
}
}
private HibernateSessionFactory() {
}
public static Session getSession() throws HibernateException {
Session session = (Session) threadLocal.get();
if (session == null || !session.isOpen()) {
if (sessionFactory == null) {
rebuildSessionFactory();
}
session = (sessionFactory != null) ? sessionFactory.openSession()
: null;
threadLocal.set(session);
}
return session;
}
public static void rebuildSessionFactory() {
try {
configuration.configure();
serviceRegistry = new ServiceRegistryBuilder()
.applySettings(configuration.getProperties()).buildServiceRegistry();
sessionFactory = configuration.buildSessionFactory(serviceRegistry);
} catch (Exception e) {
System.err.println("%%%% Error Creating SessionFactory %%%%");
e.printStackTrace();
}
}
public static void closeSession() throws HibernateException {
Session session = (Session) threadLocal.get();
threadLocal.set(null);
if (session != null) {
session.close();
}
}
public static org.hibernate.SessionFactory getSessionFactory() {
return sessionFactory;
}
public static Configuration getConfiguration() {
return configuration;
}
}
核心代码:
package com.action;
import com.service.LoginService;
import com.ssh.TUser;
public class LoginAction {
private String name;
private String password;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String execute(){
LoginService loginser = new LoginService();
TUser u = loginser.login(name, password);
if(u!=null){
return "SUCCESS";
}else{
return "ERROR";
}
}
}
package com.service;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;
import com.ssh.TUser;
import com.ssh.entity.HibernateSessionFactory;
public class LoginService {
TUser user = null;
//HibernateSessionFactory hf = null;
public TUser login(String name,String password){
Session session = HibernateSessionFactory.getSession();
Transaction ts = session.beginTransaction();
String hql = "from TUser as u where u.mame=? and u.password=?";
Query query = session.createQuery(hql);
query.setParameter(0, name);
query.setParameter(1, password);
user = (TUser)query.uniqueResult();
ts.commit();
return user;
}
}
success.jsp
false.jsp
ko~