日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > c/c++ >内容正文

c/c++

框架:springboot组合spring、springmvc、mybatis的一个小demo

發(fā)布時(shí)間:2025/3/21 c/c++ 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 框架:springboot组合spring、springmvc、mybatis的一个小demo 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Spring+SpringMVC+Mybatis就是大名頂頂?shù)腟SM了。

這里我們使用IDEA的SpringBoot和版本控制器MAVEN構(gòu)建一個(gè)SSM的demo。


介紹:

  在搭建過(guò)程中spring整合springmvc和mybatis時(shí)會(huì)有很多的東西需要我們進(jìn)行配置,這樣不僅浪費(fèi)了時(shí)間,也比較容易出錯(cuò),由于這樣問(wèn)題的產(chǎn)生,Pivotal團(tuán)隊(duì)提供了一款全新的框架Spring Boot,該框架使用了特定的方式來(lái)進(jìn)行配置,從而使開(kāi)發(fā)人員不再需要定義樣板化的配置。通過(guò)這種方式,Spring Boot致力于在蓬勃發(fā)展的快速應(yīng)用開(kāi)發(fā)領(lǐng)域(rapid application development)成為領(lǐng)導(dǎo)者。

特點(diǎn):

1. 創(chuàng)建獨(dú)立的Spring應(yīng)用程序

2. 嵌入的Tomcat,無(wú)需部署WAR文件

3. 簡(jiǎn)化Maven配置

4. 自動(dòng)配置Spring

5. 提供生產(chǎn)就緒型功能,如指標(biāo),健康檢查和外部配置

6. 絕對(duì)沒(méi)有代碼生成和對(duì)XML沒(méi)有要求配置

(以上大部分內(nèi)容摘自百度百科)

?ok,關(guān)于springboot的講解就到這里大家想了解的更詳細(xì)可以自行百度。

搭建springboot項(xiàng)目我推薦大家用idea或者sts(spring tool suite spring公司自己研發(fā)的一款編輯器),我現(xiàn)在用的是idea,所以接下來(lái)我是用idea搭建項(xiàng)目的

?一、創(chuàng)建項(xiàng)目

?

?填寫(xiě)完Group和Atrifact后點(diǎn)擊下一步,這里我選擇的是jar,因?yàn)楣俜轿臋n推薦的是打包成JAR,所以這里就不過(guò)多解釋了。

?

?這里勾選上web

?

?這里勾選上MySQL、JDBC和Mybatis點(diǎn)擊下一步

?

這里輸入項(xiàng)目名和項(xiàng)目路徑后點(diǎn)擊完成

這是新建完成后的項(xiàng)目結(jié)構(gòu)

?

?二、添加pom.xml依賴

因?yàn)閟pringboot不推薦使用jsp做頁(yè)面,如果想要使用就必需的添加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

因?yàn)樵趧?chuàng)建項(xiàng)目的時(shí)候我們選擇了mybatis和jdbc所以在這里也要把他們兩也給配置進(jìn)去

編輯application.properties

# 頁(yè)面默認(rèn)前綴目錄
spring.mvc.view.prefix=/WEB-INF/jsp/
# 響應(yīng)頁(yè)面默認(rèn)后綴
spring.mvc.view.suffix=.jsp

#數(shù)據(jù)源開(kāi)發(fā)配置
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

如果大家習(xí)慣用application.yml那也可以用,但是用application.yml在第一次啟動(dòng)項(xiàng)目的時(shí)候一定要maven clean一下,不然會(huì)報(bào)錯(cuò)。

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下創(chuàng)建webapp目錄,結(jié)構(gòu)如下

?

新建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;} }

?

運(yùn)行main函數(shù)

訪問(wèn)頁(yè)面,成功

?

四、springboot整合mybatis

?創(chuàng)建數(shù)據(jù)庫(kù)表

-- ---------------------------- -- 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', '起風(fēng)了'); INSERT INTO `music_info` VALUES ('2', '劉德華', '3.0M', '忘情水'); INSERT INTO `music_info` VALUES ('3', '豬點(diǎn)點(diǎn)', '5.0M', '會(huì)寫(xiě)程序的小豬');

創(chuàng)建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;}/*** 設(shè)置 主鍵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;}/*** 設(shè)置 歌手名 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;}/*** 設(shè)置 歌曲大小 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;}/*** 設(shè)置 歌曲名 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 + '\'' +'}';} }

?

創(chuàng)建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>

創(chuàng)建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實(shí)現(xiàn)類

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;} }

創(chuàng)建完成后的結(jié)構(gòu)如下

?

編輯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);} }

運(yùn)行項(xiàng)目,成功,springboot+springmvc+mybatis整合完成(源碼下載地址:https://github.com/caicahoqi/ChaoqiIsPrivateLibrary)

總結(jié)

以上是生活随笔為你收集整理的框架:springboot组合spring、springmvc、mybatis的一个小demo的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。