文章目录

  • SSM整合
    • 一、MyBatis层
      • 1、首先创建一个数据库
      • 2、搭建环境
        • 创建一个maven项目
        • 添加依赖
        • 静态资源
        • idea连接数据库
        • 构造项目结构目录
        • mybatis-config.xml
        • applicationContext.xml
        • mybatis连接数据库:
          • 数据库配置文件 database.properties
        • pojo
          • Books
        • mapper
          • BookMapper
          • BookMapper.xml
    • 二、Spring层
      • spring-mapper.xml
      • spring-service.xml
    • 三、SpringMVC层
      • 增加web支持
      • web.xml
      • spring-mvc.xml
    • 四、写实际的业务
      • BookController
      • allBook.jsp
      • addBook.jsp
      • updateBook.jsp
      • queryBook.jsp

SSM整合

一、MyBatis层

1、首先创建一个数据库

2、搭建环境

创建一个maven项目

添加依赖

<dependencies><!--junit--><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version></dependency><!--java数据库连接--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.49</version></dependency><!--数据库连接池--><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.0.9</version></dependency><!--servlet--><dependency><groupId>javax.servlet</groupId><artifactId>servlet-api</artifactId><version>2.5</version></dependency><dependency><groupId>javax.servlet</groupId><artifactId>jsp-api</artifactId><version>2.0</version></dependency><dependency><groupId>javax.servlet</groupId><artifactId>jstl</artifactId><version>1.2</version></dependency><!--mybatis--><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.1</version></dependency><!--mybatis-spring--><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>2.0.2</version></dependency><!--spring--><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.1.9.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>5.1.9.RELEASE</version></dependency></dependencies>

静态资源

<build><resources><resource><directory>src/main/java</directory><includes><include>**/*.properties</include><include>**/*.xml</include></includes><filtering>false</filtering></resource><resource><directory>src/main/resources</directory><includes><include>**/*.properties</include><include>**/*.xml</include></includes><filtering>false</filtering></resource></resources></build>

idea连接数据库

构造项目结构目录

mybatis-config.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration></configuration>
<settings><setting name="logImpl" value="STDOUT_LOGGING"/>
</settings><typeAliases><package name="com.itlf.pojo"/>
</typeAliases><mappers><mapper class="com.itlf.mapper.BookMapper"/>
</mappers>

applicationContext.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:aop="http://www.springframework.org/schema/aop"xsi:schemaLocation="http://www.springframework.org/schema/beanshttps://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/aophttps://www.springframework.org/schema/aop/spring-aop.xsd"></beans>
<import resource="spring-mapper.xml"/>
<import resource="spring-service.xml"/>
<import resource="spring-mvc.xml"/>

mybatis连接数据库:

数据库配置文件 database.properties
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/ssmbuild?serverTimezone=UTC&rewriteBatchedStatements=true
jdbc.username=root
jdbc.password=123456

pojo

Books
package com.itlf.pojo;import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;@Data
@AllArgsConstructor
@NoArgsConstructor
public class Books {private int bookID;private String bookName;private int bookCounts;private String detail;
}

mapper

BookMapper
package com.itlf.mapper;import com.itlf.pojo.Books;
import org.apache.ibatis.annotations.Param;import java.util.List;public interface BookMapper {// 增加一本书int addBook(Books book);// 删除一本书int deleteBookById(@Param("bookId") int id);// 更新一本书int updateBook(Books book);// 查询一本书idBooks queryBookById(int id);// 查询全部的书List<Books> queryAllBooks();
}
// 查询一本书Name
Books queryBookByName(@Param("bookName") String name);
BookMapper.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.itlf.mapper.BookMapper"><insert id="addBook" parameterType="Books">insert into ssmbuild.books (bookName, bookCounts, detail)values (#{bookName}, #{bookCounts}, #{detail})</insert><delete id="deleteBookById" parameterType="Books">delete  from ssmbuild.books where bookID=#{bookId}</delete><update id="updateBook" parameterType="Books">update booksset bookName = #{bookName},bookCounts = #{bookCounts},detail=#{detail}where bookID=#{bookID}</update><select id="queryBookById" resultType="Books">select bookID,bookName,bookCounts,detail from books<where><if test="bookID!=null">and bookID=#{bookID}</if><if test="bookName!=null">and bookName=#{bookName}</if><if test="bookCounts!=null">and bookCounts=#{bookCounts}</if></where></select><select id="queryAllBooks" resultType="Books">select bookID,bookName,bookCounts,detail from books</select></mapper>
<select id="queryBookByName" resultType="Books">select bookID,bookName,bookCounts,detail from books<where><if test="bookName!=null">and bookName=#{bookName}</if></where>
</select>

