update:因为博主现在不做这块了,所以此文不再回复,抱歉
本来以为学完Java EE之后用个三大框架没什么难度,结果昨天搭环境就搞了一晚上,还是靠室友找了半天才找出错误在哪,为了避免重复踩坑,而且目前网上用myeclipse2017做环境的教程还是蛮少的,就写篇博客记录一下
点我查看源码
先看一下最终的架构
整个流程参考了很多大佬的博客,就不一一摆出来了,我这里主要用的刘伟老师给的步骤
IDE:MyEclipse 2017 stable 2.0
数据库:mysql-community-5.7.21.0
Struts 2.1 / Spring 4.1.0 / Hibernate 4.1.4
JDK 1.8 / Tomcat 8
点击Next >
点击 Finish
注意三大框架的顺序是 struts -> spring -> hibernate
在src
下建立一个名为struts.properties
的文件,内容为
struts.objectFactory=spring
在添加Hibernate之前,你需要先建立一个数据库连接,这个教程很多,我之前的博客也有记录,就不介绍了。
建包
【注:Struts的antlr-2.7.2.jar和Hibernate的antlr-2.7.7.jar有冲突,必须删除一个(例如Struts中的antlr-2.7.2.jar包)】
方法: Window->Preferences
在完成上一步之后打开applicationContext.xml
可以看到配置用Spring来对Hibernate进行管理已经完成了,但是还缺了数据库驱动,需要手动补上
在
下新增一个节点
我这里选择UserBasic表
package com.ssh.dao;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
public class BaseDAO {
private SessionFactory sessionFactory;
public Session getSession(){
Session session = sessionFactory.openSession();
return session;
}
public SessionFactory getSessionFactory() {
return sessionFactory;
}
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
}
使用BaseDAO作为基类,其他所有DAO都继承自它,这样做的好处是注入SesseionFactory就只要一次可以完成了
注册到Spring容器中(以下所有的注册
意思都是在applicationContext.xml
增加的代码)
package com.ssh.dao;
public interface UserBasicDAO {
public boolean login(String account,String password);
}
package com.ssh.idao;
import org.hibernate.Query;
import org.hibernate.Session;
import com.ssh.dao.BaseDAO;
import com.ssh.dao.UserBasicDAO;
public class UserBasicDAOImp extends BaseDAO implements UserBasicDAO{
@Override
public boolean login(String account, String password) {
Session session = getSession();
String hql="from UserBasic where account = ? and password = ?";
Query query = session.createQuery(hql);
query.setString(0, account);
query.setString(1, password);
//System.out.println(query.list().size());
if(query.list().size()>0){
return true;
}
session.close();
return false;
}
}
注册DAO
LoginAction.java
package com.ssh.action;
import com.ssh.dao.UserBasicDAO;
import com.opensymphony.xwork2.ActionSupport;
public class LoginAction extends ActionSupport{
private String account;
private String password;
private UserBasicDAO dao;
public String execute() throws Exception {
if(dao.login(account, password)){
return SUCCESS;
} else {
return ERROR;
}
}
public String getAccount() {
return account;
}
public void setAccount(String account) {
this.account = account;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public UserBasicDAO getDao() {
return dao;
}
public void setDao(UserBasicDAO dao) {
this.dao = dao;
}
}
struts.xml
/index.jsp
/login.jsp
login.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@taglib prefix="s" uri="/struts-tags" %>
login.jsp
用户名:
密码:
部署项目后在浏览器上输入http://localhost:8080/SSH/login.jsp,如果可以正确根据用户名和密码跳转到指定界面,就大功告成了!
最终的applicationContext.xml如下
org.hibernate.dialect.MySQLDialect
com/ssh/dto/UserBasic.hbm.xml
如果你按照本文的操作成功,别忘了点个赞