SpringBoot 3.1.7 集成Mybatis

一、介绍

Mybatis的中文官网并没找到与SpringBoot最新的集成的教程,有的都是老式的配置方法,所以记录一下怎么我是怎么集成SpringBoot 3.1.7 集成Mybatis 的方法

有条件的可以打开源网站 https://github.com/mybatis/spring-boot-starter

没有条件的我收藏了一个国内镜像 mybatis-spring-boot-starter: Mybatis官方spring-boot-starter

二、集成步骤

1. 官网生成Mybatis工程

官方介绍了,SpringBoot 3.0-3.2 可以使用最新的Mybatis集成方式,并且可以通过Spring Initializr方式生成 

打开后,我们可以进入到这个页面,点击GENERATE生成

下载得到一个压缩包,打开压缩包,我们查看maven依赖文件pom.xml 可以看到

		<dependency>
			<groupId>org.mybatis.spring.boot</groupId>
			<artifactId>mybatis-spring-boot-starter</artifactId>
			<version>3.0.3</version>
		</dependency>

这个生成的SpringBoot工程,我们可以直接使用,也可以只把这个依赖加入到我们自己已有的工程,我这边已经有了一个工程了,所以只需要把上面的依赖添加到我自己的项目即可

2. 添加数据库连接池 druid

从github官网可以得知,SpringBoot2.x 与 druid 的集成方式

参考:https://github.com/alibaba/druid/wiki/%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98

参考:https://github.com/alibaba/druid/tree/master/druid-spring-boot-starter

不过这里我试了,即使使用最新的版本 1.2.21,启动依然会报错

但是看到官网上面了一个druid-spring-boot-3-starter 包,目前还没有写描述,但是我们可以替换一下artifactId,启动之后没有再报错了

		<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>druid-spring-boot-3-starter</artifactId>
			<version>1.2.20</version>
		</dependency>

另外Druid 引入需要添加配置到application.yml,下面的配置你可以安装你的项目改造数据库的连接参数,配置详情参考:https://github.com/alibaba/druid/tree/master/druid-spring-boot-starter

spring:
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    driverClassName: com.mysql.jdbc.Driver
    druid:
      url: jdbc:mysql://192.168.31.111:3306/goods_center_db?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8
      username: root
      password: 123456
      initial-size: 10
      max-active: 100
      min-idle: 10
      max-wait: 60000
      pool-prepared-statements: true
      max-pool-prepared-statement-per-connection-size: 20
      time-between-eviction-runs-millis: 60000
      min-evictable-idle-time-millis: 300000
      #validation-query: SELECT 1 FROM DUAL
      test-while-idle: true
      test-on-borrow: false
      test-on-return: false
      stat-view-servlet:
        enabled: true
        url-pattern: /druid/*
        #login-username: admin
        #login-password: admin
      filter:
        stat:
          log-slow-sql: true
          slow-sql-millis: 1000
          merge-sql: false
        wall:
          config:
            multi-statement-allow: true

3. 引入mysql-connector-java驱动包

可以在maven官方网站中搜索MySQL,可以找到两个Java-MySQL驱动包,这两个我都试过了,都能正常的连接MySQL,所以随便用那个都行,我看了看下面这个用的人多7418个使用

<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.28</version>
</dependency>

注意:这里有个要注意的地方,我安装的MySQL版本是5.7.44 ,我以为驱动应该也要找5.xx.xx的版本,实际上我试了一下,5.1.xx版本会报错,换成8.0.xx就可以了,具体原因尚不知晓,谁知道的可以在评论区告诉我一下,万分感谢!!!

三、配置Mybatis

架包依赖完成了,还需要对Mybatis进行配置才能使用

配置详情:mybatis-spring-boot-autoconfigure – Introduction

这里我用的配置,指定文件mapper的位置

mybatis:
  mapper-locations: classpath:mapper/**/*Mapper.xml

在Mybatis官网的入门案例中有一个mapper.xml 样例