二、Spring层

spring-mapper.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:aop="http://www.springframework.org/schema/aop"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beanshttps://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/aophttps://www.springframework.org/schema/aop/spring-aop.xsdhttp://www.springframework.org/schema/contexthttps://www.springframework.org/schema/context/spring-context.xsd"><!--关联数据库文件--><context:property-placeholder location="classpath:database.properties"/><!--连接池--><bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"><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"/><!--绑定mybatis配置文件--><property name="mapperLocations" value="classpath:mybatis-config.xml"/></bean><!--配置mapper扫描包--><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><!--注入sqlSessionFactory--><property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/><!--扫面mapper包--><property name="basePackage" value="com.itlf.mapper"/></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:aop="http://www.springframework.org/schema/aop"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beanshttps://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/aophttps://www.springframework.org/schema/aop/spring-aop.xsdhttp://www.springframework.org/schema/contexthttps://www.springframework.org/schema/context/spring-context.xsd"><!--扫描service下面的包--><context:component-scan base-package="com.itlf.service"/><!--将我们的所有的业务类注入到spring,可以配置或者注解--><bean id="BookServiceImpl" class="com.itlf.service.BookServiceImpl"><property name="mapper" ref="bookMapper"/></bean><!--声明式事务--><bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><!--注入数据源--><property name="dataSource" ref="dataSource"/></bean><!--aop事务支持--></beans>

三、SpringMVC层

增加web支持

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"version="4.0"><!--DispatchServlet--><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:applicationContext.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>springmvc</servlet-name><url-pattern>/</url-pattern></servlet-mapping><!--乱码过滤--><filter><filter-name>encodingFilter</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>encodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping><!--session--><session-config><session-timeout>15</session-timeout></session-config>
</web-app>

spring-mvc.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:aop="http://www.springframework.org/schema/aop"xmlns:context="http://www.springframework.org/schema/context"xmlns:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation="http://www.springframework.org/schema/beanshttps://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/aophttps://www.springframework.org/schema/aop/spring-aop.xsdhttp://www.springframework.org/schema/contexthttps://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc.xsd"><!--注解驱动--><mvc:annotation-driven/><!--静态资源过滤--><mvc:default-servlet-handler/><!--扫描包controller--><context:component-scan base-package="com.itlf.controller"/><!--视图解析器--><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/WEB-INF/jsp/"/><property name="suffix" value=".jsp"/></bean></beans>

四、写实际的业务

BookController

package com.itlf.controller;import com.itlf.pojo.Books;
import com.itlf.service.BookService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;import java.util.List;/*** Created with IntelliJ IDEA.** @author: LiuF* @date: 2021/6/9* @description:* @version: 1.0*/
@Controller
@RequestMapping("/book")
public class BookController {// 调用service@Autowired@Qualifier("BookServiceImpl")private BookService bookService;// 查询全部的书籍@RequestMapping("/allBook")public String list(Model model) {List<Books> booksList = bookService.queryAllBooks();model.addAttribute("list", booksList);return "allBook";}// 跳转到增加书籍的页面@RequestMapping("/toAddPaper")public String toAddPaper() {return "addBook";}// 添加书籍的请求@RequestMapping("/addBook")public String addBook(Books book) {System.out.println("addBook" + book);bookService.addBook(book);return "redirect:/book/allBook";}// 跳转到修改书籍的页面@RequestMapping("/toUpdatePaper")public String toUpdatePaper(int id, Model model) {Books book = bookService.queryBookById(id);model.addAttribute("book", book);return "updateBook";}// 修改书籍的请求@RequestMapping("/updateBook")public String updateBook(Books book) {bookService.updateBook(book);return "redirect:/book/allBook";}// 删除书籍的请求@RequestMapping("/deleteBook")public String deleteBook(int id) {bookService.deleteBookById(id);return "redirect:/book/allBook";}// 查询书籍@RequestMapping("/queryBookName")public String queryBookName(String bookName,Model model) {Books book = bookService.queryBookByName(bookName);model.addAttribute("book", book);return "queryBook";}
}

