创建 maven 项目




刚创建好的 maven 项目结构

整合 SSM 框架后的项目结构

数据库环境

创建 mybatis 数据库,在 mybatis 数据库中创建 teacher 数据库表,然后在 表中插入 几行数据

/*
SQLyog Ultimate v12.09 (64 bit)
MySQL - 5.5.53
*********************************************************************
*/
/*!40101 SET NAMES utf8 */;create table `teacher` (`id` int (11),`name` varchar (75),`age` int (15),`major` varchar (165)
);
insert into `teacher` (`id`, `name`, `age`, `major`) values('17070101','张宝生','19','移动互联');
insert into `teacher` (`id`, `name`, `age`, `major`) values('17070102','刘佳明','21','软件技术');
insert into `teacher` (`id`, `name`, `age`, `major`) values('17070103','李美美','18','软件测试');
insert into `teacher` (`id`, `name`, `age`, `major`) values('17070104','方逸雅','19','商务英语');
insert into `teacher` (`id`, `name`, `age`, `major`) values('17070105','米俊非','20','计算机网络技术');
insert into `teacher` (`id`, `name`, `age`, `major`) values('17070106','程婉盈','18','护理学');
pom.xml
<?xml version="1.0" encoding="UTF-8"?><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.CD4356</groupId><artifactId>ssm_Demo</artifactId><version>1.0-SNAPSHOT</version><packaging>war</packaging><name>ssm_Demo Maven Webapp</name><!-- FIXME change it to the project's website --><url>http://www.example.com</url><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><maven.compiler.source>1.7</maven.compiler.source><maven.compiler.target>1.7</maven.compiler.target></properties><dependencies><!-- 添加spring所需依赖 --><!-- https://mvnrepository.com/artifact/org.springframework/spring-beans --><dependency><groupId>org.springframework</groupId><artifactId>spring-beans</artifactId><version>4.3.23.RELEASE</version></dependency><!-- https://mvnrepository.com/artifact/org.springframework/spring-core --><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>4.3.23.RELEASE</version></dependency><!-- https://mvnrepository.com/artifact/org.springframework/spring-context --><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>4.3.23.RELEASE</version></dependency><!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc --><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>4.3.23.RELEASE</version></dependency><!-- https://mvnrepository.com/artifact/org.springframework/spring-test --><dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>4.3.23.RELEASE</version><scope>compile</scope></dependency><!--MyBatis整合Spring中间包依赖--><!--https://mvnrepository.com/artifact/org.mybatis/mybatis-spring/1.3.2--><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>1.3.2</version></dependency><!-- 添加mybatis依赖 --><!-- https://mvnrepository.com/artifact/org.mybatis/mybatis/3.1.1 --><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.1.1</version></dependency><!-- 添加mysql驱动依赖 --><!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java/5.1.46 --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.29</version></dependency><!--添加spring-webmvc依赖--><!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc --><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>4.3.23.RELEASE</version></dependency><!-- 添加日志相关依赖 --><!--https://mvnrepository.com/artifact/log4j/log4j/1.2.17--><!--<dependency>--><!--<groupId>log4j</groupId>--><!--<artifactId>log4j</artifactId>--><!--<version>1.2.17</version>--><!--</dependency>--><!--添加测试依赖--><!-- https://mvnrepository.com/artifact/junit/junit --><!--<dependency>--><!--<groupId>junit</groupId>--><!--<artifactId>junit</artifactId>--><!--<version>4.12</version>--><!--<scope>compile</scope>--><!--</dependency>--><!-- JSP标签库--><dependency><groupId>jstl</groupId><artifactId>jstl</artifactId><version>1.2</version></dependency></dependencies></project>
Teacher.java
package com.CD4356.pojo;public class Teacher {private int id;private String name;private int age;private String major;public int getId() {return id;}public void setId(int id) {this.id = id;}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 String getMajor() {return major;}public void setMajor(String major) {this.major = major;}@Overridepublic String toString() {return "Teacher [id="+id+", name="+name+",age="+age+",major="+major+"]";}
}
TeacherMapper.xml

Mapper 映射器接口 在这里其实就相当于 Dao

