慕课网_《基于SSH实现员工管理系统之框架整合篇》学习总结

时间:2017年08月16日星期三
说明:本文部分内容均来自慕课网。@慕课网:http://www.imooc.com
教学源码:无
学习源码:https://github.com/zccodere/s...

第一章:课程介绍

1-1 课程介绍

课程目录

1.ssh知识点回顾
2.搭建ssm开发环境
3.struts2整合spring
4.spring整合hibernate
5.案例:使用ssh框架开发人员管理系统

第二章:知识回顾

2-1 ssh知识点回顾

ssh框架的知识点回顾

慕课网_《基于SSH实现员工管理系统之框架整合篇》学习总结_第1张图片

第三章:环境搭建

3-1 创建项目

创建web项目,引入响应的jar包

struts2框架开发的相应的jar包
hibernate框架开发的相应的jar包
spring框架开发的相应的jar包

创建一个名为ssh的maven项目,pom文件如下


    4.0.0

    com.myimooc
    ssh
    0.0.1-SNAPSHOT
    war

    ssh
    http://maven.apache.org

    
        UTF-8
        UTF-8
        2.5.12
        4.3.9.RELEASE
        1.8.10
        1.0
        5.2.9.Final
        0.9.5.2
        5.1.41
        1.7.25
        1.2.17
    

    
        
        
            org.apache.struts
            struts2-core
            ${struts2.version}
        
        
    
         
        
            org.apache.struts
            struts2-spring-plugin
            ${struts2.version}
        
        
        
        
            org.springframework
            spring-core
            ${spring.version}
        
        
        
            org.springframework
            spring-web
            ${spring.version}
        
        

        
        
            org.springframework
            spring-context
            ${spring.version}
        
        
        
            org.springframework
            spring-beans
            ${spring.version}
        
        
        
            org.springframework
            spring-jdbc
            ${spring.version}
        
        
        
            org.springframework
            spring-orm
            ${spring.version}
        
        
        
            org.springframework
            spring-tx
            ${spring.version}
        
        
        
            org.springframework
            spring-test
            ${spring.version}
        
        
        
            org.springframework
            spring-aop
            ${spring.version}
        
        
        
            org.aspectj
            aspectjrt
            ${aspectj.version}
        
        
        
            aopalliance
            aopalliance
            ${aopalliance.version}
        
        
        
            org.hibernate
            hibernate-core
            ${hibernate.version}
        
        
        
            com.mchange
            c3p0
            ${c3p0.version}
        
        
        
            mysql
            mysql-connector-java
            ${mysql.version}
        
        
        
            org.slf4j
            slf4j-api
            ${slf4j.version}
        
        
        
            org.slf4j
            slf4j-log4j12
            ${slf4j.version}
            test
        
        
        
            log4j
            log4j
            ${log4j.version}
        
        
        
            com.fasterxml.jackson.core
            jackson-databind
            2.9.0
        
        
        
            com.fasterxml.jackson.core
            jackson-core
            2.9.0
        
        
        
            javax.servlet
            javax.servlet-api
            3.1.0
            provided
        
    

    
        
            
                org.apache.maven.plugins
                maven-compiler-plugin
                
                    1.8
                    1.8
                
            
        
    

3-2 配置文件

引入配置文件

1.struts2框架的配置文件
web.xml
struts.xml
2.hibernate框架的配置文件
hibernate.cfg.xml(在此ssh中可以被省略)
映射文件
3.spring框架的配置文件
web.xml
applicationContext.xml

3-3 分层结构

项目分层结构如下

慕课网_《基于SSH实现员工管理系统之框架整合篇》学习总结_第2张图片

编写Product类

package com.myimooc.ssh.domain;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;

/**
 * 商品类
 * @author ZhangCheng on 2017-08-16
 */
@Entity
public class Product {
    @Id
    @GeneratedValue
    private Integer pid;
    
    private String pname;
    
    private Double price;
    
    @Override
    public String toString() {
        return "Product [pid=" + pid + ", pname=" + pname + ", price=" + price + "]";
    }

    public Integer getPid() {
        return pid;
    }

    public void setPid(Integer pid) {
        this.pid = pid;
    }

    public String getPname() {
        return pname;
    }

    public void setPname(String pname) {
        this.pname = pname;
    }

    public Double getPrice() {
        return price;
    }

    public void setPrice(Double price) {
        this.price = price;
    }
}

第四章:struts2整合spring

4-1 创建页面

编写addProduct.jsp页面

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s" %>




Insert title here


    

保存商品页面

商品名称
商品价格

4-2 后端开发

代码演示

1.编写ProductDao类

package com.myimooc.ssh.dao;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.orm.hibernate5.HibernateTemplate;
import org.springframework.stereotype.Repository;

import com.myimooc.ssh.domain.Product;

/**
 * 商品管理的数据访问类
 * @author ZhangCheng on 2017-08-17
 */
@Repository
public class ProductDao{
    
    @Autowired
    private HibernateTemplate hibernateTemplate;
    
    /**
     * 数据访问层保存商品的方法
     */
    public void save(Product product) {
        System.out.println("Dao中的save方法执行了...");
        hibernateTemplate.save(product);
    }
}

2.编写ProductService类

package com.myimooc.ssh.service;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.myimooc.ssh.dao.ProductDao;
import com.myimooc.ssh.domain.Product;

/**
 * 商品管理的业务类
 * @author ZhangCheng on 2017-08-17
 */
@Service
@Transactional
public class ProductService {
    
    // struts和spring整合,按名称自动装配
    @Autowired
    private ProductDao productDao;
    
    /**
     * 业务层保存商品的方法
     */
    public void save(Product product) {
        System.out.println("Service中的save方法执行了...");
        productDao.save(product);
        
    }
    
    
}

3.编写ProductAction类

package com.myimooc.ssh.action;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;

import com.myimooc.ssh.domain.Product;
import com.myimooc.ssh.service.ProductService;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;

/**
 * 商品管理的控制类
 * @author ZhangCheng on 2017-08-17
 */
@Controller
@Scope("prototype")
public class ProductAction extends ActionSupport implements ModelDriven{
    
    private static final long serialVersionUID = 1L;

    // struts和spring整合,按名称自动装配
    @Autowired
    private ProductService productService;
    
    // 模型驱动使用的类
    private Product product = new Product();
    
    @Override
    public Product getModel() {
        return product;
    }
    
    /**
     * 保存商品的执行方法:save
     */
    public String save(){
        System.out.println("Action中的save方法执行了...");
        productService.save(product);
        return NONE;
    }
}

4-3 配置spring

struts2和spring整合的两种方式

Action的类由struts2自身去创建
Action的类交给Spring框架创建


    
    
    

      
    
    
    
    
        
        
        
        
    
    
    
    
        
        
        
        
            
                org.hibernate.dialect.MySQL5Dialect
                true
                true
                update
            
        
        
        
        
        
            
                com.myimooc.ssh.domain
            
        
    
    
    
    
        
    
    
    
    
        
    
    
    
    
    
 
                            

4-4 配置stauts2





    
    
        
    
    
 


第五章:spring整合hibernate

5-1 映射文件

编写Product.hbm.xml




    
        
            
            
        
        
            
        
        
            
        
    

5-2 整合Hibernate


    
        
        
        
        
    
    
    
    
        
        
        
        
            
                org.hibernate.dialect.MySQL5Dialect
                true
                true
                update
            
        
        
        
        
        
            
                com.myimooc.ssh.domain
            
        
    
    
    
    
        
    
    
    
    
        
    
    
    
    

你可能感兴趣的:(spring,hibernate,struts2,java)