allBook.jsp

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%--Created by IntelliJ IDEA.User: LiuFDate: 2021/6/9Time: 20:50To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>学生展示页面</title><!-- 引入 Bootstrap --><link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="container"><div class="row clearfix"><div class="col-md-12 column"><div class="page-header"><h1><small>学生列表---显示所有学生</small><small></small></h1></div></div><div class="row"><div class="col-md-4 column"><a class="btn btn-primary" href="${pageContext.request.contextPath}/book/toAddPaper">新增学生</a></div><div class="col-md-4 column"></div><form action="${pageContext.request.contextPath}/book/queryBookName" method="post" class="form-inline"><div class="col-md-4 column"><input type="text" class="form-control" name="bookName" placeholder="输入查询书籍的名字"><input type="submit" value="查询" class="btn btn-primary"></div></form></div></div><div class="row clearfix"><div class="col-md-12 column"><table class="table table-hover table-striped"><thead><tr><th>书籍编号</th><th>书籍名称</th><th>书籍数量</th><th>书籍详情</th><th>操作</th></tr></thead><tbody><c:forEach var="book" items="${list}"><tr><td>${book.bookID}</td><td>${book.bookName}</td><td>${book.bookCounts}</td><td>${book.detail}</td><td><a href="${pageContext.request.contextPath}/book/toUpdatePaper?id=${book.bookID}">修改</a>&nbsp;|&nbsp;<a href="${pageContext.request.contextPath}/book/deleteBook?id=${book.bookID}"onclick="deleteClick()">删除</a></td></tr></c:forEach></tbody></table></div></div>
</div>
</body>
</html>

addBook.jsp

<%--Created by IntelliJ IDEA.User: LiuFDate: 2021/6/9Time: 23:56To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>添加书籍</title><!-- 引入 Bootstrap --><link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"></head>
<body>
<div class="container"><div class="row clearfix"><div class="col-md-12 column"><div class="page-header"><h1><small>新增书籍</small></h1></div></div></div><form action="${pageContext.request.contextPath}/book/addBook" method="post"><div class="form-group"><label for="bookName">书籍名称</label><input type="text" class="form-control" id="bookName" name="bookName" required></div><div class="form-group"><label for="bookCounts">书籍数量</label><input type="text" class="form-control" id="bookCounts" name="bookCounts" required></div><div class="form-group"><label for="detail">书籍详情</label><input type="text" class="form-control" id="detail" name="detail" required></div><button type="submit" class="btn btn-default">添加</button></form>
</div>
</body>
</html>

updateBook.jsp

<%--Created by IntelliJ IDEA.User: LiuFDate: 2021/6/10Time: 8:07To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>修改书籍</title><!-- 引入 Bootstrap --><link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
</head>
<body><div class="container"><div class="row clearfix"><div class="col-md-12 column"><div class="page-header"><h1><small>修改书籍</small></h1></div></div></div><form action="${pageContext.request.contextPath}/book/updateBook" method="post"><input type="hidden" name="bookID" value="${book.bookID}"><div class="form-group"><label for="bookName">书籍名称</label><input type="text" class="form-control" id="bookName" name="bookName" required value="${book.bookName}"></div><div class="form-group"><label for="bookCounts">书籍数量</label><input type="text" class="form-control" id="bookCounts" name="bookCounts" required value="${book.bookCounts}"></div><div class="form-group"><label for="detail">书籍详情</label><input type="text" class="form-control" id="detail" name="detail" required value="${book.detail}"></div><button type="submit" class="btn btn-default">修改</button></form>
</div>
</body>
</html>

queryBook.jsp

<%--Created by IntelliJ IDEA.User: LiuFDate: 2021/6/11Time: 9:28To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>查询书籍</title><!-- 引入 Bootstrap --><link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"></head>
<body>
<div class="container"><div class="row clearfix"><div class="col-md-12 column"><div class="page-header"><h1><small>查询书籍</small></h1></div></div></div><form action="${pageContext.request.contextPath}/book/allBook"><div class="form-group"><label>书籍名称</label><input type="text" class="form-control" value="${book.bookName}" readonly></div><div class="form-group"><label>书籍数量</label><input type="text" class="form-control" value="${book.bookCounts}" readonly></div><div class="form-group"><label>书籍详情</label><input type="text" class="form-control" value="${book.detail}" readonly></div><button type="submit" class="btn btn-default">返回</button></form>
</div>
</body>
</html>