参考地址:https://mybatis.net.cn/getting-started.html

安装官方的样例,写出了我的第一个GoodInfoMapper.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">
<mapper namespace="com.ychen.goodscenter.mapper.GoodsInfoMapper">

    <select id="queryGoodsInfoById"  resultType="com.ychen.goodscenter.entity.GoodsInfoEntity">
        select * from goods_info_tab where id = #{id}
    </select>
</mapper>

在创建一个mapper.java 文件GoodsInfoMapper.java

package com.ychen.goodscenter.mapper;

import com.ychen.goodscenter.entity.GoodsInfoEntity;
import org.apache.ibatis.annotations.Mapper;

@Mapper
public interface GoodsInfoMapper {
    GoodsInfoEntity queryGoodsInfoById(Long id);
}
GoodsInfoEntity
package com.ychen.goodscenter.entity;

import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;

@Data
public class GoodsInfoEntity {
    private Long id;
    private String goodsName;
    private Long sellerId;
    private Integer stock;
    private Integer sold;
    private BigDecimal price;
    private Date createTime;
    private Date updateTime;
}

四、准备数据库

CREATE TABLE goods_info_tab (
    `id`  BIGINT(20) NOT NULL,
    `goods_name` VARCHAR(30) NOT NULL COMMENT '商品名称',
    `seller_id`  BIGINT(20) NOT NULL COMMENT '卖家ID',
    `stock` int(11) NOT NULL COMMENT '库存',
    `sold` int(11) NOT NULL COMMENT '已售数量',
    `price` DECIMAL(20,5) NOT NULL COMMENT '单价',
    `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT '商品表';

准备好数据库,就可以测试了

  • 24
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 添加MyBatisMyBatis-SpringBoot-Starter依赖 在pom.xml文件中添加以下依赖: ``` <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.2.0</version> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.5</version> </dependency> ``` 2. 配置数据源 在application.properties或application.yml中配置数据源信息,如: ``` spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.url=jdbc:mysql://localhost:3306/mydb?useSSL=false&useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8 spring.datasource.username=root spring.datasource.password=root ``` 3. 创建实体类和Mapper接口 创建实体类和对应的Mapper接口,如: ``` public class User { private Long id; private String username; private String password; // getter and setter } public interface UserMapper { List<User> findAll(); User findById(Long id); void insert(User user); void update(User user); void delete(Long id); } ``` 4. 创建Mapper XML文件 在resources目录下创建Mapper XML文件,定义SQL语句,如: ``` <?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.example.mapper.UserMapper"> <resultMap id="BaseResultMap" type="com.example.model.User"> <id column="id" property="id" /> <result column="username" property="username" /> <result column="password" property="password" /> </resultMap> <select id="findAll" resultMap="BaseResultMap"> SELECT * FROM user </select> <select id="findById" resultMap="BaseResultMap"> SELECT * FROM user WHERE id=#{id} </select> <insert id="insert"> INSERT INTO user (username, password) VALUES (#{username}, #{password}) </insert> <update id="update"> UPDATE user SET username=#{username}, password=#{password} WHERE id=#{id} </update> <delete id="delete"> DELETE FROM user WHERE id=#{id} </delete> </mapper> ``` 5. 注册Mapper 在Spring Boot中,可以使用@MapperScan注解扫描Mapper接口,并自动注册到Spring容器中,如: ``` @SpringBootApplication @MapperScan("com.example.mapper") public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } } ``` 6. 调用Mapper方法 在Service或Controller中注入Mapper,并调用Mapper方法,如: ``` @Service public class UserService { @Autowired private UserMapper userMapper; public List<User> findAll() { return userMapper.findAll(); } public User findById(Long id) { return userMapper.findById(id); } public void insert(User user) { userMapper.insert(user); } public void update(User user) { userMapper.update(user); } public void delete(Long id) { userMapper.delete(id); } } ``` 以上就是使用Spring Boot集成MyBatis实现增删改查的步骤。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值