spring boot项目创建,集成mybatis配置mysql连接,编写测试代码完成访问接口查询数据库

本文主要是介绍spring boot项目创建,集成mybatis配置mysql连接,编写测试代码完成访问接口查询数据库,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

springboot项目创建mybatis配置mysql,完成查询数据库测试
准备工作:
1.去https://start.spring.io/创建项目,本例使用的是 springboot 2.4.0-SNAPSHOT ,Maven,JAVA 8,依赖WEB MVC。
2.JAVA开发工具导入Maven项目,本例使用的是eclipse。
3.resources文件夹下创建mapper文件夹备用
4.本地要有jdk8环境便于测试
一.首先引入mysql和mybatis的jar包

 <!--mysql数据库驱动--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>runtime</scope></dependency><!--mybatis--><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.1.0</version></dependency>

二.再resources文件夹下创建application.yml和mybatis-config.xml配置文件
1.application.yml 配置端口,数据库配置,mybatis配置

server:port: 9898
spring:#数据库连接配置datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://IP:3306/test?characterEncoding=utf-8&useSSL=falseusername: 账号password: 密码#mybatis的相关配置
mybatis:#mapper配置文件mapper-locations: classpath:mapper/*.xmltype-aliases-package: cn.richwit.blog.entityconfig-location: classpath:mybatis-config.xml

2.mybatis-config.xml(空文件什么不配置也要创建)

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration><!--以下已经在application.yml中配置过了--><!--<typeAliases>--><!--<package name="com.example.domain"/>--><!--</typeAliases>--><!--<mappers>--><!--<mapper resource="mapper/UserMapper.xml"/>--><!--</mappers>-->
</configuration>

三.编写测试代码
1.entity实体类