package com.CD4356.mapper;import com.CD4356.pojo.Teacher;
import java.util.List;public interface TeacherMappepr {List<Teacher> getAll();}
Teacher.xml

注意<mapper> 标签的 namespace 属性的值 必须为 指定 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.CD4356.mapper.TeacherMappepr"><!--查所有--><!--select标签的id 对应 mapper接口的方法名--><select id="getAll" resultType="Teacher">select * from teacher</select></mapper>
TeacherService.java

在这里这种简单的逻辑中,虽然没有必要定义 Service ,但在一些复杂的逻辑中,Service 是必不可少的,养成要的习惯

package com.CD4356.service;import com.CD4356.pojo.Teacher;
import java.util.List;public interface TeacherService {List<Teacher> getAll();
}
TeacherServiceImpl.java
package com.CD4356.service.impl;import com.CD4356.mapper.TeacherMappepr;
import com.CD4356.pojo.Teacher;
import com.CD4356.service.TeacherService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.util.List;@Service
public class TeacherServiceImpl implements TeacherService {@AutowiredTeacherMappepr teacherMappepr;@Overridepublic List<Teacher> getAll() {return teacherMappepr.getAll();}}
jdbc.properties
# mysql数据库配置文件
jdbc.driver = com.mysql.jdbc.Driver
jdbc.url = jdbc:mysql://localhost:3306/mybatis?characterEncoding=UTF-8
jdbc.username = root
jdbc.password = root
applicationContext.xml

SqlSessionFactoryBean :取代基本 mybatis 中 SqlSessionFactoryBuilder 来创建 SqlSession

MapperScannerConfigurer :自动扫描 base-Package 指定路径下的 Mapper 接口 为我们创建 Mapper 接口 对应的 MapperFactoryBean 对象

<?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"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"><!--配置包扫描器,扫描@Service注解的类--><context:component-scan base-package="com.CD4356.service"/><!-- 加载jdbc.properties配置文件 --><context:property-placeholder location="classpath:jdbc.properties"/><!-- 配置数据源 --><bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"><property name="driverClassName" value="${jdbc.driver}"/><property name="url" value="${jdbc.url}"/><property name="username" value="${jdbc.username}"/><property name="password" value="${jdbc.password}"/></bean><!-- 配置SqlSessionFactory对象 --><bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><!-- 注入数据库连接池 --><property name="dataSource" ref="dataSource"/><!--设置别名--><property name="typeAliasesPackage" value="com.CD4356.pojo"/><!--加载 mapper 映射文件--><property name="mapperLocations" value="classpath:mapper/Teacher.xml"/></bean><!-- 扫描 Mapper 接口 --><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><property name="basePackage" value="com.CD4356.mapper"/></bean></beans>
dispatcher-servlet.xml

<context:component-scan> 标签:扫描 base-package 指定包下及子包下被注解的类,将其对象的生命周期交给 spring 管理

注意:扫描 com.CD4356.controller 包下的类的操作必须放在 dispatcher-servlet.xml 文件中,否则 DispatcherServlet 就无法找到 Controller 中相应的 @RequestMapping 请求映射地址

<?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"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/cache http://www.springframework.org/schema/cache/spring-cache.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd"><!--配置包扫描器,扫描@Controller注解的类--><context:component-scan base-package="com.CD4356.controller"/><!--配置注解驱动--><mvc:annotation-driven/><!-- 静态资源默认servlet配置 --><mvc:default-servlet-handler/><!--视图解析器,定位视图--><bean id="viewResolver"class="org.springframework.web.servlet.view.InternalResourceViewResolver"><!--视图前缀路径--><property name="prefix" value="/WEB-INF/page/"/><!--视图名称后缀--><property name="suffix" value=".jsp"/></bean></beans>
web.xml

<context-param> 标签:指定要加载的 spring 配置文件的位置和名称,如果不指定,则会默认到 WEB-INF 路径下 寻找名称为 applicationContext.xml 的 spring 配置文件

ContextLoaderListener 监听器:在启动 web 容器时,自动装配 ApplicationContext.xml 的配置信息,进行 spring 相关初始化工作

