SpringBoot中数据库的连接及Mybatis的配置和使用

目录

1 在pom.xml中引入相关依赖

2 对数据库进行配置

2.1 配置application.yml

2.2 idea连接数据库 (3.2.1有用到)

3 Mybatis的使用

3.1 测试文件的引入

3.2 使用

3.2.1 使用注解(有小技巧(✪ω✪))

3.2.2 使用动态sql


1 在pom.xml中引入相关依赖

<dependencies><!--    web依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!--        lombok依赖--><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency><!--下面两个为数据库和MySQL的依赖,上面两个为项目运行/测试所需依赖--><!--      mysql驱动依赖--><dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId></dependency><!--    mybatis依赖--><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>3.0.3</version></dependency>
</dependencies>

2 对数据库进行配置

测试数据库的创建如下:

create database test;
use test;CREATE TABLE user
(id       INT AUTO_INCREMENT PRIMARY KEY,username VARCHAR(50)
);INSERT INTO user (username)
VALUES ('user1');
INSERT INTO user (username)
VALUES ('user2');
INSERT INTO user (username)
VALUES ('user3');
INSERT INTO user (username)
VALUES ('user4');
INSERT INTO user (username)
VALUES ('user5');

2.1 配置application.yml

spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driver    #固定的url: jdbc:mysql://localhost:3306/test #连接的是测试用的test数据库username: root    #用户名password: 11235813    #密码

2.2 idea连接数据库 (3.2.1有用到)

3 Mybatis的使用

3.1 测试文件的引入

创建文件结构如下:

相关代码如下: 

@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {private Integer id;private String username;
}
@RestController
@RequestMapping("/user")
public class UserController {@Autowiredprivate UserService userService;@GetMapping("/list")public List<User> list() {return userService.list();}
}
public interface UserService {List<User> list();
}
@Service
public class UserServiceImpl implements UserService {@Autowiredprivate UserMapper userMapper;@Overridepublic List<User> list() {return userMapper.list();}
}
@Mapper
public interface UserMapper {List<User> list();
}

3.2 使用

3.2.1 使用注解(有小技巧(✪ω✪))

在UserMapper中书写如下内容:

@Mapper
public interface UserMapper {@Select("select * from user")List<User> list();
}

运行可以在浏览器看到:

这里有个小技巧

当我们不使用这个技巧的时候,注解中的语句没有提示只能自己敲,而如果我们让idea连接了数据库 ,并按如下方法进行配置,就会有提示,操作如下:

 

3.2.2 使用动态sql

①在resource下建立同样的目录结构并创建xml文件,比如:你之前的UserMapper.class在com.itheima.mapper下,你的UserMapper.xml也要在同样的目录结构下

 ②向创建好的文件中添加如下固定模板:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
//这里的com.itheima.mapper.UserMapper,为该xml的对应文件UserMapper.class的位置
//如果换了其它的Mapper,namespace中的内容也要改
<mapper namespace="com.itheima.mapper.UserMapper"></mapper>

③完善内容

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.itheima.mapper.UserMapper"><!--动态SQL--><!--这里的id为UserMapper.class文件中对应的方法名--><!--这里的resultType为返回的数据类型,这里返回User--><select id="list" resultType="com.itheima.pojo.User"><!--这只是一种比较粗浅的用法,仅用于举例,动态SQL配合专门标签食用更佳--><!--比如:<where>、<if>等等,这里不做赘述-->select * from user</select>
</mapper>

测试结果同上

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/452553.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

贪心算法篇2

“星辰野草&#xff0c;造出无边的天地~” 最⻓递增⼦序列 (1) 题目解析 (2) 算法原理 class Solution { public:int lengthOfLIS(vector<int>& nums) {// 使用dp int n nums.size(), ret 1;// 初始化为1vector<int> dp(n1,1);// 从第二个位置…

机器学习复习(5)——激活函数

目录 激活函数分类 区别与优缺点 饱和激活函数 非饱和激活函数 综合考虑 Sigmoid激活函数 Tanh激活函数 ReLU激活函数 Leaky Relu激活函数 Swish激活函数 激活函数分类 激活函数可以分为两大类 &#xff1a; 饱和激活函数&#xff1a;sigmoid、tanh非饱和激活函数:…

