springboot+springmvc+mybatis项目整合的示例分析
这篇文章将为大家详细讲解有关springboot+springmvc+mybatis项目整合的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
在崇义等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供做网站、网站建设 网站设计制作按需求定制设计,公司网站建设,企业网站建设,品牌网站制作,成都全网营销,外贸营销网站建设,崇义网站建设费用合理。
特点:
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的依赖
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 = musicName == 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.apache.ibatis.annotations.Select; import java.util.List; public interface MusicInfoMapper { @ResultMap("BaseResultMap") @Select("select * from music_info") ListselectAll(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 ListgetMusicInfo(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 ListgetMusicInfo(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 ListgetMusicInfo(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整合完成(源码下载地址)
关于“springboot+springmvc+mybatis项目整合的示例分析”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
分享文章:springboot+springmvc+mybatis项目整合的示例分析
浏览地址:http://ybzwz.com/article/jeojid.html