Spring+SpringMVC+Mybatis就是大名顶顶的SSM了。

这里我们使用IDEA的SpringBoot和版本控制器MAVEN构建一个SSM的demo。


介绍:

  在搭建过程中spring整合springmvc和mybatis时会有很多的东西需要我们进行配置,这样不仅浪费了时间,也比较容易出错,由于这样问题的产生,Pivotal团队提供了一款全新的框架Spring Boot,该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。

特点:

1. 创建独立的Spring应用程序

2. 嵌入的Tomcat,无需部署WAR文件

3. 简化Maven配置

4. 自动配置Spring

5. 提供生产就绪型功能,如指标,健康检查和外部配置

6. 绝对没有代码生成和对XML没有要求配置

(以上大部分内容摘自百度百科)

ok,关于springboot的讲解就到这里大家想了解的更详细可以自行百度。

搭建springboot项目我推荐大家用idea或者sts(spring tool suite spring公司自己研发的一款编辑器),我现在用的是idea,所以接下来我是用idea搭建项目的

 一、创建项目

填写完Group和Atrifact后点击下一步,这里我选择的是jar,因为官方文档推荐的是打包成JAR,所以这里就不过多解释了。

这里勾选上web

这里勾选上MySQL、JDBC和Mybatis点击下一步

这里输入项目名和项目路径后点击完成

这是新建完成后的项目结构

 二、添加pom.xml依赖

因为springboot不推荐使用jsp做页面,如果想要使用就必需的添加jsp的依赖

<?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.chaoqi</groupId><artifactId>springboot_demo2</artifactId><version>0.0.1-SNAPSHOT</version><packaging>jar</packaging><name>springboot_demo2</name><description>Demo project for Spring Boot</description><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.0.0.RELEASE</version><relativePath/></parent><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><java.version>1.8</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>1.3.2</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>runtime</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><!--添加jsp依赖 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-tomcat</artifactId></dependency><dependency><groupId>org.apache.tomcat.embed</groupId><artifactId>tomcat-embed-jasper</artifactId></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>

三、springboot整合springmvc

因为在创建项目的时候我们选择了mybatis和jdbc所以在这里也要把他们两也给配置进去

编辑application.properties

# 页面默认前缀目录
spring.mvc.view.prefix=/WEB-INF/jsp/
# 响应页面默认后缀
spring.mvc.view.suffix=.jsp

#数据源开发配置
spring.datasource.driverClassName = com.mysql.jdbc.Driver
spring.datasource.url = jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8
spring.datasource.username = root
spring.datasource.password = 123456

# mybatis接口文件位置
mybatis.mapper-locations: classpath:mapper/*.xml
mybatis.type-aliases-package: com.chaoqi.springboot_demo2.domain

如果大家习惯用application.yml那也可以用,但是用application.yml在第一次启动项目的时候一定要maven clean一下,不然会报错。

server:port: 8080spring:mvc:view:prefix: /WEB-INF/jsp/suffix: .jspdatasource:url: jdbc:mysql://localhost:3306/test?characterEncoding=UTF-8&useUnicode=true&useSSL=falseusername: rootpassword: 123456driver-class-name: com.mysql.jdbc.Drivermybatis:mapper-locations: classpath:mapping/*.xmltype-aliases-package: com.chaoqi.springboot_demo2.domain

编辑完application.properties之后再src/mian下创建webapp目录,结构如下

新建IndexController

package com.chaoqi.springboot_test.web;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;@Controller
public class IndexController {private static final String INDEX = "index";@RequestMapping("/show")public String getIndex() {return INDEX;}
}

运行main函数

访问页面,成功

四、springboot整合mybatis

创建数据库表

-- ----------------------------
-- Table structure for music_info
-- ----------------------------
DROP TABLE IF EXISTS `music_info`;
CREATE TABLE `music_info` (`id` int(10) NOT NULL AUTO_INCREMENT COMMENT '主键id',`singer_name` varchar(100) NOT NULL COMMENT '歌手名',`music_size` varchar(100) NOT NULL COMMENT '歌曲大小',`music_name` varchar(100) NOT NULL COMMENT '歌曲名',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;-- ----------------------------
-- Records of music_info
-- ----------------------------
INSERT INTO `music_info` VALUES ('1', '小三', '3.2M', '起风了');
INSERT INTO `music_info` VALUES ('2', '刘德华', '3.0M', '忘情水');
INSERT INTO `music_info` VALUES ('3', '猪点点', '5.0M', '会写程序的小猪');

创建pojo

package com.chaoqi.springboot_test.dao.domain;public class MusicInfo {// 主键idprivate Integer id;// 歌手名private String singerName;// 歌曲大小private String musicSize;// 歌曲名private String musicName;/*** 获取 主键id music_info.id** @return 主键id*/public Integer getId() {return id;}/*** 设置 主键id music_info.id** @param id 主键id*/public void setId(Integer id) {this.id = id;}/*** 获取 歌手名 music_info.singer_name** @return 歌手名*/public String getSingerName() {return singerName;}/*** 设置 歌手名 music_info.singer_name** @param singerName 歌手名*/public void setSingerName(String singerName) {this.singerName = singerName == null ? null : singerName.trim();}/*** 获取 歌曲大小 music_info.music_size** @return 歌曲大小*/public String getMusicSize() {return musicSize;}/*** 设置 歌曲大小 music_info.music_size** @param musicSize 歌曲大小*/public void setMusicSize(String musicSize) {this.musicSize = musicSize == null ? null : musicSize.trim();}/*** 获取 歌曲名 music_info.music_name** @return 歌曲名*/public String getMusicName() {return musicName;}/*** 设置 歌曲名 music_info.music_name** @param musicName 歌曲名*/public void setMusicName(String musicName) {this.musicName = musicName == null ? null : musicName.trim();}@Overridepublic String toString() {return "MusicInfo{" +"id=" + id +", singerName='" + singerName + '\'' +", musicSize='" + musicSize + '\'' +", musicName='" + musicName + '\'' +'}';}
}

