一。大概构成

  1.mvc :model,view,controller。mybatis的作用是处理后端的数据,和数据库进行交互。springmvc是控制层,主要获取controller和controllerAdvice。spring主要作用是视图和连接其他两个的工具。

  2.大概的流程:前端发送请求交给controller了来处理,在controller层调service的方法,service再从具体的XXmapper.xml获取增删改查操作,前端的id数据可以从前端传来一些,增删改查完了以后,就开始往service,controller层推返回的结果,最后返回给前端一个页面。

  3.具体的模块是

1.首先新建一个maven工程,配置web.xml和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/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.neuedu.maven</groupId><artifactId>ssm</artifactId><version>0.0.1-SNAPSHOT</version><packaging>war</packaging><dependencies><!-- spring配置文件 --><dependency><groupId>org.springframework</groupId><artifactId>spring-beans</artifactId><version>4.0.0.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>4.0.0.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>4.0.0.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-expression</artifactId><version>4.0.0.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-aspects</artifactId><version>4.0.0.RELEASE</version></dependency><!-- oracle驱动 --><dependency><groupId>ojdbc</groupId><artifactId>ojdbc</artifactId><version>6</version></dependency><!-- mysql --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.37</version></dependency><!-- C3P0数据库连接池 --><dependency><groupId>com.mchange</groupId><artifactId>c3p0</artifactId><version>0.9.5.2</version></dependency><!-- 测试 --><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.9</version></dependency><!-- aop前面 AND Transaction事务 --><dependency><groupId>net.sourceforge.cglib</groupId><artifactId>com.springsource.net.sf.cglib</artifactId><version>2.2.0</version></dependency><dependency><groupId>org.aspectj</groupId><artifactId>aspectjweaver</artifactId><version>1.6.8</version></dependency><!-- JDBCTemplate and Transaction --><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>4.0.0.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-orm</artifactId><version>4.0.0.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>4.0.0.RELEASE</version></dependency><!-- springmvc --><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>4.0.0.RELEASE</version></dependency>    <!-- upload --><dependency><groupId>commons-fileupload</groupId><artifactId>commons-fileupload</artifactId><version>1.3.1</version></dependency><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.4.1</version></dependency><!-- 整合spring和mybatis --><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>1.3.0</version></dependency><!-- JSTL  --><dependency><groupId>org.apache.taglibs</groupId><artifactId>taglibs-standard-impl</artifactId><version>1.2.1</version></dependency><dependency><groupId>org.apache.taglibs</groupId><artifactId>taglibs-standard-spec</artifactId><version>1.2.1</version></dependency><!--JSON --><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-annotations</artifactId><version>2.1.5</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.1.5</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-core</artifactId><version>2.1.5</version></dependency><!-- jsp-servlet --><dependency><groupId>javax.servlet</groupId><artifactId>servlet-api</artifactId><version>2.5</version><scope>provided</scope></dependency><dependency><groupId>javax.servlet</groupId><artifactId>jsp-api</artifactId><version>2.0</version><scope>provided</scope></dependency><!-- https://mvnrepository.com/artifact/commons-logging/commons-logging --><dependency><groupId>commons-logging</groupId><artifactId>commons-logging</artifactId><version>1.1.3</version></dependency></dependencies><build><plugins><plugin><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</artifactId><version>2.2</version><configuration><path>/springmvc</path><port>8080</port></configuration></plugin></plugins></build>
</project>

配置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_2_5.xsd" version="2.5"><display-name>ssm</display-name><context-param><param-name>contextConfigLocation</param-name><param-value>classpath:applicationContext.xml</param-value></context-param><!-- Bootstraps the root web application context before servlet initialization --><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><servlet><servlet-name>springDispatcherServlet</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:springmvc.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet><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></filter><filter-mapping><filter-name>CharacterEncodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping>    <!-- Map all requests to the DispatcherServlet for handling --><servlet-mapping><servlet-name>springDispatcherServlet</servlet-name><url-pattern>/</url-pattern></servlet-mapping><!-- HiddenHttpMethodFilter过滤器可以将POST请求转化为put请求和delete请求! --><filter><filter-name>hiddenHttpMethodFilter</filter-name><filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class></filter><filter-mapping><filter-name>hiddenHttpMethodFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping><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>
</web-app>