《区块链简易速速上手小册》第2章:区块链的工作原理(2024 最新版)

文章目录 2.1 分布式账本技术&#xff08;DLT&#xff09;2.1.1 DLT基础知识2.1.2 主要案例&#xff1a;供应链管理2.1.3 拓展案例 1&#xff1a;数字身份2.1.4 拓展案例 2&#xff1a;投票系统 2.2 加密和安全性2.2.1 加密技术基础2.2.2 主要案例&#xff1a;比特币交易2.2.3 …

基于springboot原创歌曲分享平台源码和论文

随着信息技术和网络技术的飞速发展&#xff0c;人类已进入全新信息化时代&#xff0c;传统管理技术已无法高效&#xff0c;便捷地管理信息。为了迎合时代需求&#xff0c;优化管理效率&#xff0c;各种各样的管理平台应运而生&#xff0c;各行各业相继进入信息管理时代&#xf…

kubectl命令

kubenetes部署服务的流程 以部署一个nginx服务来说明kubernetes系统各个组件调用关系&#xff1a; 1. 首先要明确&#xff0c;一旦kubernetes环境启动之后&#xff0c;master和node都会将自身的信息存储到etcd数据库中 2. 一个nginx服务的安装请求会首先被发送到master节点的ap…

VitePress-07-文档中代码块的使用全解

说明 本文会介绍 vitepress 中markdown文档对 代码块的支持特性&#xff0c; 包括基本使用、代码高亮、展示行号、指定代码行高亮、代码聚焦、以及代码删除/新增标记、代码错误和警告标记 等特性的使用。 代码块的基本语法 代码块的基本效果就是 &#xff1a;代码高亮展示&…

C语言进阶之文件操作

一、什么是文件 磁盘上的文件是文件。 但是在程序设计中&#xff0c;我们一般谈的文件有两种&#xff1a;程序文件、数据文件&#xff08;从文件功能的角度来分类的&#xff09;。 1&#xff09;程序文件 包括源程序文件&#xff08;后缀为.c&#xff09;,目标文件&#xff…

【Springcloud篇】学习笔记七(十三章):Stream消息驱动

第十三章_Stream消息驱动 1.消息驱动Stream介绍 1.1Stream为什么被引入 常见MQ(消息中间件)&#xff1a; ActiveMQRabbitMQRocketMQKafka 有没有一种新的技术诞生&#xff0c;让我们不再关注具体MQ的细节&#xff0c;我们只需要用一种适配绑定的方式&#xff0c;自动的给我…

Codeforces Beta Round 8 C. Looking for Order 【状压DP】

C. Looking for Order 题意 平面直角坐标系上有 n n n 个物品&#xff0c;还有一个初始背包位置 ( x 0 , y 0 ) (x_0, y_0) (x0​,y0​)&#xff0c;从背包位置出发&#xff0c;每次最多携带两个物品回来背包&#xff0c;求把所有物品带回背包位置要走的最短距离&#xff0c…

[python]基于Ultra-Fast-Lane-Detection-v2车道线实时检测onnx部署

【论文地址】 https://arxiv.org/pdf/2206.07389.pdf 【框架地址】 https://github.com/cfzd/Ultra-Fast-Lane-Detection-v2 【框架介绍】 Ultra-Fast-Lane-Detection-v2&#xff08;UFL-D-v2&#xff09;算法是一种高效的车道线检测算法&#xff0c;它旨在快速准确地识别…

ElementUI Form:Form表单

ElementUI安装与使用指南 Form表单 点击下载learnelementuispringboot项目源码 效果图 el-form.vue&#xff08;Form表单&#xff09;页面效果图 项目里 el-form.vue代码 <script> export default {name: el_form,data() {var checkAge (rule, value, callback…

论文阅读-一种用于大规模分布式文件系统中基于深度强化学习的自适应元数据管理方案

名称&#xff1a; An Adaptive Metadata Management Scheme Based on Deep Reinforcement Learning for Large-Scale Distributed File Systems I. 引言 如今&#xff0c;大型集群文件系统的规模已达到PB甚至EB级别&#xff0c;由此产生的数据呈指数级增长。系统架构师不断设…