springboot+springmvc+mybatis项目整合

网友投稿 342 2023-02-10


springboot+springmvc+mybatis项目整合

介绍:

上篇给大家介绍了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搭建项目的

一、创建项目

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

这里勾选上web

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

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

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

二、添加pom.xml依赖

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

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

4.0.0

com.chaoqi

springboot_demo2

0.0.1-SNAPSHOT

jar

springboot_demo2

Demo project for Spring Boot

org.springframework.boot

spring-boot-starter-parent

2.0.0.RELEASE

UTF-8

UTF-8

1.8

org.springframework.boot

spring-boot-starter-jdbc

org.springframework.boot

spring-boot-starter-web

org.mybatis.spring.boot

mybatis-spring-boot-starter

1.3.2

mysql

mysql-connector-java

runtime

org.springframework.boot

spring-boot-starter-test

test

org.springframework.boot

spring-boot-starter-tomcat

org.apache.tomcat.embed

tomcat-embed-jasper

org.springframework.boot

spring-boot-maven-plugin

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

4.0.0

com.chaoqi

springboot_demo2

0.0.1-SNAPSHOT

jar

springboot_demo2

Demo project for Spring Boot

org.springframework.boot

spring-boot-starter-parent

2.0.0.RELEASE

UTF-8

UTF-8

1.8

org.springframework.boot

spring-boot-starter-jdbc

org.springframework.boot

spring-boot-starter-web

org.mybatis.spring.boot

mybatis-spring-boot-starter

1.3.2

mysql

mysql-connector-java

runtime

org.springframework.boot

spring-boot-starter-test

test

org.springframework.boot

spring-boot-starter-tomcat

org.apache.tomcat.embed

tomcat-embed-jasper

org.springframework.boot

spring-boot-maven-plugin

三、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: 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下创建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 {

// 主键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 = musicNamehttp:// == null ? null : musicName.trim();

}

@Override

public String toString() {

return "MusicInfo{" +

"id=" + id +

", singerName='" + singerName + '\'' +

", musicSize='" + musicSize + '\'' +

", musicName='" + musicName + '\'' +

'}';

}

}

创建mapper.xml

创建mapper

package com.chaoqi.springboot_test.dao.mapper;

import com.chaoqi.springboot_test.dao.domain.MusicInfo;

import org.apache.ibatis.annotations.ResultMap;

import org.asHNoZJUpache.ibatis.annotations.Select;

import java.util.List;

public interface MusicInfoMapper {

@ResultMap("BaseResultMap")

@Select("select * from music_info")

List 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 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 {

@Autowired

private MusicInfoMapper musicInfoMapper;

@Override

public List getMusicInfo(MusicInfo musicInfo) {

List 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";

@Autowired

private MusicInfoService musicInfoService;

@RequestMapping("/show")

public String getIndex() {

return INDEX;

}

@RequestMapping("/music")

@ResponseBody

public List getMusicInfo(MusicInfo musicInfo) {

List 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整合完成(源码下载地址)


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Angular2进阶之如何避免Dom误区
下一篇:vue内置指令详解
相关文章

 发表评论

暂时没有评论,来抢沙发吧~