SSM框架--(Spring+SpringMVC+Mybatis整合)附源码

来源:互联网 发布:sql date 编辑:程序博客网 时间:2024/05/17 02:05

框架搭建步骤:

源码下载地址:

http://download.csdn.net/download/tt741472287/10110611

创建目录

  • 创建Dynamic Web Project项目,创建工程目录,导入jar包,并创建jdbc.properties,log4j.properties属性文件。
    这里写图片描述

文件结构:
这里写图片描述


com.ssm.config包

这里写图片描述
- mybatis-config.xml配置文件

<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration>    <mappers>        <mapper resource="com/ssm/mapper/StudentMapper.xml" />    </mappers></configuration>
  • spring-dao.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: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/mvc        http://www.springframework.org/schema/mvc/spring-mvc.xsd">    <context:component-scan base-package="com.ssm.dao"></context:component-scan>    <context:property-placeholder location="classpath:jdbc.properties" />    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"        destroy-method="close">        <property name="driverClassName" value="${mysql.driver}"></property>        <property name="url" value="${mysql.url}"></property>        <property name="username" value="${mysql.username}"></property>        <property name="password" value="${mysql.password}"></property>    </bean>    <!-- 利用Spring框架来创建和管理MyBatis的SqlSessionFactory -->    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">        <property name="dataSource" ref="dataSource"></property>        <property name="configLocation" value="classpath:com/ssm/config/mybatis-config.xml"></property>    </bean>    <!-- 扫描MyBatis Dao层中接口,同时关联接口中的方法和映射文件的标签id名称 -->    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">        <property name="basePackage" value="com.ssm.dao"></property>        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>    </bean></beans>
  • spring-service.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: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/mvc        http://www.springframework.org/schema/mvc/spring-mvc.xsd">      <context:component-scan base-package="com.ssm.service"></context:component-scan>        </beans>
  • 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: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/mvc        http://www.springframework.org/schema/mvc/spring-mvc.xsd">        <context:component-scan base-package="com.ssm"></context:component-scan>        <!-- springMVC启用注解 -->        <mvc:annotation-driven></mvc:annotation-driven>        <!-- 内部资源视图解析器    -->        <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"        p:prefix="/WEB-INF/jsp/" p:suffix=".jsp"></bean></beans>

com.ssm.controller包

package com.ssm.controller;import java.util.List;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import com.ssm.entity.Student;import com.ssm.service.StudentService;import com.ssm.service.impl.StudentServiceImpl;@Controller@RequestMapping("/authuser")public class AuthUserController {    @Autowired    private StudentService studentService;    @RequestMapping("/login")    public String login(){        System.out.println(studentService.hashCode());        List<Student> list=studentService.getStudent();        for(Student student:list){            System.out.println(student.toString());        }        return "login";    }}

com.ssm.dao包

package com.ssm.dao;import java.util.List;import com.ssm.entity.Student;public interface StudentDao {    public List<Student> getStudent();}

com.ssm.entity包

