SSM+Maven+MySql Eclipse下详细入门

前言

SSM(Spring、SpringMVC和Mybatis)+Mysql/Oracle 是作为后台的搭建的主要框架,现在主要的常见的开发集成工具有eclipse和IDEA,为了避免配置繁琐的jar包,我们使用eclipse创建Maven工程 。

1.1、Spring

Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。 简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。

1.2、SpringMVC

Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring MVC 分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。

1.3、MyBatis

MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。MyBatis是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAO)MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。

实现流程

1.Mysql数据表结构

SSM+Maven+MySql Eclipse下详细入门_第1张图片

SSM+Maven+MySql Eclipse下详细入门_第2张图片


2.创建Maven工程

SSM+Maven+MySql Eclipse下详细入门_第3张图片

SSM+Maven+MySql Eclipse下详细入门_第4张图片
SSM+Maven+MySql Eclipse下详细入门_第5张图片

项目创建好之后,默认的目录是这样的,至此项目就创建成功了.
SSM+Maven+MySql Eclipse下详细入门_第6张图片

3.项目配置

0.配置项目web.xml
新建项目的web.xml文件可能是2.3版本的,如下:
SSM+Maven+MySql Eclipse下详细入门_第7张图片
但我们通常需要的是3.0版本的
我们需要修改.setting的配置文件
SSM+Maven+MySql Eclipse下详细入门_第8张图片
将里面的1.5配置成1.6或者更高(我配置的是1.8)
SSM+Maven+MySql Eclipse下详细入门_第9张图片
SSM+Maven+MySql Eclipse下详细入门_第10张图片
SSM+Maven+MySql Eclipse下详细入门_第11张图片
配置完成后,项目->右键->properties->Project facets,看到以图表示配置成功
SSM+Maven+MySql Eclipse下详细入门_第12张图片

1.maven项目是应该有

src/main/resources

src/main/java

src/test/java

这几个Source Folder的,我们新建的项目却只有src/main/resources一个文件夹,当我们右键->new-> source folder时,输入src/main/java时却提示已存在.但是目录中并没有显示这个文件夹,我们右键->build path->configure build path->sources,会发现这两个文件夹其实已经建好了,但显示的红叉,后面标注着missing.
SSM+Maven+MySql Eclipse下详细入门_第13张图片
此时我们再切回libraries,选中JRE System library,点击edit
SSM+Maven+MySql Eclipse下详细入门_第14张图片

选择workspace default JRE,点击finish,再点击OK
SSM+Maven+MySql Eclipse下详细入门_第15张图片

此时我们会神奇的发现,那两个文件夹又显示出来了(不知道为什莫)
SSM+Maven+MySql Eclipse下详细入门_第16张图片

在java文件夹新建如下文件夹
SSM+Maven+MySql Eclipse下详细入门_第17张图片

4.Maven需要引入的jar包

pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0modelVersion>
    
    <groupId>com.wmjgroupId>
    
    <artifactId>angularDemoartifactId>
    <packaging>warpackaging>
    <version>0.0.1-SNAPSHOTversion>
    
    <name>angularDemo Maven Webappname>
    <url>http://maven.apache.orgurl>
    <properties>
        
        <spring.version>4.0.2.RELEASEspring.version>
        
        <mybatis.version>3.2.6mybatis.version>
        
        <slf4j.version>1.7.7slf4j.version>
        <log4j.version>1.2.17log4j.version>
    properties>
    <dependencies>
        <dependency>
            <groupId>junitgroupId>
            <artifactId>junitartifactId>
            <version>4.11version>
            
            <scope>testscope>
        dependency>
        
        <dependency>
            <groupId>org.springframeworkgroupId>
            <artifactId>spring-coreartifactId>
            <version>${spring.version}version>
        dependency>

        <dependency>
            <groupId>org.springframeworkgroupId>
            <artifactId>spring-webartifactId>
            <version>${spring.version}version>
        dependency>
        <dependency>
            <groupId>org.springframeworkgroupId>
            <artifactId>spring-oxmartifactId>
            <version>${spring.version}version>
        dependency>
        <dependency>
            <groupId>org.springframeworkgroupId>
            <artifactId>spring-txartifactId>
            <version>${spring.version}version>
        dependency>

        <dependency>
            <groupId>org.springframeworkgroupId>
            <artifactId>spring-jdbcartifactId>
            <version>${spring.version}version>
        dependency>

        <dependency>
            <groupId>org.springframeworkgroupId>
            <artifactId>spring-webmvcartifactId>
            <version>${spring.version}version>
        dependency>
        <dependency>
            <groupId>org.springframeworkgroupId>
            <artifactId>spring-aopartifactId>
            <version>${spring.version}version>
        dependency>

        <dependency>
            <groupId>org.springframeworkgroupId>
            <artifactId>spring-context-supportartifactId>
            <version>${spring.version}version>
        dependency>

        <dependency>
            <groupId>org.springframeworkgroupId>
            <artifactId>spring-testartifactId>
            <version>${spring.version}version>
        dependency>
        
        <dependency>
            <groupId>org.mybatisgroupId>
            <artifactId>mybatisartifactId>
            <version>${mybatis.version}version>
        dependency>
        
        <dependency>
            <groupId>org.mybatisgroupId>
            <artifactId>mybatis-springartifactId>
            <version>1.2.2version>
        dependency>
        
        <dependency>
            <groupId>javaxgroupId>
            <artifactId>javaee-apiartifactId>
            <scope>providedscope>
            <version>7.0version>
        dependency>
        
        <dependency>
            <groupId>mysqlgroupId>
            <artifactId>mysql-connector-javaartifactId>
            <version>5.1.30version>
        dependency>
        
        <dependency>
            <groupId>commons-dbcpgroupId>
            <artifactId>commons-dbcpartifactId>
            <version>1.2.2version>
        dependency>
        
        <dependency>
            <groupId>jstlgroupId>
            <artifactId>jstlartifactId>
            <version>1.2version>
        dependency>
        
        
        <dependency>
            <groupId>log4jgroupId>
            <artifactId>log4jartifactId>
            <version>${log4j.version}version>
        dependency>
        
        <dependency>
            <groupId>com.alibabagroupId>
            <artifactId>fastjsonartifactId>
            <version>1.1.41version>
        dependency>

        <dependency>
            <groupId>javax.servletgroupId>
            <artifactId>javax.servlet-apiartifactId>
            <version>3.0.1version>
            <scope>providedscope>
        dependency>

        <dependency>
            <groupId>org.slf4jgroupId>
            <artifactId>slf4j-apiartifactId>
            <version>${slf4j.version}version>
        dependency>

        <dependency>
            <groupId>org.slf4jgroupId>
            <artifactId>slf4j-log4j12artifactId>
            <version>${slf4j.version}version>
        dependency>
        
        
        <dependency>
            <groupId>org.codehaus.jacksongroupId>
            <artifactId>jackson-mapper-aslartifactId>
            <version>1.9.13version>
        dependency>
        
        <dependency>
            <groupId>commons-fileuploadgroupId>
            <artifactId>commons-fileuploadartifactId>
            <version>1.3.1version>
        dependency>
        <dependency>
            <groupId>commons-iogroupId>
            <artifactId>commons-ioartifactId>
            <version>2.4version>
        dependency>
        <dependency>
            <groupId>commons-codecgroupId>
            <artifactId>commons-codecartifactId>
            <version>1.9version>
        dependency>
        <dependency>
            <groupId>net.sf.json-libgroupId>
            <artifactId>json-libartifactId>
            <version>2.4version>
            <classifier>jdk15classifier>
        dependency>

    dependencies>
    <build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.apache.tomcat.mavengroupId>
                    <artifactId>tomcat7-maven-pluginartifactId>
                    <version>2.2version>
                    <configuration>
                        <port>9090port>
                        <path>/angularDemopath>
                        <uriEncoding>UTF-8uriEncoding>
                        <finalName>angularDemofinalName>
                        <server>tomcat7server>
                    configuration>
                plugin>
            plugins>
        pluginManagement>
        <resources>  
            <resource>  
                <directory>src/main/javadirectory>  
                <includes>  
                    <include>**/*.propertiesinclude>  
                    <include>**/*.xmlinclude>  
                includes>  
                <filtering>falsefiltering>  
            resource>  
        resources>  
        
        <finalName>angularDemofinalName>

    build>