创建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.chaoqi.springboot_test.dao.mapper.MusicInfoMapper"><resultMap id="BaseResultMap" type="com.chaoqi.springboot_test.dao.domain.MusicInfo"><id column="id" jdbcType="INTEGER" property="id" /><result column="singer_name" jdbcType="VARCHAR" property="singerName" /><result column="music_size" jdbcType="VARCHAR" property="musicSize" /><result column="music_name" jdbcType="VARCHAR" property="musicName" /></resultMap>
</mapper>

创建mapper

package com.chaoqi.springboot_test.dao.mapper;import com.chaoqi.springboot_test.dao.domain.MusicInfo;
import org.apache.ibatis.annotations.ResultMap;
import org.apache.ibatis.annotations.Select;import java.util.List;public interface MusicInfoMapper {@ResultMap("BaseResultMap")@Select("select * from music_info")List<MusicInfo> selectAll(MusicInfo musicInfo);
}

service接口

package com.chaoqi.springboot_test.service;import com.chaoqi.springboot_test.dao.domain.MusicInfo;import java.util.List;public interface MusicInfoService {public List<MusicInfo> getMusicInfo(MusicInfo musicInfo);
}

service实现类

package com.chaoqi.springboot_test.service.impl;import com.chaoqi.springboot_test.dao.domain.MusicInfo;
import com.chaoqi.springboot_test.dao.mapper.MusicInfoMapper;
import com.chaoqi.springboot_test.service.MusicInfoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.util.List;@Service
public class MusicInfoServiceImpl  implements MusicInfoService {@Autowiredprivate MusicInfoMapper musicInfoMapper;@Overridepublic List<MusicInfo> getMusicInfo(MusicInfo musicInfo) {List<MusicInfo> musicInfos = musicInfoMapper.selectAll(null);return musicInfos;}
}

创建完成后的结构如下

编辑indexController

package com.chaoqi.springboot_test.web;import com.chaoqi.springboot_test.dao.domain.MusicInfo;
import com.chaoqi.springboot_test.service.MusicInfoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;import java.util.List;@Controller
public class IndexController {private static final String INDEX = "index";@Autowiredprivate MusicInfoService musicInfoService;@RequestMapping("/show")public String getIndex() {return INDEX;}@RequestMapping("/music")@ResponseBodypublic List<MusicInfo> getMusicInfo(MusicInfo musicInfo) {List<MusicInfo> musicInfoList = musicInfoService.getMusicInfo(null);return musicInfoList;}
}

给SpringbootTestApplication类加上注解@MapperScan("com.chaoqi.springboot_test.dao.mapper")

package com.chaoqi.springboot_test;import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@SpringBootApplication
@MapperScan("com.chaoqi.springboot_test.dao.mapper")
public class SpringbootTestApplication {public static void main(String[] args) {SpringApplication.run(SpringbootTestApplication.class, args);}
}

