MyEclipse 2017 整合SSH三大框架 到登录功能的实现(附源码)

update:因为博主现在不做这块了,所以此文不再回复,抱歉

本来以为学完Java EE之后用个三大框架没什么难度,结果昨天搭环境就搞了一晚上,还是靠室友找了半天才找出错误在哪,为了避免重复踩坑,而且目前网上用myeclipse2017做环境的教程还是蛮少的,就写篇博客记录一下

点我查看源码

先看一下最终的架构
MyEclipse 2017 整合SSH三大框架 到登录功能的实现(附源码)_第1张图片
整个流程参考了很多大佬的博客,就不一一摆出来了,我这里主要用的刘伟老师给的步骤

0.环境版本

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

1.创建一个Web Project

MyEclipse 2017 整合SSH三大框架 到登录功能的实现(附源码)_第2张图片

点击Next >

MyEclipse 2017 整合SSH三大框架 到登录功能的实现(附源码)_第3张图片

点击 Finish

2.添加Struts 2开发能力

注意三大框架的顺序是 struts -> spring -> hibernate

MyEclipse 2017 整合SSH三大框架 到登录功能的实现(附源码)_第4张图片

MyEclipse 2017 整合SSH三大框架 到登录功能的实现(附源码)_第5张图片

MyEclipse 2017 整合SSH三大框架 到登录功能的实现(附源码)_第6张图片

3.添加Spring开发能力

MyEclipse 2017 整合SSH三大框架 到登录功能的实现(附源码)_第7张图片

MyEclipse 2017 整合SSH三大框架 到登录功能的实现(附源码)_第8张图片

MyEclipse 2017 整合SSH三大框架 到登录功能的实现(附源码)_第9张图片

4.指定Spring为容器

src下建立一个名为struts.properties的文件,内容为

struts.objectFactory=spring

5.添加Hibernate开发能力

在添加Hibernate之前,你需要先建立一个数据库连接,这个教程很多,我之前的博客也有记录,就不介绍了。

建包

MyEclipse 2017 整合SSH三大框架 到登录功能的实现(附源码)_第10张图片

MyEclipse 2017 整合SSH三大框架 到登录功能的实现(附源码)_第11张图片

MyEclipse 2017 整合SSH三大框架 到登录功能的实现(附源码)_第12张图片

MyEclipse 2017 整合SSH三大框架 到登录功能的实现(附源码)_第13张图片

【注:Struts的antlr-2.7.2.jar和Hibernate的antlr-2.7.7.jar有冲突,必须删除一个(例如Struts中的antlr-2.7.2.jar包)】

方法: Window->Preferences

MyEclipse 2017 整合SSH三大框架 到登录功能的实现(附源码)_第14张图片

6.在applicationContext.xml中配置数据库驱动

在完成上一步之后打开applicationContext.xml

MyEclipse 2017 整合SSH三大框架 到登录功能的实现(附源码)_第15张图片

可以看到配置用Spring来对Hibernate进行管理已经完成了,但是还缺了数据库驱动,需要手动补上
下新增一个节点


7.Hibernate反向工程生成POJO和映射文件

我这里选择UserBasic表

MyEclipse 2017 整合SSH三大框架 到登录功能的实现(附源码)_第16张图片

MyEclipse 2017 整合SSH三大框架 到登录功能的实现(附源码)_第17张图片

MyEclipse 2017 整合SSH三大框架 到登录功能的实现(附源码)_第18张图片

8.建立基类BaseDAO

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增加的代码)


		
			
		
		

9.定义抽象DAO接口

package com.ssh.dao;

public interface UserBasicDAO {
	public boolean login(String account,String password);
}	

10.实现抽象DAO接口

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


11.开发Struts 2应用程序

  • 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;
	}
}

  • 注册Action并注入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
		
	
		
	
	
	
		
			
		
			
	
	
	 	
	

如果你按照本文的操作成功,别忘了点个赞

你可能感兴趣的:(Struts,2,Hibernate)