idea 使用maven 整合ssm框架
创建 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框架相关推荐
- idea 使用 maven 整合 ssm 框架 实现简单的增、删、改 和 分页查询功能
详细请参考: idea 使用 maven 整合 ssm 框架 文章目录 ==效果图== ==准备数据库== ==创建maven项目== ==配置文件== pom.xml jdbc.properti ...
- Maven整合SSM框架(maven+spring+springmvc+mybatis)
啊哈,终于到了用Maven整合SSM这个扑街含家产了.弄了整整一天才跑通.Mybatis的配置有些繁琐,跟之前学习的那个有点出去,加上Eclipse的Spring工具没有弄,配置的时候没有提示被搞蒙圈 ...
- 浅谈IDEA+Maven 整合SSM框架实现简单的增删改查
SSM SSM(Spring+SpringMVC+MyBatis)框架集由Spring.MyBatis两个开源框架整合而成(SpringMVC是Spring中的部分内容).常作为数据源较简单的web项 ...
- 使用maven整合SSM框架详细步骤
(文章所使用框架Spring+SpringMVC+Mybatis,为项目结构图参照文章末尾) 1.创建maven工程,在pom.xml文件中导入需要的jar包依赖: <project xmlns ...
- 大数据WEB阶段 Maven与SSM框架整合
Maven整合SSM框架 零. 目录 Maven整合SSM 常见的问题 以及一些优化 一. Maven整合SSM 创建webapp工程 修改jdk和编译器 配置pom.xml文件 并在pom.xml文 ...
- idea ssm框架 mysql_IDEA 2017 整合SSM框架(使用Maven创建工程)
SSM框架(Spring+SpringMVC+MyBatis)是目前Java WEB开发使用较多的框架,搭建起来起来比较麻烦,之前也曾搭建成功过.这次通过结合SSM开发的相关学习视频,再一次系统性的将 ...
- eclipse + maven搭建SSM框架
eclipse + maven搭建SSM框架 0.系统环境 1)Windows 10 企业版 2)JDK 1.8.0_131 3)Eclipse Java EE IDE for Web Develop ...
- 基于maven的SSM框架的搭建
SSM是目前使用最广泛的后台开发框架,下面记录下自己搭建基于maven的SSM框架搭建的过程. 1.打开IDEA,创建一个新的工程 2.选择创建maven项目 3.写上报名和项目的名称 4.配置好ma ...
- 超详细整合SSM框架--(Spring + Spring MVC + MyBatis)
超详细整合SSM框架--(Spring + Spring MVC + MyBatis) SpringMVC框架--文章跳转 Spring框架--文章跳转 Mybatis框架--文章跳转 整合思路 设计 ...
最新文章
- fragment 使用抽屉栏的_iPhone 这些使用小技巧,我不说你可能不知道哦
- Android外设存储设备的访问及测试
- Xcode9学习笔记63 - 使用SystemSoundId播放简短声音(太长的无法播放)
- python excel详解_Python - excel 详解
- c# mysql 中文,c#操作mysql中文乱码的解决方案_c#应用
- 微软征询“Xbox支付方式”,选项包括比特币支付
- DbUtils操作数据库的用法
- 我的世界服务器显示outofmemory,游戏中out of memory解决办法分享
- poj 1389 Area of Simple Polygons 线段树扫面线,和1151一样的嘛
- MS OFFICE 2019下载及使用
- 学习WEB的心理路程
- 百度地图开发入门(4):散点图示例
- mysql 8.0.22详细安装步骤
- java中lookup函数怎么用,excel Lookup查表函数的使用方法
- win7需要计算机管理员权限,解决方案:Win7安装软件需要管理员权限解决方案
- html怎么把图片做成抖动效果,js实现鼠标触发图片抖动效果的方法
- 浅谈桌面应用程序的开发
- 手机QQ与Win8:一蠢再蠢的改版与回炉
- Java多线程模式(一)
- 『tensorflow笔记』图变量tf.Variable的用法解析