亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > Java > 正文

springboot+springmvc+mybatis項目整合

2024-07-14 08:39:49
字體:
來源:轉載
供稿:網友

介紹:

  上篇給大家介紹了ssm多模塊項目的搭建,在搭建過程中spring整合springmvc和mybatis時會有很多的東西需要我們進行配置,這樣不僅浪費了時間,也比較容易出錯,由于這樣問題的產生,Pivotal團隊提供了一款全新的框架,該框架使用了特定的方式來進行配置,從而使開發人員不再需要定義樣板化的配置。通過這種方式,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搭建項目的

 一、創建項目

springboot,springmvc,mybatis

填寫完Group和Atrifact后點擊下一步,這里我選擇的是jar,因為官方文檔推薦的是打包成JAR,所以這里就不過多解釋了。

springboot,springmvc,mybatis

這里勾選上web

springboot,springmvc,mybatis

這里勾選上MySQL、JDBC和Mybatis點擊下一步

springboot,springmvc,mybatis

這里輸入項目名和項目路徑后點擊完成

springboot,springmvc,mybatis

這是新建完成后的項目結構

springboot,springmvc,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.Driverspring.datasource.url = jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8spring.datasource.username = rootspring.datasource.password = 123456# mybatis接口文件位置mybatis.mapper-locations: classpath:mapper/*.xmlmybatis.type-aliases-package: com.chaoqi.springboot_demo2.domain

如果大家習慣用application.yml那也可以用,但是用application.yml在第一次啟動項目的時候一定要maven clean一下,不然會報錯。

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

編輯完application.properties之后再src/mian下創建webapp目錄,結構如下

springboot,springmvc,mybatis

新建IndexController

springboot,springmvc,mybatis

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

運行main函數

springboot,springmvc,mybatis

訪問頁面,成功

springboot,springmvc,mybatis

