Spring+SpringMVC+Mybaits整合

第一步:创建maven-webapp项目

第二步: 在pom.xml中引入jar包

<properties>
    <mybatis-version>3.5.6</mybatis-version>
    <spring-version>5.3.9</spring-version>
  </properties>
  <dependencies>
    <!-- 引入mybatis -->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>${mybatis-version}</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-jdbc</artifactId>
      <version>${spring-version}</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>${spring-version}</version>
    </dependency>
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.47</version>
    </dependency>
    <dependency>
      <groupId>javax.annotation</groupId>
      <artifactId>javax.annotation-api</artifactId>
      <version>1.3.2</version>
    </dependency>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
      <scope>test</scope>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.springframework.data/spring-data-commons -->
    <!--<dependency>
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-commons</artifactId>
        <version>2.5.6</version>
    </dependency>-->

    <!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
    <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <version>1.18.20</version>
      <scope>provided</scope>
    </dependency>
    <!--        转json需要的jar-->
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
      <version>2.9.0</version>
    </dependency>
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-annotations</artifactId>
      <version>2.9.0</version>
    </dependency>
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-core</artifactId>
      <version>2.9.0</version>
    </dependency>
    <!--        配置德鲁伊数据源需要的jar-->
    <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>druid</artifactId>
      <version>1.1.21</version>
    </dependency>
    <!--        spring整合mybatis需要的jar-->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis-spring</artifactId>
      <version>2.0.6</version>
    </dependency>
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>jstl</artifactId>
      <version>1.2</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>${spring-version}</version>
    </dependency>

  </dependencies>

 第三步:配置applicationContext.xml,druid.properties,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: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 https://www.springframework.org/schema/context/spring-context.xsd">

<!--        指定注解扫描的包-->
        <context:component-scan base-package="com.zyk.entity,com.zyk.dao,com.zyk.service"></context:component-scan>
        <!--添加数据配置文件-->
        <context:property-placeholder location="classpath:druid.properties"></context:property-placeholder>
        <!--    配置数据源druid-->
        <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
                <property name="driverClassName" value="${driverName}"/>
                <property name="url" value="${url}"/>
                <property name="username" value="${name}"/>
                <property name="password" value="${password}"/>
        </bean>
        <!--    配置mybatis的sqlsessionfactory-->
        <bean id="sqlsessionfactory" class="org.mybatis.spring.SqlSessionFactoryBean">
                <property name="dataSource" ref="dataSource"></property>
                <!--mapperLocations 指定mybatis映射文件所在的路径        -->
                <property name="mapperLocations" value="classpath:mapper/*.xml"></property>
        </bean>
        <!--    将mybatis的接口生成代理对象-->
        <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
                <!--        接口的包名-->
                <property name="basePackage" value="com.zyk.dao"></property>
                <property name="sqlSessionFactoryBeanName" value="sqlsessionfactory"></property>
        </bean>
</beans>
driverName= com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/test?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&useSSL=false
name=root
password=123456
# 初始化连接数量
initialSize=5
# 最大连接数
maxActive=10
# 最大等待时间3秒
maxWait=3000
<?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-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
    http://www.springframework.org/schema/mvc
    http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
">
<!--        指定注解扫描的包-->
        <context:component-scan base-package="com.zyk.controller"></context:component-scan>
        <mvc:annotation-driven></mvc:annotation-driven>
        <!--        配置视图解析器-->
        <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
                <property name="prefix" value="/view/"></property>
                <property name="suffix" value=".jsp"></property>
        </bean>
</beans>

第四步:配置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">
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  <!--配置过滤器,解决中文乱码的问题-->
  <filter>
    <filter-name>characterEncodingFilter</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <!--设置编码是UTF-8-->
    <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>

  <!--  定义全局变量,contextConfigLocation,标识spring容器配置文件的位置,给监听器使用-->
  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:applicationContext.xml</param-value>
  </context-param>

  <!--  配置springMVC的前端控制器,DispatcherServlet就是一个servlet,拦截前端发送的请求-->
  <servlet>
    <servlet-name>xxx</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>
  </servlet>
  <servlet-mapping>
    <servlet-name>xxx</servlet-name>
    <!--    *.do拦截所有以.do结尾的请求,若以/结尾,性能会下降-->
    <url-pattern>/</url-pattern>
  </servlet-mapping>

  <!--  配置spring的监听器,作用是加在spring容器-->
  <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>