运行项目,成功,springboot+springmvc+mybatis整合完成(源码下载地址:https://github.com/caicahoqi/ChaoqiIsPrivateLibrary)

框架:springboot组合spring、springmvc、mybatis的一个小demo相关推荐

  1. Springboot+ssm(Spring+SpringMVC+MyBatis)旧物置换网站

    目  录 摘  要    I 目  录    III 第1章 概述    1 1.1 研究背景    1 1.2 研究现状    1 1.3 研究内容    2 第二章 开发技术介绍    2 2.1 ...

  2. 三大框架分别是Spring+SpringMVC+Mybatis ,这些东西必须融汇贯通

    三大框架分别是Spring+SpringMVC+Mybatis ,这些东西必须融汇贯通,这些东西是进入高级工程师必备的基础,一份高级整合SSM框架的资料 转载于:https://blog.51cto. ...

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

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

  4. 468、Java框架122 -【Spring + SpringMVC + MyBatis - JSON】 2021.01.27

    目录 0.本知识点效果 1.jquery.min.js 2.json中文问题 3.CategoryController 4.submit.html 5.getOne.html 6.getMany.ht ...

  5. SSM三大框架整合(Spring+SpringMVC+MyBatis)

    文章目录 SSM整合 一.导入依赖 1.1 Spring依赖 1.2 SpringMVC依赖 1.3 MyBatis依赖 二.配置文件 2.0 Web.xml 配置文件 2.1 Spring的配置文件 ...

  6. SSM框架整合(Spring+SpringMVC+MyBatis+Oracle)

    1.开发环境搭建以及创建Maven Web项目 参看之前的博文:http://www.cnblogs.com/cainiaomahua/p/6306476.html 2.SSM整合 这次整合有2个配置 ...

  7. SSM框架整合(Spring+SpringMVC+MyBatis)

    输出结果 1.Maven Web项目创建 之前有写过Eclipse+Maven创建web项目的帖子,如果需要,请参考这里写链接内容 创建好项目之后因为入下图: 2.SSM整合 2.1 引入需要的JAR ...

  8. ssm注解配置连接mysql_SSM框架整合(注解)-Spring+SpringMVC+MyBatis+MySql

    准备工作: 下载整合所需的jar包 点击此处下载 使用MyBatis Generator生成dao接口.映射文件和实体类 如何生成 搭建过程: 先来看一下项目的 目录结构 1.配置dispatcher ...

  9. 【Qt】Qt再学习(十一):图形视图框架(Graphics View Framework)的一个小demo

    1.简介 使用的主要类:QGraphicsTextItem.QGraphicsScene.QGraphicsView. QGraphicsTextItem继承自QGraphicsObject,而QGr ...

最新文章

  1. IE这回在css flex中扳回一局?
  2. ML之LiRLassoR:利用boston房价数据集(PCA处理)采用线性回归和Lasso套索回归算法实现房价预测模型评估
  3. php 多文件上传控件,php 动态多文件上传
  4. ubuntu mysql 定时生成 备份文件 使用crontab 【个人笔记总结】
  5. 前端js vue遇到的一些简单的数据处理-持续更新
  6. 伯颜的诗和“金佛”趣事
  7. 【转】ABP源码分析三:ABP Module
  8. main run方法没用_多线程:解决Runnable接口无start()方法的问题
  9. jquery.autocomplete自动完成控件
  10. 计算机数值方法(1):引论
  11. javaweb网上购物系统,jsp网页线上购物,mysql(源码+报告)
  12. 金融小知识 | Fama-Macbeth回归
  13. 34604-52-9,Ms-PEG3-Ms甲磺酸基是良好的离去基,也可用作伯醇的保护基
  14. Java设计模式——行为型模式之观察者模式
  15. 无往不利:用SQL解海盗分金的利益最大化问题
  16. Halcon算子解释大全
  17. [CORS:跨域资源共享] 同源策略与JSONP
  18. Android第一行代码——第八章多媒体
  19. 为什么这么多人说 IDEA 比 Eclipse 更好?
  20. Java代码一键生成神器,支持Jpa/Mybatis/plus多种ORM框架,亲测好用

热门文章

  1. 树莓派:VNC远程控制
  2. ERROR 1045: Access denied for user: 'root@localhost' (Using password: YES)(转)
  3. linux中源码编译安装mysql常见错误
  4. 图形脚本语言sikuli
  5. simulink中s-function使用
  6. h.264编码库x264实例
  7. 怎么把数字替换成空格_剑指offer04:替换空格
  8. extjs 获取id的值_extjs 获取Dom对象
  9. jq 比较两个时间是否在同一天_.NET CORE下最快比较两个文件内容是否相同的方法...
  10. python做运动控制_ROS探索总结-61.MoveIt!编程驾驭机械臂运动控制