java web开发入门八(ssm整合)基于intellig idea


ssm整合

一、导入相关包

二、开发流程

1.写entity

package com.eggtwo.euq.entity;


import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

public class Member {
    private int id;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    private String name;
    private int age;
    private Date birthday;
    private boolean man;
    private BigDecimal score;

    public BigDecimal getScore() {
        return score;
    }

    public void setScore(BigDecimal score) {
        this.score = score;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public Date getBirthday() {
        return birthday;
    }

    public void setBirthday(Date birthday) {
        this.birthday = birthday;
    }

    public boolean isMan() {
        return man;
    }

    public void setMan(boolean man) {
        this.man = man;
    }

    @Override
    public String toString() {
        return "Member{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", age=" + age +
                ", birthday=" + birthday +
                ", man=" + man +
                ", score=" + score +
                '}';
    }
}
Member

2.配mapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="com.eggtwo.euq.dao.MemberDao">
    
    <resultMap id="memberMap" type="com.eggtwo.euq.entity.Member">
        
        <id property="id" column="id"/>
        <result property="name" column="name"/>
        <result property="age" column="age"/>
        <result property="birthday" column="birthday"/>
        <result property="man" column="man"/>
        <result property="score" column="score"/>
    resultMap>

    <insert id="add" parameterType="com.eggtwo.euq.entity.Member" useGeneratedKeys="true" keyProperty="id">
      insert  into t_member(name,age,birthday,man,score)
       values(#{name},#{age},#{birthday},#{man},#{score})
    insert>

    <update id="update" parameterType="com.eggtwo.euq.entity.Member">
        update t_member set
        name = #{name},
        age = #{age},
        birthday = #{birthday},
        man = #{man},
        score = #{score}
        where id = #{id}
    update>

    <delete id="delete" parameterType="int">
        delete from t_member where id = #{id}
    delete>

    
    
    <select id="getById" parameterType="int"  resultMap="memberMap">
        select id,name,age,birthday,man,score
        from  t_member
        where id=#{id}
    select>
    
    <select id="getAll" resultMap="memberMap">
        select *
        from  t_member
    select>
    
    <select id="getPageList" parameterType="map" resultMap="memberMap">
        select id,name,age,birthday,man,score
         from t_member limit #{start},#{size}
    select>

    
    <select id="getListByWhere" parameterType="map" resultMap="memberMap">
        select id,name,age,birthday,man,score
        from t_member
        <where>
            <if test="name!=null and name!=''">
                and name like #{name}
            if>
            <if test="score!=null">
                and score > #{score}
            if>
        where>
    select>


    
    <update id="dynamicUpdate" parameterType="map">
        update t_member
        <set>
            <if test="name!=null">
                name = #{name},
            if>
            <if test="age!=null">
                age = #{age},
            if>
            <if test="birthday!=null">
                birthday = #{birthday},
            if>
            <if test="man!=null">
                man = #{man},
            if>
            <if test="score!=null">
                score = #{score},
            if>
        set>
        where id=#{id}
    update>

    
    <delete id="batchDelete" >
        delete from t_member where id in
        
        <foreach collection="array" open="(" close=")" separator="," item="id">
            #{id}
        foreach>
    delete>
    
    <delete id="batchDeleteList" >
        delete from t_member where id in
        
        <foreach collection="list" open="(" close=")" separator="," item="id">
            #{id}
        foreach>
    delete>
mapper>

3.配mybatis.xml

<?xml version="1.0" encoding="UTF-8" ?>
DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    
    <typeAliases>     
        
        <package name="com.eggtwo.euq.entity"/>
    typeAliases>

    
configuration>

4.编写dao

package com.eggtwo.euq.dao;

import com.eggtwo.euq.entity.Member;

public interface MemberDao {
    public void  add(Member member);
}

4.1编写service

package com.eggtwo.euq.service;

import com.eggtwo.euq.dao.MemberDao;
import com.eggtwo.euq.entity.Member;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;

//用注解实现IOC
@Service("memberService")
public class MemberService {

    @Autowired
    private MemberDao memberDao;

    public void add(Member member) throws Exception {
        memberDao.add(member);
       // int a = 3 / 0;

    }
}

5.配置spring.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:p="http://www.springframework.org/schema/p"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
         http://www.springframework.org/schema/beans/spring-beans.xsd
          http://www.springframework.org/schema/context
         http://www.springframework.org/schema/context/spring-context.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
          http://www.springframework.org/schema/mvc
           http://www.springframework.org/schema/tx/spring-mvc.xsd

">
 
    
    <bean id="comboPooledDataSourceID" class="com.mchange.v2.c3p0.ComboPooledDataSource">
        <property name="driverClass" value="com.mysql.jdbc.Driver"/>
        <property name="jdbcUrl" value="jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf8"/>
        <property name="user" value="root"/>
        <property name="password" value="123456"/>

        
        <property name="maxPoolSize" value="30" />
        <property name="minPoolSize" value="10" />
        
        <property name="autoCommitOnClose" value="false" />
        
        <property name="checkoutTimeout" value="10000" />
        
        <property name="acquireRetryAttempts" value="2" />

    bean>


    
    <bean id="sqlSessionFactoryBeanID" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="comboPooledDataSourceID"/>
        
        <property name="configLocation" value="classpath:mybatis.cfg.xml"/>
        
        <property name="mapperLocations" value="classpath:com/eggtwo/euq/entity/*.xml"/>
    bean>


    
    <bean id="dataSourceTransactionManagerID" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="comboPooledDataSourceID"/>
    bean>


    
    <tx:advice id="tx" transaction-manager="dataSourceTransactionManagerID">
        <tx:attributes>
            
            <tx:method name="add*" propagation="REQUIRED" rollback-for="Exception"/>
            <tx:method name="insert*" propagation="REQUIRED" rollback-for="Exception"/>
            <tx:method name="update*" propagation="REQUIRED" rollback-for="Exception"/>
            <tx:method name="delete*" propagation="REQUIRED" rollback-for="Exception"/>
            <tx:method name="*" propagation="SUPPORTS"/>
        tx:attributes>
    tx:advice>

    
    <aop:config>
        
        <aop:pointcut id="pointcut" expression="execution(* com.eggtwo.euq.service.*.*(..))"/>
        <aop:advisor advice-ref="tx" pointcut-ref="pointcut"/>
    aop:config>


    
    <bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate">
        <constructor-arg name="sqlSessionFactory" ref="sqlSessionFactoryBeanID"/>
    bean>


    
    <context:component-scan base-package="com.eggtwo.euq">
        <context:exclude-filter type="annotation"
                                expression="org.springframework.stereotype.Controller"/>
    context:component-scan>

    
    
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="sqlSessionFactory" ref="sqlSessionFactoryBeanID"/>
        <property name="basePackage" value="com.eggtwo.euq.dao"/>
    bean>

beans>

6.配置springmvc.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:p="http://www.springframework.org/schema/p"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
         http://www.springframework.org/schema/beans/spring-beans.xsd
          http://www.springframework.org/schema/context
         http://www.springframework.org/schema/context/spring-context.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
          http://www.springframework.org/schema/mvc
           http://www.springframework.org/schema/tx/spring-mvc.xsd

">


    
    <context:component-scan base-package="com.eggtwo.euq.action" />

    
    <context:annotation-config/>

    
    <bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">bean>


    
    
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        
        <property name="prefix" value="/WEB-INF/jsp/"/>
        
        <property name="suffix" value=".jsp"/>
        
    bean>


    
    <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
        <property name="messageConverters">
            <list>
                <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"/>
            list>
        property>
    bean>
    
    <bean id="multipartResolver"
          class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <property name="defaultEncoding" value="utf-8"/>
        <property name="maxUploadSize" value="10485760000"/>
        <property name="maxInMemorySize" value="40960"/>
    bean>
beans>

7.配置web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">

    
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListenerlistener-class>
    listener>
    <context-param>
        <param-name>contextConfigLocationparam-name>
        <param-value>classpath:spring.xmlparam-value>
    context-param>



    
    <servlet>
        
        <servlet-name>springmvcservlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServletservlet-class>
        <init-param>
            
            <param-name>contextConfigLocationparam-name>
            <param-value>classpath:springmvc.xmlparam-value>
        init-param>
        <load-on-startup>1load-on-startup>
    servlet>
    <servlet-mapping>
        <servlet-name>springmvcservlet-name>
        <url-pattern>*.actionurl-pattern>
    servlet-mapping>


    
    <filter>
        <filter-name>CharacterEncodingFilterfilter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilterfilter-class>
        <init-param>
            <param-name>encodingparam-name>
            <param-value>utf-8param-value>
        init-param>
    filter>
    <filter-mapping>
        <filter-name>CharacterEncodingFilterfilter-name>
        <url-pattern>/*url-pattern>
    filter-mapping>



web-app>

8.编写action

package com.eggtwo.euq.action;

import com.eggtwo.euq.entity.Member;
import com.eggtwo.euq.service.MemberService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

import java.math.BigDecimal;
import java.util.Date;

@Controller
@RequestMapping("member")
public class MemberController extends BaseController {
    @Autowired
    private MemberService memberService;
    @RequestMapping(value = "add", method = RequestMethod.GET)
    public String add(Model model)  {

        try{
            Member member = new Member();
            member.setName("旺旺");
            member.setScore(new BigDecimal(12));
            member.setMan(new Boolean(true));
            member.setBirthday(new Date());
            member.setAge(14);
            memberService.add(member);
        }catch (Exception e){
            e.printStackTrace();
        }
        return "member/add";


    }
}