SSH高度整合--开源代码

SSH整合

DataSource-àSessionFactory-àHibenateTemplate-àDao-àService-àAction

 

一. Hibernate和Spring进行整合

1. 添加hibernate和spring依赖的jar文件

antlr-2.7.7.jar

aopalliance.jar

aspectjweaver.jar

c3p0-0.9.5.2.jar

classmate-1.3.0.jar

commons-logging-1.1.3.jar

dom4j-1.6.1.jar

hibernate-c3p0-5.2.10.Final.jar

hibernate-commons-annotations-5.0.1.Final.jar

hibernate-core-5.2.10.Final.jar

hibernate-jpa-2.1-api-1.0.0.Final.jar

jandex-2.0.3.Final.jar

javassist-3.20.0-GA.jar

jboss-logging-3.3.0.Final.jar

jboss-transaction-api_1.2_spec-1.0.1.Final.jar

mchange-commons-java-0.2.11.jar

mysql-connector-java-5.1.40.jar

spring-aop-4.3.9.RELEASE.jar

spring-aspects-4.3.9.RELEASE.jar

spring-beans-4.3.9.RELEASE.jar

spring-context-4.3.9.RELEASE.jar

spring-context-support-4.3.9.RELEASE.jar

spring-core-4.3.9.RELEASE.jar

spring-expression-4.3.9.RELEASE.jar

spring-instrument-4.3.9.RELEASE.jar

spring-instrument-tomcat-4.3.9.RELEASE.jar

spring-jdbc-4.3.9.RELEASE.jar

spring-jms-4.3.9.RELEASE.jar

spring-messaging-4.3.9.RELEASE.jar

spring-orm-4.3.9.RELEASE.jar

spring-oxm-4.3.9.RELEASE.jar

spring-test-4.3.9.RELEASE.jar

spring-tx-4.3.9.RELEASE.jar

spring-web-4.3.9.RELEASE.jar

spring-webmvc-4.3.9.RELEASE.jar

spring-webmvc-portlet-4.3.9.RELEASE.jar

spring-websocket-4.3.9.RELEASE.jar

2. 编写实体类和映射文件

 

package cn.zzsxt.ssh.entity;

 

public class Userinfo {

private int userId;

private String userName;

private String userPass;

public int getUserId() {

return userId;

}

public void setUserId(int userId) {

this.userId = userId;

}

public String getUserName() {

return userName;

}

public void setUserName(String userName) {

this.userName = userName;

}

public String getUserPass() {

return userPass;

}

public void setUserPass(String userPass) {

this.userPass = userPass;

}

@Override

public String toString() {

return "Userinfo [userId=" + userId + ", userName=" + userName + ", userPass=" + userPass + "]";

}

 

}

 

 

    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"

    "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">

   

3. 编写DAO及其实现类

 

package cn.zzsxt.ssh.dao;

 

import java.util.List;

import cn.zzsxt.ssh.entity.Userinfo;

public interface UserinfoDao {

public List findAll();

public Userinfo findById(int userId);

public int add(Userinfo user);

public int update(Userinfo user);

public int delete(int userId);

 

}

 

package cn.zzsxt.ssh.dao.impl;

 

import java.util.List;

 

import org.springframework.dao.DataAccessException;

import org.springframework.orm.hibernate5.HibernateTemplate;

 

import cn.zzsxt.ssh.dao.UserinfoDao;

import cn.zzsxt.ssh.entity.Userinfo;

 

public class UserinfoDaoImpl implements UserinfoDao {

private HibernateTemplate  hibernateTemplate;

public void setHibernateTemplate(HibernateTemplate hibernateTemplate) {

this.hibernateTemplate = hibernateTemplate;

}

 

@Override

public List findAll() {

//  List list = (List)hibernateTemplate.find("from Userinfo");

return  hibernateTemplate.loadAll(Userinfo.class);

}

 

@Override

public Userinfo findById(int userId) {

return hibernateTemplate.get(Userinfo.class, userId);

}

 

@Override

public int add(Userinfo user) {

int count=0;

try {

hibernateTemplate.save(user);

count=1;

} catch (DataAccessException e) {

e.printStackTrace();

}

return count;

}

 

@Override

public int update(Userinfo user) {

int count=0;

try {

hibernateTemplate.update(user);

count=1;

} catch (DataAccessException e) {

e.printStackTrace();

}

return count;

}

 

@Override

public int delete(int userId) {

int count=0;

try {

Userinfo user = hibernateTemplate.get(Userinfo.class, userId);

hibernateTemplate.delete(user);

count=1;

} catch (DataAccessException e) {

e.printStackTrace();

}

return count;

}

 

}

 

4. 编写Service及其实现类

 

package cn.zzsxt.ssh.service;

 

import java.util.List;

 

import cn.zzsxt.ssh.entity.Userinfo;

 