2.写常用的几个类和包  

  1.entity包:放具体的模型如Student,employee.值得注意的是他与数据库的表的名字和类型最好一一对应,如果不是对应可以用驼峰命名,或者自定义命名。还可以通过改变sql的列名来达到统一。

  2.service包:放业务层,他可以从mapper。xml中获取数据,并将数据传输给控制层。

  3.contrller包:放控制器的用来从service获取数据并控制,决定了是否去前端,和传递数据的类型。

  4.mapper包:放各种从数据库获得的属性,值得注意的是他是EmployMapper.java和EmployMapper.xml一起存在的,免去了配置。前者是一个接口,后者是一个实现。

  5.资源包:值得注意的是它们都是在类类路径下,和上面的src下的文件是在同一级,底层就是这样翻译的。

    1.applicationContext :放除控制类的所有spring注解文件,配置数据库连接池,里面需要从jdbc.properties里面获取路径密码帐号和对应驱动,可以设置多个然后自己选择。配置jdbctemplate用来处理增删改查的工具类,很好用,不用再同原生的jdbc一样繁琐了。配置sqlSessionFactoryBean,用来数据库的操作。最后配置事务和MapperScannerConfigurer用来扫描mapper接口。

<?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:context="http://www.springframework.org/schema/context"xmlns:tx="http://www.springframework.org/schema/tx"xmlns:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsdhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd"><context:component-scan base-package="com.neuedu" use-default-filters="true"><context:exclude-filter type="annotation" expression="org.springframework.web.bind.annotation.ControllerAdvice"/><context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/></context:component-scan><context:property-placeholder location="classpath:jdbc.properties"/><bean id="comboPooledDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"><property name="user" value="${jdbc.user}"></property><property name="password" value="${jdbc.password}"></property><property name="jdbcUrl" value="${jdbc.jdbcUrl}"></property><property name="driverClass" value="${jdbc.driverClass}"></property></bean><bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"><constructor-arg ref="comboPooledDataSource" />    </bean><bean id="dataSourceTransactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><constructor-arg ref="comboPooledDataSource" />    </bean><tx:annotation-driven transaction-manager="dataSourceTransactionManager"/><bean id="sqlSessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean"><property name="dataSource" ref="comboPooledDataSource"></property><property name="configLocation" value="classpath:mybatis-config.xml"></property></bean><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><property name="basePackage" value="com.neuedu.ssm.mapper"></property></bean>
</beans>

    2.springMvc.xml:放控制类的注解,用来专门处理控制层。设置一个前缀后缀。设置静态文件的访问和注册了DefaultAnnotationHandlerMapping和AnnotationMethodHandlerAdapter两个bean。

<?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:context="http://www.springframework.org/schema/context"xmlns:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsdhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd"><context:component-scan base-package="com.neuedu" use-default-filters="false"><context:include-filter type="annotation" expression="org.springframework.web.bind.annotation.ControllerAdvice"/><context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/></context:component-scan><bean id="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/WEB-INF/views/"></property><property name="suffix" value=".jsp"></property></bean><mvc:view-controller path="/abc" view-name="success"/><mvc:annotation-driven/><mvc:default-servlet-handler/>
</beans>

     3.log4j.xml:生成对应的日志,用来检查程序的运行错误

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"><appender name="STDOUT" class="org.apache.log4j.ConsoleAppender"><param name="Encoding" value="UTF-8" /><layout class="org.apache.log4j.PatternLayout"><param name="ConversionPattern" value="%-5p %d{MM-dd HH:mm:ss,SSS} %m  (%F:%L) \n" /></layout></appender><logger name="java.sql"><level value="debug" /></logger><logger name="org.apache.ibatis"><level value="info" /></logger><root><level value="debug" /><appender-ref ref="STDOUT" /></root>
</log4j:configuration>

    4.mybatis:设置了驼峰命名和懒加载。

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration><settings><setting name="mapUnderscoreToCamelCase" value="true"/><!-- 开启懒加载机制 ,默认值为true--><setting name="lazyLoadingEnabled" value="true"/><!-- 开启的话,每个属性都会直接全部加载出来;禁用的话,只会按需加载出来 --><setting name="aggressiveLazyLoading" value="false"/></settings></configuration>

  5.jdbc.properties. 提供数据库连接的一些属性。