project>

5.Spring与MyBatis的整合

所有需要的JAR包都引入以后,首先进行Spring与MyBatis的整合

5.1建立JDBC属性文件
jdbc.properties(文件编码修改为utf-8)
SSM+Maven+MySql Eclipse下详细入门_第18张图片

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/demo
username=root
password=wmj
initialSize=0
maxActive=20
maxIdle=20
minIdle=1
maxWait=60000

5.1 建立spring-mybatis.xml配置文件
这个文件就是用来完成spring和mybatis的整合的。这里面也没多少行配置,主要的就是自动扫描,自动注入,配置数据库。
这里写图片描述

代码

  
<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:mvc="http://www.springframework.org/schema/mvc"  
    xsi:schemaLocation="http://www.springframework.org/schema/beans    
                        http://www.springframework.org/schema/beans/spring-beans-3.1.xsd    
                        http://www.springframework.org/schema/context    
                        http://www.springframework.org/schema/context/spring-context-3.1.xsd    
                        http://www.springframework.org/schema/mvc    
                        http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">  
      
    <context:component-scan base-package="com.wmj.SSM" />  
      
    <bean id="propertyConfigurer"  
        class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">  
        <property name="location" value="classpath:jdbc.properties" />  
    bean>  

    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"  
        destroy-method="close">  
        <property name="driverClassName" value="${driver}" />  
        <property name="url" value="${url}" />  
        <property name="username" value="${username}" />  
        <property name="password" value="${password}" />  
          
        <property name="initialSize" value="${initialSize}">property>  
          
        <property name="maxActive" value="${maxActive}">property>  
          
        <property name="maxIdle" value="${maxIdle}">property>  
          
        <property name="minIdle" value="${minIdle}">property>  
          
        <property name="maxWait" value="${maxWait}">property>  
    bean>  

      
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">  
        <property name="dataSource" ref="dataSource" />  
          
        <property name="mapperLocations" value="classpath:com/wmj/SSM/**/*.xml">property>  
    bean>  

      
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">  
        <property name="basePackage" value="com.wmj.SSM.Dao" />  
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory">property>  
    bean>  

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

beans>  

5.3、Log4j的配置
log4j.properties 为了方便调试,一般都会使用日志来输出信息,Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件,甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。

这里写图片描述


log4j.rootLogger=INFO,Console,File  

log4j.appender.Console=org.apache.log4j.ConsoleAppender  
log4j.appender.Console.Target=System.out  

log4j.appender.Console.layout = org.apache.log4j.PatternLayout  
log4j.appender.Console.layout.ConversionPattern=[%c] - %m%n  

log4j.appender.File = org.apache.log4j.RollingFileAppender  

log4j.appender.File.File = logs/ssm.log  

log4j.appender.File.MaxFileSize = 10MB  

log4j.appender.File.Threshold = ALL  
log4j.appender.File.layout = org.apache.log4j.PatternLayout  
log4j.appender.File.layout.ConversionPattern =[%p] [%d{yyyy-MM-dd HH\:mm\:ss}][%c]%m%n

6、整合SpringMVC

上面已经完成了2大框架的整合,SpringMVC的配置文件单独放,然后在web.xml中配置整合。
6.1配置spring-mvc.xml
配置里面的注释也很详细,在此就不说了,主要是自动扫描控制器,视图模式,注解的启动这三个。


<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:mvc="http://www.springframework.org/schema/mvc"
    xsi:schemaLocation="http://www.springframework.org/schema/beans  
                        http://www.springframework.org/schema/beans/spring-beans-3.1.xsd  
                        http://www.springframework.org/schema/context  
                        http://www.springframework.org/schema/context/spring-context-3.1.xsd  
                        http://www.springframework.org/schema/mvc  
                        http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">
    
    <context:component-scan base-package="com.wmj.SSM" />
    
    <bean id="mappingJacksonHttpMessageConverter"
        class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
        <property name="supportedMediaTypes">
            <list>
                <value>text/html;charset=UTF-8value>
            list>
        property>
    bean>
    
    <bean
        class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
        <property name="messageConverters">
            <list>
                <ref bean="mappingJacksonHttpMessageConverter" />   
            list>
        property>
    bean>
    

    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/">property>
        <property name="suffix" value="">property>
        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView">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> 
    <mvc:default-servlet-handler/>
    <mvc:annotation-driven />  

