欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

springboot+springmvc+mybatis項(xiàng)目整合

 更新時(shí)間:2018年04月02日 08:55:26   作者:豬點(diǎn)點(diǎn)  
這篇文章主要為大家詳細(xì)介紹了springboot+springmvc+mybatis項(xiàng)目的整合,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

介紹:

  上篇給大家介紹了ssm多模塊項(xiàng)目的搭建,在搭建過(guò)程中spring整合springmvc和mybatis時(shí)會(huì)有很多的東西需要我們進(jìn)行配置,這樣不僅浪費(fèi)了時(shí)間,也比較容易出錯(cuò),由于這樣問(wèn)題的產(chǎn)生,Pivotal團(tuán)隊(duì)提供了一款全新的框架,該框架使用了特定的方式來(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

#開(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: 8080

spring:
 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.Driver

mybatis:
 mapper-locations: classpath:mapping/*.xml
 type-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 {
 // 主鍵id
 private 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();
 }

 @Override
 public 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 {

 @Autowired
 private MusicInfoMapper musicInfoMapper;

 @Override
 public 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";
 @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);
 }
}

運(yùn)行項(xiàng)目,成功,springboot+springmvc+mybatis整合完成(源碼下載地址

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Maven打包的三種方式小結(jié)

    Maven打包的三種方式小結(jié)

    這篇文章給大家介紹了三種Maven打包的方式,使用maven-jar-plugin,使用maven-assembly-plugin和使用maven-shade-plugin這三種方式,通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-09-09
  • 使用Java8實(shí)現(xiàn)模板方法模式的改造

    使用Java8實(shí)現(xiàn)模板方法模式的改造

    這篇文章主要為大家詳細(xì)介紹了如何使用Java8實(shí)現(xiàn)模板方法模式的改造,文中的示例代碼講解詳細(xì),對(duì)我們深入了解java8有一定的幫助,感興趣的可以了了解一下
    2023-01-01
  • 使用Springboot整合Apollo配置中心

    使用Springboot整合Apollo配置中心

    這篇文章主要介紹了使用Springboot整合Apollo配置中心的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • Java數(shù)據(jù)結(jié)構(gòu)與算法學(xué)習(xí)之循環(huán)鏈表

    Java數(shù)據(jù)結(jié)構(gòu)與算法學(xué)習(xí)之循環(huán)鏈表

    循環(huán)鏈表是另一種形式的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)。它的特點(diǎn)是表中最后一個(gè)結(jié)點(diǎn)的指針域指向頭結(jié)點(diǎn),整個(gè)鏈表形成一個(gè)環(huán)。本文將為大家詳細(xì)介紹一下循環(huán)鏈表的特點(diǎn)與使用,需要的可以了解一下
    2021-12-12
  • Java實(shí)現(xiàn)文件上傳的方法總結(jié)

    Java實(shí)現(xiàn)文件上傳的方法總結(jié)

    這篇文章主要為大家介紹了三種Java實(shí)現(xiàn)文件上傳的方法,文中的示例代碼講解詳細(xì),對(duì)我們的學(xué)習(xí)或工作有一定的借鑒價(jià)值,感興趣的可以了解一下
    2023-04-04
  • java 中的亂碼問(wèn)題匯總及解決方案

    java 中的亂碼問(wèn)題匯總及解決方案

    這篇文章主要介紹了java 中的亂碼問(wèn)題匯總相關(guān)資料,并附解決方案,出現(xiàn)亂碼問(wèn)題有編碼與解碼,字節(jié)流與字符流出現(xiàn)亂碼,等其他情況,需要的朋友可以參考下
    2016-11-11
  • java解析xml之jdom解析xml示例分享

    java解析xml之jdom解析xml示例分享

    JDOM是專門(mén)為Java打造的API,JDOM采用了Java中的Collection架構(gòu)來(lái)封裝集合,是Java愛(ài)好者更加熟悉的模式,下面看使用示例
    2014-01-01
  • Java基礎(chǔ)--反射機(jī)制

    Java基礎(chǔ)--反射機(jī)制

    本文主要介紹了Java反射機(jī)制的相關(guān)知識(shí)。具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧
    2017-03-03
  • JAVA內(nèi)存溢出解決方案圖解

    JAVA內(nèi)存溢出解決方案圖解

    這篇文章主要介紹了JAVA內(nèi)存溢出解決方案圖解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10
  • java使用Jsoup連接網(wǎng)站超時(shí)的解決方法

    java使用Jsoup連接網(wǎng)站超時(shí)的解決方法

    jsoup是一個(gè)非常好的解析網(wǎng)頁(yè)的包,用java開(kāi)發(fā)的,提供了類似DOM,CSS選擇器的方式來(lái)查找和提取文檔中的內(nèi)容,提取文檔內(nèi)容時(shí)會(huì)出現(xiàn)超時(shí)的情況,解決方法可看下文
    2013-11-11

最新評(píng)論