</web-app>

第五步:编写Controller层代码

package com.zyk.controller;

import com.zyk.entity.TblQuestion;
import com.zyk.service.TblQuestionService;


import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;

import javax.annotation.Resource;
import java.util.List;


/**
 * 问题表(TblQuestion)表控制层
 * @author makejava
 * @since 2021-11-23 15:05:17
 */
@Controller
@RequestMapping("tblQuestion")
public class TblQuestionController {
    /**
     * 服务对象
     */
    @Resource
    private TblQuestionService tblQuestionService;


    /**
     * 通过主键查询单条数据
     *
     * @param id 主键
     * @return 单条数据
     */
    @GetMapping("{id}")
    public ResponseEntity<TblQuestion> queryById(@PathVariable("id") Integer id) {
        return ResponseEntity.ok(this.tblQuestionService.queryById(id));
    }



    /**
     * 查询所有,跳转到问题管理页面
     */
    @RequestMapping("findAll")
    public ModelAndView  findAllQuestion(){
        ModelAndView modelAndView= new ModelAndView();
        List<TblQuestion> questionList = tblQuestionService.queryAll();
        for (TblQuestion tblQuestion : questionList) {
            System.out.println(tblQuestion.toString());
        }
        //设值
        modelAndView.addObject("questionList", questionList);
        modelAndView.setViewName("showQuestion");
        //设置跳转的页面
        return modelAndView;
    }

    /**
     * 新增数据
     *
     * @param tblQuestion 实体
     * @return 新增结果
     */
    @PostMapping
    public ResponseEntity<TblQuestion> add(TblQuestion tblQuestion) {
        return ResponseEntity.ok(this.tblQuestionService.insert(tblQuestion));
    }

    /**
     * 编辑数据
     *
     * @param tblQuestion 实体
     * @return 编辑结果
     */
    @PutMapping
    public ResponseEntity<TblQuestion> edit(TblQuestion tblQuestion) {
        return ResponseEntity.ok(this.tblQuestionService.update(tblQuestion));
    }

    /**
     * 删除数据
     *
     * @param id 主键
     * @return 删除是否成功
     */
    @DeleteMapping
    public ResponseEntity<Boolean> deleteById(Integer id) {
        return ResponseEntity.ok(this.tblQuestionService.deleteById(id));
    }

}

前端页面

<%--
  Created by IntelliJ IDEA.
  User: Administrator
  Date: 2021/11/23
  Time: 11:37
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib prefix="c"  uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
    <title>问题管理页面</title>
</head>
<body>
此处写表格数据
<table border="1px" >
    <tr>
        <td>问题编号</td>
        <td>问题描述</td>
        <td>选项A</td>
        <td>选项B</td>
        <td>选项C</td>
        <td>选项D</td>
        <td>问题类型</td>
        <td>问题状态</td>
        <td>创建时间</td>
        <td>创建人</td>
        <td>修改时间</td>
        <td>修改人</td>
    </tr>
    <c:forEach items="${questionList}" var="question">
        <tr>
            <td>${question.id}</td>
            <td>${question.question}</td>
            <td>${question.optionA}</td>
            <td>${question.optionB}</td>
            <td>${question.optionC}</td>
            <td>${question.optionD}</td>
            <td>${question.type}</td>
            <td>${question.status}</td>
            <td>${question.createTime}</td>
            <td>${question.creator}</td>
            <td>${question.updateTime}</td>
            <td>${question.updater}</td>
        </tr>
    </c:forEach>
</table>
</body>
</html>

由于代码量有点多,剩下的代码放到了gitee上,包括数据库等,可以直接下载,下面是项目架构图:

 项目gitee地址:SSM: spring+springmvc+Mybaits框架的整合

欢迎star! 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱笑的tiger

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值