jdbc.jdbcUrl=jdbc:mysql://localhost:3306/mytabis?rewriteBatchedStatements=true
jdbc.driverClass=com.mysql.jdbc.Driver
jdbc.user=root
jdbc.password=yantao

 三.数据库的数据

  

  id是int型,user_name是string,gender是boolean,email是string,d_id是int型。需要注意的是系统用了驼峰式也就是说他会把数据库里的下划线去掉,并将下划线后面的第一个字母大写,完成属性对应即可,也可以自己设置属性对应。gender是0和1对应的false和true也就是女和男。

四。前端页面

  1.主页index.jsp,这是一个连接,通过链接来获取后端操作。

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body><a href="${pageContext.request.contextPath}/getList">获取列表</a>
</body>
</html>

  2.success.jsp,用来点击返回到前端的属性。

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body><h1>成功</h1>${list}
</body>
</html>

五。java具体的代码

  1.实体类

package com.neuedu.ssm.entity;
public class Employee {private int id;private String userName;private boolean gender;private int dId;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getUserName() {return userName;}public void setUserNameString(String userName) {this.userName = userName;}public boolean isGender() {return gender;}public void setGender(boolean gender) {this.gender = gender;}public int getdId() {return dId;}public void setdId(int dId) {this.dId = dId;}@Overridepublic String toString() {return "Employee [id=" + id + ", userNameString=" + userName+ ", gender=" + gender + ", dId=" + dId + "]";}public Employee() {super();}public Employee(int id, String userNameString, boolean gender, int dId) {super();this.id = id;this.userName = userNameString;this.gender = gender;this.dId = dId;}
}

 2.业务层

package com.neuedu.ssm.service;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.neuedu.ssm.entity.Employee;
import com.neuedu.ssm.mapper.EmployeeMapper;
@Service
public class EmployeeService {@Autowiredprivate EmployeeMapper mapper;public List<Employee> getList(){return    mapper.getList();}
}

  3.控制层

package com.neuedu.ssm.controller;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import com.neuedu.ssm.entity.Employee;
import com.neuedu.ssm.service.EmployeeService;
@Controller
public class EmployeeController {@Autowiredprivate EmployeeService service;@RequestMapping("/getList")public String getList(Map<String, Object> map){
List<Employee> list=service.getList();map.put("list", list);return "success";}
}

  4.数据库mapper接口和xml文件

package com.neuedu.ssm.mapper;
import java.util.List;
import com.neuedu.ssm.entity.Employee;
public interface EmployeeMapper {public List<Employee> getList();
}

   具体的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.neuedu.ssm.mapper.EmployeeMapper"><select id="getList" resultType="com.neuedu.ssm.entity.Employee" >select * from tbl_emp </select>
</mapper>

六。具体的实验操作

  1.运行maven项目,就是运行pom.xml,run as->maven build(第二个)->在goals运行tomcat7:run->run。

  2.这时控制台会出现一个这样http://localhost:8080/springmvc

  3.在浏览器运行这个网址,就可以访问主页。出现连接http://localhost:8080/springmvc/getList。并将数据库数据返回。

七.总结

  做个ssm项目思路首先分析需求,这个项目就是获取数据库的数据,然后基本的spring,springmvc,mybatis,jdbc.proprties,log4j的配置。设置一个主页,从主页向控制层推,写控制java,再返回一个页面。中间取一些参数放入map中,这里就用到了数据库的操作,就可以往service层,在其中完成增删改查,再往xxxmapper接口推,最后在xxxmapper.xml实现数据库的增删改查。最后取到数据返回给页面,注意有没有前后缀和位置。

  

  

 

  

转载于:https://www.cnblogs.com/guomingyt/p/8111222.html