beans>

6.2在web.xml中进行整合


<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://java.sun.com/xml/ns/javaee"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    version="3.0">
    <display-name>Archetype Created Web Applicationdisplay-name>
    
    <context-param>
        <param-name>contextConfigLocationparam-name>
        <param-value>classpath:spring-mybatis.xmlparam-value>
    context-param>
    
    <filter>
        <filter-name>encodingFilterfilter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilterfilter-class>
        <async-supported>trueasync-supported>
        <init-param>
            <param-name>encodingparam-name>
            <param-value>UTF-8param-value>
        init-param>
    filter>
    <filter-mapping>
        <filter-name>encodingFilterfilter-name>
        <url-pattern>/*url-pattern>
    filter-mapping>
    
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListenerlistener-class>
    listener>
    
    <listener>
        <listener-class>org.springframework.web.util.IntrospectorCleanupListenerlistener-class>
    listener>

    
    <servlet>
        <servlet-name>SpringMVCservlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServletservlet-class>
        <init-param>
            <param-name>contextConfigLocationparam-name>
            <param-value>classpath:spring-mvc.xmlparam-value>
        init-param>
        <load-on-startup>1load-on-startup>
        <async-supported>trueasync-supported>
    servlet>
    <servlet-mapping>
        <servlet-name>SpringMVCservlet-name>
        
        <url-pattern>/url-pattern>
    servlet-mapping>

    <welcome-file-list>
        <welcome-file>/index.htmlwelcome-file>
    welcome-file-list>
    
    <session-config>
        <session-timeout>15session-timeout>
    session-config>
    <error-page>
        <error-code>404error-code>
        <location>/location>
    error-page>
web-app>

7.具体代码过程

7.1 在Pojo中建立实体类 studentInfo.java

public class studentInfo {
    private Integer stuNum;
    private String stuName;
    private Integer stuAge;
    public Integer getStuAge() {
        return stuAge;
    }
    public void setStuAge(Integer stuAge) {
        this.stuAge = stuAge;
    }
    private String stuMajor;
    public Integer getStuNum() {
        return stuNum;
    }
    public void setStuNum(Integer stuNum) {
        this.stuNum = stuNum;
    }
    public String getStuName() {
        return stuName;
    }
    public void setStuName(String stuName) {
        this.stuName = stuName;
    }

    public String getStuMajor() {
        return stuMajor;
    }
    public void setStuMajor(String stuMajor) {
        this.stuMajor = stuMajor;
    }
}

7.2在持久层中Dao文件夹建立studentInfoDao.java

import java.util.List;

import com.wmj.SSM.Pojo.studentInfo;

public interface studentInfoDao {
    //获取所有学生信息
    List getAllStudentInfo();
    //根据学号获取学生信息并返回list
    List getStudentInfoByNumReturnList(int stuNum);
    //根据学号获取学生信息
    studentInfo getStudentInfoByNum(Integer stuNum);
    //根据姓名获取学生信息
    studentInfo getStudentInfoByName(String stuName);
    //根据学号获取学生信息
    studentInfo getStudentInfoByMajor(String stuMajor);

    //修改学生信息
    int updateStudentInfo(studentInfo stuInfo);

    //添加学生信息
    int addStudentInfo(studentInfo stuInfo);

    //根据学号删除学生信息
    int deleteStudentInfo(Integer num);
}

7.3在Mapper文件下新建stuInfoMapper.xml 与数据库交互

"1.0" encoding="UTF-8" ?>
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
namespace="com.wmj.SSM.Dao.studentInfoDao" >
"stuResultMap" type="com.wmj.SSM.Pojo.studentInfo" >
    "stuNum" property="stuNum" jdbcType="INTEGER" />
    "stuName" property="stuName" jdbcType="VARCHAR" />
    "stuAge" property="stuAge" jdbcType="INTEGER" />
    "stuMajor" property="stuMajor" jdbcType="VARCHAR" />
  

  <select id="getAllStudentInfo"  parameterType="java.lang.Integer" resultMap="stuResultMap">
    select stuNum,stuName,stuAge,stuMajor from stu_info 
  select>
  <select id="getStudentInfoByNumReturnList"  parameterType="java.lang.Integer" resultMap="stuResultMap">
    select stuNum,stuName,stuAge,stuMajor from stu_info where stuNum = #{stuNum}
  select>
  <select id="getStudentInfoByNum"  parameterType="java.lang.Integer" resultMap="stuResultMap">
    select stuNum,stuName,stuAge,stuMajor from stu_info where stuNum = #{stuNum}
  select>
  <select id="getStudentInfoByName"  parameterType="string" resultMap="stuResultMap">
    select stuNum,stuName,stuAge,stuMajor from stu_info where stuName = #{stuName}
  select>
  <select id="getStudentInfoByMajor"  parameterType="string" resultMap="stuResultMap">
    select stuNum,stuName,stuAge,stuMajor from stu_info where stuMajor = #{stuMajor}
  select>
  "updateStudentInfo" parameterType="com.wmj.SSM.Pojo.studentInfo">
     update stu_info
    <set >
      <if test="stuNum != null" >
        stuNum = #{stuNum},
      if>
      <if test="stuName != null" >
        stuName = #{stuName},
      if>
      <if test="stuAge != null" >
        stuAge = #{stuAge},
      if>
      <if test="stuMajor != null" >
        stuMajor = #{stuMajor},
      if>
    set>
    where stuNum = #{stuNum}
  

  "addStudentInfo" parameterType="com.wmj.SSM.Pojo.studentInfo" >
   insert into stu_info values (#{stuNum}, #{stuName}, #{stuAge}, #{stuMajor})
  

  "deleteStudentInfo" parameterType="java.lang.Integer" >
    delete from stu_info
    where stuNum = #{stuNum}
  

7.4在service中新建studentInfoService.java 声明服务层接口

import java.util.List;

import com.wmj.SSM.Pojo.studentInfo;;

public interface studentInfoService {
    //获取所有学生信息
    public List getAllStudentInfo();
    //根据学号获取学生信息,返回List
    public List getStudentInfoByNumReturnList(int num);
    //根据学号获取学生信息
    public studentInfo getStudentInfoByNum(Integer num);
    //根据姓名获取学生信息
    public studentInfo getStudentInfoByName(String name);
    //根据专业获取学生信息
    public studentInfo getStudentInfoByMajor(String major);
    //修改学生信息
    int updateStudentInfo(studentInfo stuInfo);

    //添加学生信息
    int addStudentInfo(studentInfo stuInfo);

    //根据学号删除学生信息
    int deleteStudentInfo(Integer num);
}

7.5在实现层新建impl文件夹,作为service接口的实现层,新建studentInfoImpl.java

package com.wmj.SSM.Service.impl;

import java.util.List;

import javax.annotation.Resource;
import org.springframework.stereotype.Service;

import com.wmj.SSM.Dao.studentInfoDao;
import com.wmj.SSM.Pojo.studentInfo;
import com.wmj.SSM.Service.studentInfoService;

@Service("studentInfoService")
public class studentInfoServiceImpl implements studentInfoService {

    @Resource
    private studentInfoDao stuInfoDao;

    @Override
    public List getAllStudentInfo() {
        List stuInfo =this.stuInfoDao.getAllStudentInfo();
        return stuInfo;
    }

    @Override
    public List getStudentInfoByNumReturnList(int num) {
        List stuInfo =this.stuInfoDao.getStudentInfoByNumReturnList(num);
        return stuInfo;
    }
    @Override
    public studentInfo getStudentInfoByNum(Integer stuNum) {
        studentInfo stuInfo =this.stuInfoDao.getStudentInfoByNum(stuNum);
        return stuInfo;  
    }
    @Override
    public studentInfo getStudentInfoByName(String stuName) {
        // TODO Auto-generated method stub
        return null;
    }
    @Override
    public studentInfo getStudentInfoByMajor(String stuMajor) {
        // TODO Auto-generated method stub
        return null;
    }
    @Override
    public int updateStudentInfo(studentInfo stuInfo) {
        return this.stuInfoDao.updateStudentInfo(stuInfo);
    }
    @Override
    public int  addStudentInfo(studentInfo stuInfo) {
        return this.stuInfoDao.addStudentInfo(stuInfo);
    }
    @Override
    public int deleteStudentInfo(Integer num) {
        return this.stuInfoDao.deleteStudentInfo(num);

    }



}

7.6在controller层新建stuInfoController.java文件作为与前台交互

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import com.wmj.framework.util.JSONUtil;
import com.wmj.framework.vo.JSONVO;
import com.wmj.SSM.Pojo.studentInfo;
import com.wmj.SSM.Service.studentInfoService;

import net.sf.json.JSONObject;
import net.sf.json.JSONArray;

@RestController
@RequestMapping("/stu")
public class stuInfoController {
    @Resource
    private studentInfoService  stuInfoService;

    @RequestMapping(value="/selectStu")
    public List selectStu(HttpServletRequest request, HttpServletResponse response, String json){
        JSONObject jsonobject = JSONObject.fromObject(json);
        studentInfo rule = (studentInfo) JSONObject.toBean(jsonobject, studentInfo.class);
        List RestuInfo = new ArrayList();
        if(rule.getStuNum()!=null){
            RestuInfo=stuInfoService.getStudentInfoByNumReturnList(rule.getStuNum());
        }else{
            RestuInfo=stuInfoService.getAllStudentInfo();
        }
        return RestuInfo;
    }
    //根据学号查询信息
    @RequestMapping(value="/getDataByNum")
    public void getDataByNum(HttpServletRequest request, HttpServletResponse response, Integer num) {
        studentInfo entity = stuInfoService.getStudentInfoByNum(num);
        response.setContentType("text/html");
        response.setCharacterEncoding("UTF-8");
        try {
            response.getWriter().print(JSONObject.fromObject(entity));
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    @RequestMapping(value="/addStudentInfo")
    public void addStudentInfo(HttpServletRequest request, HttpServletResponse response, String json){
        JSONObject jsonobject = JSONObject.fromObject(json);
        studentInfo rule = (studentInfo) JSONObject.toBean(jsonobject, studentInfo.class);
         int result = stuInfoService.addStudentInfo(rule);

         //这些都是灵活的返回提示,
        JSONVO jsonVO = null;
        if (result > 0) {
            jsonVO = new JSONVO(result, "添加成功");
        } else {
            jsonVO = new JSONVO(result, "添加失败");
        }
        response.setContentType("text/html");
        response.setCharacterEncoding("UTF-8");
        try {
            response.getWriter().print(jsonVO);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    @RequestMapping(value="deleteDataByIds")
    public void deleteDataById(HttpServletRequest request, HttpServletResponse response, Integer num) {
        int result = stuInfoService.deleteStudentInfo(num);
        JSONVO jsonVO = null;
        if (result > 0) {
            jsonVO = new JSONVO(result, "删除成功");
        } else {
            jsonVO = new JSONVO(result, "删除失败");
        }
        response.setContentType("text/html");
        response.setCharacterEncoding("UTF-8");
        try {
            response.getWriter().print(jsonVO);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    @RequestMapping(value="updateStudentInfo")
    public void updateStudentInfo(HttpServletRequest request, HttpServletResponse response, String json) {
        JSONObject jsonobject = JSONObject.fromObject(json);
        studentInfo rule = (studentInfo) JSONObject.toBean(jsonobject, studentInfo.class);
         int result = stuInfoService.updateStudentInfo(rule);

         //这些都是灵活的返回提示,
        JSONVO jsonVO = null;
        if (result > 0) {
            jsonVO = new JSONVO(result, "更新成功");
        } else {
            jsonVO = new JSONVO(result, "更新失败");
        }
        response.setContentType("text/html");
        response.setCharacterEncoding("UTF-8");
        try {
            response.getWriter().print(jsonVO);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }


}

至此,ssm+maven的后台就完成了。
附带一个,自己用ExtJs +SSM+maven 在eclipse中完整的小例子:
http://download.csdn.net/download/idomyway/10161616

实现效果

SSM+Maven+MySql Eclipse下详细入门_第19张图片

你可能感兴趣的:(SSM)