SSM框架整合_刘锋的博客相关推荐

  1. MySQL_DQL数据查询语言_刘锋的博客

    文章目录 DQL数据查询语言 进阶一:基础查询 进阶二:条件查询 进阶三:排序查询 进阶四:常见函数 一.单行函数 二.分组函数(聚合函数) 进阶五.分组查询 进阶六:连接查询(多表查询) sql92 ...

  2. MySQL_TCL事务控制语言_刘锋的博客

    文章目录 TCL事务控制语言 一.事务的属性(ACIB) 原子性 一致性 隔离性 持久性 二.事务的创建 隐式的事务 显式的事务 三.事务的隔离级别 脏读: 不可重复度: 幻读: 四.delete和t ...

  3. SSM框架整合配置文件_刘锋的博客

    文章目录 web.xml 启动spring容器 springmvc前端控制器 乱码过滤 Rest风格 spring配置文件 扫描除了Contorller注解说明以外的包 配置数据源 数据源配置文件db ...

  4. 什么是框架_刘锋的博客

    框架 1.什么是框架?(framework) 框架就是一个软件,完成了部分的功能,软件中类和类之间的方法调用已经规定好了.可以根据这些类完成特定的功能,可以看成是一个模板. 框架是可以升级和改造的,是 ...

  5. jsp中Ajax请求发送PUT、DELETE请求的方式_刘锋的博客

    jsp中Ajax请求发送PUT.DELETE请求的方式 方式一 首先配置pom.xml ,添加过滤器 <filter><filter-name>hiddenHttpMethod ...

  6. MySQL视图_刘锋的博客

    文章目录 视图 创建视图 视图修改 视图的删除 查看视图 视图的更新 对比视图和表 视图 就是一个虚拟的表,有行有列 虚拟表是5.1之后出现的新特性,是通过普通表动态生成的数据,具有临时性的特点. 创 ...

  7. Java线程池_刘锋的博客

    文章目录 线程和线程池的区别 线程池的七大参数 线程和线程池的区别 线程的join方法: 目的是使子线程去等待主线程执行完成的,具体的应用场景是,当主线程要使用子线程的计算结果的时候,但是子线程的运算 ...

  8. Mybatis逆向工程_刘锋的博客

    Mybatis逆向工程 说明文档网址 : http://mybatis.org/generator/ maven依赖导入 <!--mybatis生成器--><dependency&g ...

  9. hadoop大数据实践_刘锋的博客

    文章目录 hadoop大数据 一.hadoop连不上网解决: 二.Xshell6连接 三.启动服务 4.hdfs的shell操作 相关的命令: 五.使用java去操纵hdfs 首先新建一个maven项 ...

最新文章

  1. IDA Pro IDA 数据库文件
  2. python简单代码编写-python读写Excel表格的实例代码(简单实用)
  3. 消息队列设计的精髓基本都藏在本文里了
  4. Lazy WriterCheckPoint
  5. linux中find命令的35个实际例子
  6. PHP中trait的特性
  7. android sharedUserId 共享用户
  8. 整数和小数的移码计算方法
  9. 从李一男,到美女博士姚婷,任正非:要把中国的天才,留在中国
  10. Spring好处—总结
  11. 人工智能在安全漏洞方面的应用_智慧消防平台的智慧在哪方面?
  12. 由于计算机是中文名ccs软件安装出现错误_UG软件不会解决的二十个问题解决方法总结...
  13. 从乡巴佬到世界首富,连续7年蝉联全球最大公司:真正厉害的人,都敢于不走寻常路...
  14. STM32H7B0 HAL OSPI配置的一次失败原因分享
  15. Linux Vi命令使用手册
  16. SQLserver基础--语句、存储过程(七)
  17. 统计学第十二周,第十三周
  18. ibm服务器显示0 bf,IBM服务器常见服务器故障总结
  19. Caused by: io.netty.resolver.dns.DnsNameResolverTimeoutException: [/192.168.1.1:53] query via UDP ti
  20. protractor环境安装

热门文章

  1. 使用Pyhive执行insert遇到的坑
  2. SpringBoot+SQL Server2000驱动版本踩坑
  3. eclipse中执行main函数显示错误:找不到或无法加载主类
  4. 修改苹果Mac终端命令窗口前面的计算机名
  5. 对于用visio画图的一些思考
  6. Linux(vmtools)
  7. html大马源码,php大马源码:【百家号】脸书百科,分析 PHP大马-php_mof SHELL Web程序...
  8. SegmentFault 技术周刊 Vol.16 - 浅入浅出 JavaScript 函数式编程 1
  9. HP — LaserJet 打印机Win10下打印不停止的问题
  10. 火狐浏览器显示服务器超时,Firefox为什么有时会出现警告说连接超时