<init-param> 标签:初始化 spring mvc 配置文件,不然则会默认到 WEB-INF 路径下 寻找 spring mvc 的配置文件

<!DOCTYPE web-app PUBLIC"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN""http://java.sun.com/dtd/web-app_2_3.dtd" ><web-app><!--加载spring的配置文件--><context-param><param-name>contextConfigLocation</param-name><param-value>classpath:spring/applicationContext.xml</param-value></context-param><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><!--配置Spring MVC的入口 DispatcherServlet, 处理提交的请求--><servlet><servlet-name>dispatcher</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><!--加载spring mvc的配置文件--><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:spring/dispatcher-servlet.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet><!-- 配置spring mvc的前端控制器,可以配置多个前端控制器来拦截不同的url --><servlet-mapping><!--指定处理请求的servlet--><servlet-name>dispatcher</servlet-name><!--如果url-pattern定义的是路径,那么以后所有对这个路径下资源的请求都会由servlet-name中定义的servlet处理;如果url-pattern定义的是资源格式例如*.do等,那么对于所有符合这种格式的资源的请求都由指定的servlet处理--><!--将*.form修改成/,就可以拦截所有的url请求--><url-pattern>/</url-pattern></servlet-mapping></web-app>
CrudController.java

@Autowired 自动装配 TeacherService,获取 TeacherService 中的逻辑操作

通过 @RequestMapping 映射访问路径 访问 getAllTeacher(),在 getAllTeacher() 中通过 TeacherService 的 getAll() 获取数据存放到 集合中,然后通过 ModelMap 的 addAttribute() 传递给 jsp页面

package com.CD4356.controller;import com.CD4356.pojo.Teacher;
import com.CD4356.service.TeacherService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;import java.util.List;// 告诉spring mvc这是一个控制器类
@Controller
public class CrudController {@AutowiredTeacherService teacherService;@RequestMapping("/getAll")public String getAllTeacher(ModelMap map){List<Teacher> ts=teacherService.getAll();map.addAttribute("ts",ts);return "getAll";}}
getAll.jsp

jsp 文件中通过 forEach 标签来遍历 CrudController 的 getAllTeacher() 方法传递过来的集合数据

注意:一定要再 jsp 文件的头部添加 <%@ page isELIgnored="false" %> ,不然 jsp 页面就会无法获取到 Controller 传递的 参数值

<%@ page isELIgnored="false" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@page pageEncoding="UTF-8" %>
<%--Created by IntelliJ IDEA.User: CD4356Date: 2019/4/20Time: 16:46To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>SSM 项目入门</title>
</head>
<body><table width="50%" border='2' cellspacing='0'><tr><td align="center"><font face="华文新魏" color="#a52a2a" size="4">全体教师信息</font></td></tr>
</table>
<table width="50%" border='2' cellspacing='0'><tr bgcolor="#deb887"><td width="25%">id</td><td width="25%">name</td><td width="25%">age</td><td width="25%">major</td></tr><c:forEach items="${ts}" var="t" varStatus="st"><tr><td>${t.id}</td><td>${t.name}</td><td>${t.age}</td><td>${t.major}</td></tr></c:forEach>
</table></body>
</html>
将 项目部署到 tomcat 服务器

参考 idea 部署项目到 tomcat 服务器,将 项目部署到 tomcat 服务器

效果图

在浏览器地址栏中输入http://localhost:8080/getAll

项目代码下载
链接:https://pan.baidu.com/s/1perGfemcC5-Mr7gOs9oeng
提取码:pm0k

参考
https://www.cnblogs.com/onlymate/p/7802122.html
https://www.cnblogs.com/Zyf2016/p/6374160.html