package cn.richwit.blog.entity;import java.util.Date;/**   
* @version 1.0  
*/
public class Article {//idprivate int article_id;//标题private String article_title;//内容private String article_comtent;//类型private String article_type;//用户idprivate int user_id;//阅读量private long reading_quantity;private Date create_time;private Date update_time;public Article() {super();}public Article(int article_id, String article_title, String article_comtent, String article_type, int user_id,long reading_quantity, Date create_time, Date update_time) {super();this.article_id = article_id;this.article_title = article_title;this.article_comtent = article_comtent;this.article_type = article_type;this.user_id = user_id;this.reading_quantity = reading_quantity;this.create_time = create_time;this.update_time = update_time;}public int getArticle_id() {return article_id;}public void setArticle_id(int article_id) {this.article_id = article_id;}public String getArticle_title() {return article_title;}public void setArticle_title(String article_title) {this.article_title = article_title;}public String getArticle_comtent() {return article_comtent;}public void setArticle_comtent(String article_comtent) {this.article_comtent = article_comtent;}public String getArticle_type() {return article_type;}public void setArticle_type(String article_type) {this.article_type = article_type;}public int getUser_id() {return user_id;}public void setUser_id(int user_id) {this.user_id = user_id;}public long getReading_quantity() {return reading_quantity;}public void setReading_quantity(long reading_quantity) {this.reading_quantity = reading_quantity;}public Date getCreate_time() {return create_time;}public void setCreate_time(Date create_time) {this.create_time = create_time;}public Date getUpdate_time() {return update_time;}public void setUpdate_time(Date update_time) {this.update_time = update_time;}}

2.controller控制层

package cn.richwit.blog.controller;import java.util.HashMap;
import java.util.Map;import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import cn.richwit.blog.entity.Article;
import cn.richwit.blog.service.ArticleService;/**   
* @version 1.0  
*/
@RestController
@RequestMapping("/article")
public class ArticleController {@Autowiredprivate ArticleService articleService;@RequestMapping("/getarticlebyid")public Map<String,Object> getArticleById(String articleId){Map<String,Object> map = new HashMap<>();if(StringUtils.isBlank(articleId)) {map.put("err", "错误请求!");return map;}Article article = articleService.getArticleById(Integer.parseInt(articleId));if(article == null) {map.put("success", false);}else {map.put("success", true);map.put("article", article);}return map;}}

3.service服务层
接口

package cn.richwit.blog.service;import cn.richwit.blog.entity.Article;/**   
* @version 1.0  
*/
public interface ArticleService {Article getArticleById(int id);}

实现类

package cn.richwit.blog.service;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import cn.richwit.blog.dao.ArticleDao;
import cn.richwit.blog.entity.Article;/**   * @version 1.0  
*/
@Service
public class ArticleServiceImpl implements ArticleService{@Autowiredprivate ArticleDao articleDao;@Overridepublic Article getArticleById(int id) {Article article = articleDao.findArticleById(id);return article;}}

4.dao数据层

package cn.richwit.blog.service;import java.util.HashMap;
import java.util.Map;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import cn.richwit.blog.dao.ArticleDao;
import cn.richwit.blog.entity.Article;/**   
* @version 1.0  
*/
@Service
public class ArticleServiceImpl implements ArticleService{@Autowiredprivate ArticleDao articleDao;@Overridepublic Map<String, Object> getArticleById(int id) {Map<String, Object> map = new HashMap<>();Article article = articleDao.findArticleById(id);map.put("article", article);return map;}}

5.dao接口对应的mapper

<?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="cn.richwit.blog.dao.ArticleDao"><select id="findArticleById" parameterType="int" resultType="Article">SELECT * FROM Article where article_id = #{articleId}</select>
</mapper>

6.最后再启动类上加上扫描dao接口

package cn.richwit.blog;import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
@MapperScan("cn.richwit.blog.dao")
public class BlogApplication {public static void main(String[] args) {SpringApplication.run(BlogApplication.class, args);}}

7.创建实体类对应的数据库表,并插入一条测试数据
在这里插入图片描述
在这里插入图片描述
最后运行启动类
访问:http://127.0.0.1:9898/article/getarticlebyid?articleId=1
在这里插入图片描述

这篇关于spring boot项目创建,集成mybatis配置mysql连接,编写测试代码完成访问接口查询数据库的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/840279

相关文章

Java实现检查多个时间段是否有重合

《Java实现检查多个时间段是否有重合》这篇文章主要为大家详细介绍了如何使用Java实现检查多个时间段是否有重合,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录流程概述步骤详解China编程步骤1:定义时间段类步骤2:添加时间段步骤3:检查时间段是否有重合步骤4:输出结果示例代码结语作

Nginx设置连接超时并进行测试的方法步骤

《Nginx设置连接超时并进行测试的方法步骤》在高并发场景下,如果客户端与服务器的连接长时间未响应,会占用大量的系统资源,影响其他正常请求的处理效率,为了解决这个问题,可以通过设置Nginx的连接... 目录设置连接超时目的操作步骤测试连接超时测试方法:总结:设置连接超时目的设置客户端与服务器之间的连接

Java中String字符串使用避坑指南

《Java中String字符串使用避坑指南》Java中的String字符串是我们日常编程中用得最多的类之一,看似简单的String使用,却隐藏着不少“坑”,如果不注意,可能会导致性能问题、意外的错误容... 目录8个避坑点如下:1. 字符串的不可变性:每次修改都创建新对象2. 使用 == 比较字符串,陷阱满

Java判断多个时间段是否重合的方法小结

《Java判断多个时间段是否重合的方法小结》这篇文章主要为大家详细介绍了Java中判断多个时间段是否重合的方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录判断多个时间段是否有间隔判断时间段集合是否与某时间段重合判断多个时间段是否有间隔实体类内容public class D

IDEA编译报错“java: 常量字符串过长”的原因及解决方法

《IDEA编译报错“java:常量字符串过长”的原因及解决方法》今天在开发过程中,由于尝试将一个文件的Base64字符串设置为常量,结果导致IDEA编译的时候出现了如下报错java:常量字符串过长,... 目录一、问题描述二、问题原因2.1 理论角度2.2 源码角度三、解决方案解决方案①:StringBui

Java覆盖第三方jar包中的某一个类的实现方法

《Java覆盖第三方jar包中的某一个类的实现方法》在我们日常的开发中,经常需要使用第三方的jar包,有时候我们会发现第三方的jar包中的某一个类有问题,或者我们需要定制化修改其中的逻辑,那么应该如何... 目录一、需求描述二、示例描述三、操作步骤四、验证结果五、实现原理一、需求描述需求描述如下:需要在

Debezium 与 Apache Kafka 的集成方式步骤详解

《Debezium与ApacheKafka的集成方式步骤详解》本文详细介绍了如何将Debezium与ApacheKafka集成,包括集成概述、步骤、注意事项等,通过KafkaConnect,D... 目录一、集成概述二、集成步骤1. 准备 Kafka 环境2. 配置 Kafka Connect3. 安装 D

Java中ArrayList和LinkedList有什么区别举例详解

《Java中ArrayList和LinkedList有什么区别举例详解》:本文主要介绍Java中ArrayList和LinkedList区别的相关资料,包括数据结构特性、核心操作性能、内存与GC影... 目录一、底层数据结构二、核心操作性能对比三、内存与 GC 影响四、扩容机制五、线程安全与并发方案六、工程

部署Vue项目到服务器后404错误的原因及解决方案

《部署Vue项目到服务器后404错误的原因及解决方案》文章介绍了Vue项目部署步骤以及404错误的解决方案,部署步骤包括构建项目、上传文件、配置Web服务器、重启Nginx和访问域名,404错误通常是... 目录一、vue项目部署步骤二、404错误原因及解决方案错误场景原因分析解决方案一、Vue项目部署步骤

JavaScript中的reduce方法执行过程、使用场景及进阶用法

《JavaScript中的reduce方法执行过程、使用场景及进阶用法》:本文主要介绍JavaScript中的reduce方法执行过程、使用场景及进阶用法的相关资料,reduce是JavaScri... 目录1. 什么是reduce2. reduce语法2.1 语法2.2 参数说明3. reduce执行过程