public interface UserinfoService {

public List findAll();

public Userinfo findById(int userId);

public int add(Userinfo user);

public int update(Userinfo user);

public int delete(int userId);

}

 

package cn.zzsxt.ssh.service.impl;

 

import java.util.List;

 

import cn.zzsxt.ssh.dao.UserinfoDao;

import cn.zzsxt.ssh.entity.Userinfo;

import cn.zzsxt.ssh.service.UserinfoService;

 

public class UserinfoServiceImpl implements UserinfoService {

private UserinfoDao userinfoDao;

 

public void setUserinfoDao(UserinfoDao userinfoDao) {

this.userinfoDao = userinfoDao;

}

 

@Override

public List findAll() {

return userinfoDao.findAll();

}

 

@Override

public Userinfo findById(int userId) {

return userinfoDao.findById(userId);

}

 

@Override

public int add(Userinfo user) {

return userinfoDao.add(user);

}

 

@Override

public int update(Userinfo user) {

return userinfoDao.update(user);

}

 

@Override

public int delete(int userId) {

return userinfoDao.delete(userId);

}

 

}

 

5. 在src下新建db.properties(可选)

 

driver=com.mysql.jdbc.Driver

url=jdbc:mysql://localhost:3306/hibernate

username=root

password=root

 

 

6. 在src下新建spring的配置文件applicationContext.xml

DataSource-àSessionFactory-àHibernateTemplate-àDao-àService

声明式事务: HibernateTransactionManager--àtxAdvice-àPointCut-àAdvisor

 

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

    xmlns:aop="http://www.springframework.org/schema/aop"

    xmlns:tx="http://www.springframework.org/schema/tx"

    xsi:schemaLocation="http://www.springframework.org/schema/beans

        http://www.springframework.org/schema/beans/spring-beans.xsd

        http://www.springframework.org/schema/aop

        http://www.springframework.org/schema/aop/spring-aop.xsd

        http://www.springframework.org/schema/tx

        http://www.springframework.org/schema/tx/spring-tx.xsd">

       

       

       

       

       

       

           

           

           

           

       

       

       

       

       

       

       

        org.hibernate.dialect.MySQL5Dialect

        true

        true

        update

       

       

       

       

       

        cn/zzsxt/ssh/entity/Userinfo.hbm.xml

       

       

       

       

       

          

       

       

       

          

       

       

       

           

       

       

       

       

       

       

       

       

       

       

       

       

       

      

      

      

      

      

      

       

 

 

 

 

二. Struts和Spring整合

1. 添加struts2依赖的jar文件和struts2-spring-plugin.jar

2. 在web.xml中配置监听器ContextLoaderListener(解析spring配置文件)和struts2的核心过滤器

 

   

    org.springframework.web.context.ContextLoaderListener

   

   

   

    contextConfigLocation

    classpath:applicationContext*.xml

   

   

   

    struts2

    org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter

   

   

    struts2

    /*

   

 

 

3. 编写业务逻辑Action

 

package cn.zzsxt.ssh.action;

 

import java.util.List;

 

import javax.servlet.http.HttpServletRequest;

 

import org.apache.struts2.interceptor.ServletRequestAware;

 

import com.opensymphony.xwork2.ActionSupport;

 

import cn.zzsxt.ssh.entity.Userinfo;

import cn.zzsxt.ssh.service.UserinfoService;

 

public class UserinfoAction extends ActionSupport  implements ServletRequestAware{

private UserinfoService userinfoService;

private HttpServletRequest request;

private Userinfo user;

 

public Userinfo getUser() {

return user;

}

 

public void setUser(Userinfo user) {

this.user = user;

}

 

public void setUserinfoService(UserinfoService userinfoService) {

this.userinfoService = userinfoService;

}

 

public String list() throws Exception {

List list = userinfoService.findAll();

request.setAttribute("list", list);

return "list";

}

 

 

public String add() throws Exception {

int count = userinfoService.add(user);

if(count>0){

return this.SUCCESS;

}

return this.ERROR;

}

 

@Override

public void setServletRequest(HttpServletRequest arg0) {

this.request=arg0;

}

}

 

 

4. 在spring配置文件中配置业务逻辑Action,为业务逻辑Action注入service

 

  

  

           

   

 

 

5. 在src下添加struts的配置文件并配置

 

"-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"

"http://struts.apache.org/dtds/struts-2.5.dtd">

regex:.*

 class="userinfoAction" method="{1}">

/list.jsp

user-list

 

 

6. 编写页面

 

List.jsp

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

用户编号 用户名称 用户密码 操作

  

  

  

  

  

  

   修改  删除

  

暂无用户信息!

  

 

Add.jsp

  

  

   用户名:

   密码:

  

  

  

 

你可能感兴趣的:(SSH高度整合--开源代码)