四、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 { // 主鍵id private 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(); } @Override public 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;@Servicepublic class MusicInfoServiceImpl implements MusicInfoService { @Autowired private MusicInfoMapper musicInfoMapper; @Override public List<MusicInfo> getMusicInfo(MusicInfo musicInfo) {  List<MusicInfo> musicInfos = musicInfoMapper.selectAll(null);  return musicInfos; }}

創建完成后的結構如下

springboot,springmvc,mybatis

編輯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;@Controllerpublic class IndexController { private static final String INDEX = "index"; @Autowired private MusicInfoService musicInfoService; @RequestMapping("/show") public String getIndex() {  return INDEX; } @RequestMapping("/music") @ResponseBody public 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整合完成(源碼下載地址)

springboot,springmvc,mybatis

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美老女人bb| 国产精品第8页| 国产精品手机播放| 国产激情视频一区| 中文字幕日韩精品在线| 国产精品久久久久久久电影| 日韩成人av在线| 日韩av片电影专区| 日韩中文字在线| 51午夜精品视频| 国产精品入口免费视| 91精品国产乱码久久久久久蜜臀| 欧美人与性动交| 日韩欧美一区二区三区| 欧美在线一区二区视频| 欧美与黑人午夜性猛交久久久| 亚洲sss综合天堂久久| 日韩电视剧免费观看网站| 日韩av一区二区在线观看| 欧美极品少妇xxxxx| 国产精品久久久久久久久久| 欧美一区二区三区精品电影| 亚洲成人黄色网址| 日本精品久久久久影院| 日韩成人在线网站| 国产精品自产拍在线观| 精品视频在线观看日韩| 欧美激情三级免费| 久久精品人人做人人爽| 精品少妇一区二区30p| 欧美日韩在线视频一区| 久久精品国产亚洲精品2020| 国产不卡视频在线| 2024亚洲男人天堂| 国产精品88a∨| 亚洲欧美在线免费观看| 最好看的2019年中文视频| 欧美视频在线视频| 国产精品美女久久| 91麻豆桃色免费看| 大伊人狠狠躁夜夜躁av一区| 久久久999成人| 久久噜噜噜精品国产亚洲综合| 欧美日韩性生活视频| 日韩在线观看免费av| 久久国产精彩视频| 国产日韩在线看| 亚洲日韩第一页| 精品国内产的精品视频在线观看| 国产视频观看一区| 国产精品色午夜在线观看| 中文字幕成人精品久久不卡| 亚洲精品久久久久国产| 国产精品video| 久久久国产成人精品| 日本成人在线视频网址| 懂色av一区二区三区| 日韩免费看的电影电视剧大全| 精品久久久久久中文字幕一区奶水| 国产精品综合网站| 成人免费淫片视频软件| 亚洲人成电影在线观看天堂色| 亚洲精品日韩在线| 亚洲精品一区在线观看香蕉| 日韩一区二区欧美| 国产97在线亚洲| 亚洲国产又黄又爽女人高潮的| 亚洲国产成人久久综合一区| 久久久久久久久久国产| 国产视频精品va久久久久久| 国产精品女视频| 久久成人人人人精品欧| 亚洲第一网站男人都懂| 亚洲综合小说区| 国产日产久久高清欧美一区| 亚洲影院色在线观看免费| 欧美日韩综合视频网址| 欧美一级成年大片在线观看| 国产日韩欧美91| 久久精品视频一| 中文字幕综合一区| 日韩精品在线观看一区| 国产精品老牛影院在线观看| 热久久免费国产视频| 青青a在线精品免费观看| 日韩欧美综合在线视频| 成人性教育视频在线观看| 精品激情国产视频| 亚洲一区二区三区sesese| 欧美三级免费观看| 全色精品综合影院| 亚洲国模精品私拍| 国产精品都在这里| 国产精品美女在线| 欧美性猛交xxxx富婆弯腰| 亚洲人成网站999久久久综合| 中文字幕亚洲欧美日韩高清| 亚洲精品91美女久久久久久久| 欧美日韩中文字幕在线视频| 亚洲视频综合网| 日韩成人黄色av| 国产精品久久久久高潮| 久久久久亚洲精品成人网小说| 欧美亚洲另类激情另类| 精品国产精品三级精品av网址| 久久久久久久久国产| 日韩中文在线视频| 国产99久久精品一区二区永久免费| 亚洲欧洲黄色网| 精品国产一区二区三区久久| 97精品国产97久久久久久| 97激碰免费视频| 亚洲伦理中文字幕| 亚洲欧美日韩精品| 91精品国产高清久久久久久久久| 国产日韩精品入口| 91在线播放国产| 国产精品视频xxxx| 精品久久久久久久中文字幕| 中文字幕一区二区三区电影| 91影院在线免费观看视频| 国产亚洲人成网站在线观看| 亚洲欧美国产精品va在线观看| 性欧美xxxx| 欧美电影在线观看高清| 中文字幕国产亚洲| 亚洲另类欧美自拍| 欧美第一页在线| 国产精品久久久久国产a级| 亚洲国产日韩欧美在线99| 亚洲自拍偷拍一区| 日韩欧美中文在线| 国内精品400部情侣激情| 全亚洲最色的网站在线观看| 亚洲一区二区自拍| 久久精品视频亚洲| 国产精品扒开腿爽爽爽视频| 欧美成人激情图片网| 国内外成人免费激情在线视频| 俺也去精品视频在线观看| 欧美成人免费在线观看| 欧洲成人在线视频| 69视频在线播放| 在线精品国产欧美| 欧洲永久精品大片ww免费漫画| 亚洲欧美一区二区激情| 136fldh精品导航福利| 亚洲三级 欧美三级| 国产精品极品在线| 97在线视频一区| 97不卡在线视频| 国产91对白在线播放| 麻豆一区二区在线观看| 欧美性猛交xxxx黑人猛交| 国产精品99久久99久久久二8| 欧美日韩国产精品一区二区不卡中文| 欧美成人在线影院| 欧美久久精品一级黑人c片| 国产激情综合五月久久| 92看片淫黄大片欧美看国产片| 亚洲色图13p| 日韩电影在线观看永久视频免费网站| 亚洲欧美中文日韩v在线观看| 亚洲女在线观看|