当前位置: 首页 > article >正文

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 {
    @Autowired
    private UserService userService;

    @GetMapping("/list")
    public List<User> list() {
        return userService.list();
    }
}
public interface UserService {
    List<User> list();
}
@Service
public class UserServiceImpl implements UserService {
    @Autowired
    private UserMapper userMapper;
    @Override
    public 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 mapper
        PUBLIC "-//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 mapper
        PUBLIC "-//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.kler.cn/a/228715.html

相关文章:

  • IoTDB 常见问题 QA 第四期
  • 【服务器】Ubuntu22.04配置静态ip
  • 前端开发中的状态管理与网络请求封装
  • 嵌入式硬件篇---PID控制
  • 【Java实现导出Excel使用EasyExcel快速实现数据下载到Excel功能】
  • 架构思考与实践:从通用到场景的转变
  • leetcode(滑动窗口)3.无重复字符的最长字串(C++详细题解)DAY2
  • aspose-words基础功能演示
  • Qt PCL学习(一):环境搭建
  • flink写入es的参数解析
  • PyTorch识别验证码
  • 【云原生kubernetes系列】---亲和与反亲和
  • docker更换镜像源
  • Vue 实现动态路由
  • 恒创科技:服务器内存不足影响大吗?
  • MySQL存储引擎、事务、锁、日志
  • 异地办公必不可缺的远程控制软件,原理到底是什么?
  • docker 的常用命令
  • C#入门及进阶教程|C#基本语法(五):控制台应用程序与格式化输出
  • 乐意购项目前端开发 #6
  • WordPress主题YIA如何将首页的置顶小工具改为站长推荐小工具?
  • 【Linux】解决:为什么重复创建同一个【进程pid会变化,而ppid父进程id不变?】
  • CTFHUB SSRF POST小记
  • 2024最新版Sublime Text 4安装使用指南
  • VLM 系列——MoE-LLaVa——论文解读
  • 《Python 网络爬虫简易速速上手小册》第1章:Python 网络爬虫基础(2024 最新版)