ssm整合spring,springmvc,mybatis-day12相关推荐

  1. SSM整合——Spring+SpringMVC+MyBatis整合

    文章目录 1. 数据库环境 2. 项目基本结构搭建 3. 配置MyBatis 4. 配置Spring 5. 配置SpringMVC 6. Controller和视图层编写 7. 配置Tomcat,进行 ...

  2. SSM框架(spring+springmvc+mybatis)+Mysql实现的社区物业管理系统(功能包含分角色,报修管理、抄表管理、车位管理、房屋管理、业主管理、投诉管理、报修统计分析等)

    博客目录 SSM框架(spring+springmvc+mybatis)+Mysql实现的社区物业管理系统 实现功能截图 系统功能 使用技术 代码 完整源码 SSM框架(spring+springmv ...

  3. 基于SSM(Spring+SpringMVC+MyBatis)框架的健身俱乐部管理系统

    目录 项目介绍 运行环境 项目技术 使用说明 运行截图 项目介绍 基于SSM(Spring+SpringMVC+MyBatis)的健身俱乐部管理系统就能有效的改善当前所面临的问题.首先,此系统拥有线上 ...

  4. IDEA搭建简单的SSM(spring+springMVC+mybatis)框架

    一直想自己搭个后台框架来玩玩,只是惰性这个东西往往占据了上风,值此新春佳节,风和日丽,艳阳高照之际,就开始自己的博客之旅吧. 首先先来了解一下SSM这三个东西! (1)spring:是一个轻量级的ja ...

  5. Android客户端连接SSM(Spring+SpringMVC+Mybatis)框架Java服务器端

    Android客户端开发越来越流行,但是,Android客户端对应的服务器端采用什么框架呢?对于功能较为简单的应用,我建议,直接采用java web开发最简单的MVC框架即可(很多Android应用的 ...

  6. 基于SSM(Spring+SpringMVC+MyBatis)+ VUE框架前后端分离的汽车预约保养

    目录 项目介绍 运行环境 项目技术 使用说明 运行截图 项目介绍 本系统共分为:汽车保养公司与车主服务两个部分. 汽车保养公司包括:信息管理.零件库存.查看预约.售后事件四个功能模块:信息管理包括:员 ...

  7. SSM框架Spring+SpringMVC+MyBatis——详细整合教程

    2019独角兽企业重金招聘Python工程师标准>>> 摘要: 包括SQL Maps和Data Access Objects(DAO)MyBatis 消除了几乎所有的JDBC代码和参 ...

  8. 整合SSM(Spring+SpringMVC+MyBatis)-增删改查(上)

    新建maven web工程,添加web.xml 添加pom文件以及依赖,update项目.然后添加maven依赖. <project xmlns="http://maven.apach ...

  9. eclipse maven 搭建 SSM(Spring+SpringMVC+MyBatis)开发环境 和 MyBatis 自动生成的 maven 插件配置

    最近研究java web开发,首先需要配置好开发环境,查阅网上各位大神的文章后搭建完成,记录下来作为备忘. 1.安装Maven Maven下载地址:http://maven.apache.org/do ...

最新文章

  1. 哈理工计算机学院孙广路,我校举行人工智能前沿领域-计算机视觉专题报告会...
  2. 好程序员大数据独家解析-hadoop五大节点
  3. mysql食堂系统E R图_教务管理系统数据库E/R图
  4. css中一些必要的公共样式
  5. 命令行实现更强大的php交互
  6. JS之scrollTop不起作用的问题(兼容性有问题)
  7. 服务器屏蔽非法app请求
  8. android:Read-only file system解决
  9. Android 修改系统时间代码
  10. 500种精美字体下载,做设计做视频必备!
  11. Oracle如何对JDK收费
  12. Postgresql忘记密码,如何重置密码
  13. 2022N1叉车司机考试练习题及在线模拟考试
  14. 树莓派监测CPU温度
  15. ckplayer 播放视频
  16. synchronized锁升级之重量级锁
  17. OpenCV 画箭头 python
  18. 芯片验证漫游指南 pdf_更好地认识PDF 文件
  19. 系统杂类--------删除GHOSTwin7桌面顽固IE图标
  20. Chasedb1--视网膜血管分割数据集

热门文章

  1. php strcmp 比较汉字,php中strcmp() 比较中文是按照什么比较的
  2. mysql数据库横向转纵向_MariaDB Spider:实现MySQL横纵向扩展的小能手
  3. TORCHVISION MODELS
  4. pandas 删除行
  5. Basic concepts behind Web Audio API
  6. Python Logging Handler
  7. 百度 自然语言处理API
  8. 等保2.0丨2021 必须了解的40个问题
  9. Mysql学习总结(65)——项目实战中常用SQL实践总结
  10. Spring MVC学习总结(12)——Spring MVC集成Swagger时报错{schemaValidationMessages:[