package com.ssm.entity;/** * 实体类 * @author caleb * */public class Student {    /**     * This field was generated by MyBatis Generator.     * This field corresponds to the database column mk_cmm_area.id     *     * @mbggenerated Mon Oct 30 17:51:08 CST 2017     */    private Long id;    /**     * This field was generated by MyBatis Generator.     * This field corresponds to the database column mk_cmm_area.parent_id     *     * @mbggenerated Mon Oct 30 17:51:08 CST 2017     */    private Long parentId;    /**     * This field was generated by MyBatis Generator.     * This field corresponds to the database column mk_cmm_area.depth     *     * @mbggenerated Mon Oct 30 17:51:08 CST 2017     */    private Integer depth;    /**     * This field was generated by MyBatis Generator.     * This field corresponds to the database column mk_cmm_area.name     *     * @mbggenerated Mon Oct 30 17:51:08 CST 2017     */    private String name;    /**     * This field was generated by MyBatis Generator.     * This field corresponds to the database column mk_cmm_area.full_name     *     * @mbggenerated Mon Oct 30 17:51:08 CST 2017     */    private String fullName;    /**     * This field was generated by MyBatis Generator.     * This field corresponds to the database column mk_cmm_area.longitude     *     * @mbggenerated Mon Oct 30 17:51:08 CST 2017     */    private Double longitude;    /**     * This field was generated by MyBatis Generator.     * This field corresponds to the database column mk_cmm_area.latitude     *     * @mbggenerated Mon Oct 30 17:51:08 CST 2017     */    private Double latitude;    /**     * This field was generated by MyBatis Generator.     * This field corresponds to the database column mk_cmm_area.rank     *     * @mbggenerated Mon Oct 30 17:51:08 CST 2017     */    private Integer rank;    /**     * This field was generated by MyBatis Generator.     * This field corresponds to the database column mk_cmm_area.flag_enable     *     * @mbggenerated Mon Oct 30 17:51:08 CST 2017     */    private Integer flagEnable;    /**     * This field was generated by MyBatis Generator.     * This field corresponds to the database column mk_cmm_area.flag_visible     *     * @mbggenerated Mon Oct 30 17:51:08 CST 2017     */    private Integer flagVisible;    /**     * This field was generated by MyBatis Generator.     * This field corresponds to the database column mk_cmm_area.initals     *     * @mbggenerated Mon Oct 30 17:51:08 CST 2017     */    private String initals;    public Long getId() {        return id;    }    public void setId(Long id) {        this.id = id;    }    public Long getParentId() {        return parentId;    }    public void setParentId(Long parentId) {        this.parentId = parentId;    }    public Integer getDepth() {        return depth;    }    public void setDepth(Integer depth) {        this.depth = depth;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public String getFullName() {        return fullName;    }    public void setFullName(String fullName) {        this.fullName = fullName;    }    public Double getLongitude() {        return longitude;    }    public void setLongitude(Double longitude) {        this.longitude = longitude;    }    public Double getLatitude() {        return latitude;    }    public void setLatitude(Double latitude) {        this.latitude = latitude;    }    public Integer getRank() {        return rank;    }    public void setRank(Integer rank) {        this.rank = rank;    }    public Integer getFlagEnable() {        return flagEnable;    }    public void setFlagEnable(Integer flagEnable) {        this.flagEnable = flagEnable;    }    public Integer getFlagVisible() {        return flagVisible;    }    public void setFlagVisible(Integer flagVisible) {        this.flagVisible = flagVisible;    }    public String getInitals() {        return initals;    }    public void setInitals(String initals) {        this.initals = initals;    }    @Override    public String toString() {        return "Student [id=" + id + ", parentId=" + parentId + ", depth=" + depth + ", name=" + name + ", fullName="                + fullName + ", longitude=" + longitude + ", latitude=" + latitude + ", rank=" + rank + ", flagEnable="                + flagEnable + ", flagVisible=" + flagVisible + ", initals=" + initals + "]";    }}

com.ssm.mapper包

<?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.ssm.dao.StudentDao">    <select id="getStudent" resultType="com.ssm.entity.Student">        select * from mk_cmm_area    </select></mapper>

com.ssm.service包

package com.ssm.service;import java.util.List;import com.ssm.entity.Student;public interface StudentService {    List<Student> getStudent();}

com.ssm.service.impl包

package com.ssm.service.impl;import java.util.List;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import com.ssm.dao.StudentDao;import com.ssm.entity.Student;import com.ssm.service.StudentService;@Servicepublic class StudentServiceImpl implements StudentService{    @Autowired    private StudentDao studentDao;    public StudentServiceImpl() {        System.out.println("StudentServiceImpl====================construction");    }    @Override    public List<Student> getStudent() {        // TODO Auto-generated method stub        return studentDao.getStudent();//      return null;    }}

jdbc.properties文件

mysql.driver=com.mysql.jdbc.Drivermysql.url=jdbc:mysql://localhost:3306/testmysql.username=rootmysql.password=root

log4j.properties文件

log4j.rootLogger=info, Console#Consolelog4j.appender.Console=org.apache.log4j.ConsoleAppenderlog4j.appender.Console.layout=org.apache.log4j.PatternLayoutlog4j.appender.Console.layout.ConversionPattern=%d  %p  - %m%nlog4j.logger.java.sql.ResultSet=INFOlog4j.logger.org.apache=INFOlog4j.logger.java.sql.Connection=DEBUGlog4j.logger.java.sql.Statement=DEBUGlog4j.logger.java.sql.PreparedStatement=DEBUG

web.xml配置文件

<?xml version="1.0" encoding="UTF-8"?><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" id="WebApp_ID" version="3.0">  <display-name>project0_ssm</display-name>  <welcome-file-list>    <welcome-file>index.html</welcome-file>    <welcome-file>index.htm</welcome-file>    <welcome-file>index.jsp</welcome-file>    <welcome-file>default.html</welcome-file>    <welcome-file>default.htm</welcome-file>    <welcome-file>default.jsp</welcome-file>  </welcome-file-list>  <filter>        <filter-name>CharacterEncodingFilter</filter-name>        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>        <init-param>            <param-name>encoding</param-name>            <param-value>UTF-8</param-value>        </init-param>        <init-param>            <param-name>forceEncoding</param-name>            <param-value>true</param-value>        </init-param>    </filter>    <filter-mapping>        <filter-name>CharacterEncodingFilter</filter-name>        <url-pattern>/*</url-pattern>    </filter-mapping>    <!--Tomcat Web容器上下文变量参数  -->    <context-param>        <param-name>contextConfigLocation</param-name>        <param-value>classpath:com/ssm/config/spring-*.xml</param-value>    </context-param>    <!-- Spring 刷新Introspector防止内存泄露 -->    <listener>      <listener-class>        org.springframework.web.util.IntrospectorCleanupListener      </listener-class>    </listener>     <!--整合spring容器  -->    <listener>        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>    </listener>    <!--整合SpringMVC容器,配置SpringMVC的前端控制器  -->    <servlet>        <servlet-name>springmvc</servlet-name>        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>        <init-param>            <param-name>contextConfigLocation</param-name>            <param-value>classpath:com/ssm/config/springmvc.xml</param-value>        </init-param>        <load-on-startup>1</load-on-startup>    </servlet>    <servlet-mapping>        <servlet-name>springmvc</servlet-name>        <url-pattern>*.do</url-pattern>    </servlet-mapping></web-app>

数据库脚本

/*Navicat MySQL Data TransferSource Server         : localhost_3306Source Server Version : 50546Source Host           : localhost:3306Source Database       : testTarget Server Type    : MYSQLTarget Server Version : 50546File Encoding         : 65001Date: 2017-11-08 23:00:27*/SET FOREIGN_KEY_CHECKS=0;-- ------------------------------ Table structure for mk_cmm_area-- ----------------------------DROP TABLE IF EXISTS `mk_cmm_area`;CREATE TABLE `mk_cmm_area` (  `id` bigint(20) NOT NULL,  `parent_id` bigint(20) DEFAULT NULL,  `depth` int(11) DEFAULT NULL COMMENT '层级',  `name` varchar(32) DEFAULT NULL,  `full_name` varchar(64) DEFAULT NULL,  `longitude` double(12,8) DEFAULT NULL,  `latitude` double(12,8) DEFAULT NULL,  `rank` int(11) DEFAULT '0' COMMENT '显示顺序(从小到大显示)',  `flag_enable` int(11) DEFAULT '1' COMMENT '是否可用,0否,1是',  `flag_visible` int(11) DEFAULT '1' COMMENT '是否可见,0否,1是',  `initals` char(1) DEFAULT NULL COMMENT '首字母',  PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;-- ------------------------------ Records of mk_cmm_area-- ----------------------------INSERT INTO `mk_cmm_area` VALUES ('110105', '110100', '2', '朝阳', '朝阳区', '116.48641000', '39.92149000', '2', '1', '1', null);INSERT INTO `mk_cmm_area` VALUES ('110106', '110100', '2', '丰台', '丰台区', '116.28696400', '39.86364400', '6', '1', '1', null);