idea 使用maven 整合ssm框架相关推荐

  1. idea 使用 maven 整合 ssm 框架 实现简单的增、删、改 和 分页查询功能

    详细请参考:   idea 使用 maven 整合 ssm 框架 文章目录 ==效果图== ==准备数据库== ==创建maven项目== ==配置文件== pom.xml jdbc.properti ...

  2. Maven整合SSM框架(maven+spring+springmvc+mybatis)

    啊哈,终于到了用Maven整合SSM这个扑街含家产了.弄了整整一天才跑通.Mybatis的配置有些繁琐,跟之前学习的那个有点出去,加上Eclipse的Spring工具没有弄,配置的时候没有提示被搞蒙圈 ...

  3. 浅谈IDEA+Maven 整合SSM框架实现简单的增删改查

    SSM SSM(Spring+SpringMVC+MyBatis)框架集由Spring.MyBatis两个开源框架整合而成(SpringMVC是Spring中的部分内容).常作为数据源较简单的web项 ...

  4. 使用maven整合SSM框架详细步骤

    (文章所使用框架Spring+SpringMVC+Mybatis,为项目结构图参照文章末尾) 1.创建maven工程,在pom.xml文件中导入需要的jar包依赖: <project xmlns ...

  5. 大数据WEB阶段 Maven与SSM框架整合

    Maven整合SSM框架 零. 目录 Maven整合SSM 常见的问题 以及一些优化 一. Maven整合SSM 创建webapp工程 修改jdk和编译器 配置pom.xml文件 并在pom.xml文 ...

  6. idea ssm框架 mysql_IDEA 2017 整合SSM框架(使用Maven创建工程)

    SSM框架(Spring+SpringMVC+MyBatis)是目前Java WEB开发使用较多的框架,搭建起来起来比较麻烦,之前也曾搭建成功过.这次通过结合SSM开发的相关学习视频,再一次系统性的将 ...

  7. eclipse + maven搭建SSM框架

    eclipse + maven搭建SSM框架 0.系统环境 1)Windows 10 企业版 2)JDK 1.8.0_131 3)Eclipse Java EE IDE for Web Develop ...

  8. 基于maven的SSM框架的搭建

    SSM是目前使用最广泛的后台开发框架,下面记录下自己搭建基于maven的SSM框架搭建的过程. 1.打开IDEA,创建一个新的工程 2.选择创建maven项目 3.写上报名和项目的名称 4.配置好ma ...

  9. 超详细整合SSM框架--(Spring + Spring MVC + MyBatis)

    超详细整合SSM框架--(Spring + Spring MVC + MyBatis) SpringMVC框架--文章跳转 Spring框架--文章跳转 Mybatis框架--文章跳转 整合思路 设计 ...

最新文章

  1. fragment 使用抽屉栏的_iPhone 这些使用小技巧,我不说你可能不知道哦
  2. Android外设存储设备的访问及测试
  3. Xcode9学习笔记63 - 使用SystemSoundId播放简短声音(太长的无法播放)
  4. python excel详解_Python - excel 详解
  5. c# mysql 中文,c#操作mysql中文乱码的解决方案_c#应用
  6. 微软征询“Xbox支付方式”,选项包括比特币支付
  7. DbUtils操作数据库的用法
  8. 我的世界服务器显示outofmemory,游戏中out of memory解决办法分享
  9. poj 1389 Area of Simple Polygons 线段树扫面线,和1151一样的嘛
  10. MS OFFICE 2019下载及使用
  11. 学习WEB的心理路程
  12. 百度地图开发入门(4):散点图示例
  13. mysql 8.0.22详细安装步骤
  14. java中lookup函数怎么用,excel Lookup查表函数的使用方法
  15. win7需要计算机管理员权限,解决方案:Win7安装软件需要管理员权限解决方案
  16. html怎么把图片做成抖动效果,js实现鼠标触发图片抖动效果的方法
  17. 浅谈桌面应用程序的开发
  18. 手机QQ与Win8:一蠢再蠢的改版与回炉
  19. Java多线程模式(一)
  20. 『tensorflow笔记』图变量tf.Variable的用法解析

热门文章

  1. Java基础 选择语句,循环结构数组
  2. 精通SpringBoot---整合RabbitMQ消息队列
  3. js 难点之call,apply实现
  4. 大一的一些心得与近况
  5. Docker入门与应用系列(二)镜像管理
  6. 如何在字符串中添加双引号?
  7. 模拟ArrayList底层实现
  8. 【STL源码剖析读书笔记】【第6章】算法之partition算法
  9. 一步步学敏捷开发:6、Scrum的3种工件
  10. node命令错误--nodemon : 无法将“nodemon”项识别