SpringBoot怎么引入mybatis与连接Mysql数据库

创建一个SpringBoot项目

其他不赘叙了,引入MyBaties、MySql依赖

创建mysql表CREATE TABLE sp_users(
`id` INT PRIMARY KEY,
`username` VARCHAR(30),
`age` INT
);

刚开始一直出现这个错误,弄的我怀疑人生,结果是最后一行不能加'
,'
,物是人非。

SpringBoot如何引入Mybatis并连接Mysql数据库

INSERT INTO sp_users(id,`username`,`age`) VALUES(1,"
张三"
,11);

INSERT INTO sp_users(id,`username`,`age`) VALUES(2,"
李四"
,21);

INSERT INTO sp_users(id,`username`,`age`) VALUES(3,"
游坦之"
,800);

编写实体类

因为引入了Lombok,所以直接用了

package com.you.domain;

import lombok.AllArgsConstructor;

import lombok.Data;

import lombok.NoArgsConstructor;

import lombok.ToString;

@Data
@NoArgsConstructor
@AllArgsConstructor
@ToString
public class user {
private int id;

private String username;

private int age;

}

配置application.yaml

#datasourcespring: datasource: url: jdbc:mysql:///springboot?serverTimezone=UTC username: root password: 你的密码 driver-class-name: com.mysql.cj.jdbc.Driver

配置Mapper

方式一,创建UserMapper接口

package com.you.mapper;

import com.you.domain.User;

import org.apache.ibatis.annotations.Mapper;

import org.apache.ibatis.annotations.Select;

import org.springframework.stereotype.Repository;

import java.util.List;

@Mapper
@Repository
public interface UserMapper {
@Select("
select * from sp_users"
)
public List<
User>
findAll();

}

配置测试类

package com.you.boot;

import com.you.boot.domain.User;

import com.you.boot.mapper.UserMapper;

import org.junit.jupiter.api.Test;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.boot.test.context.SpringBootTest;

import java.util.List;

@SpringBootTest
class BootMybatis03ApplicationTests {
@Autowired
private UserMapper userMapper;

@Test
public void testFindAll()
{
List<
User>
list = userMapper.findAll();

System.out.println(list);

}
}

效果图

方法二 XML文件配置

编写xml文件,namespace一定要复制全路径,Copy/Copy Reference

<
?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.you.boot.mapper.UserXmlMapper"
>

<
select id="
findAll"
resultType="
user"
>

select * from sp_users
<
/select>

<
/mapper>

编写UserXmlMapper接口,@Repository的作用是解决在测试类内爆红,虽然爆红不影响程序的运行。

package com.you.boot.mapper;

import com.you.boot.domain.User;

import org.apache.ibatis.annotations.Mapper;

import org.springframework.stereotype.Repository;

import java.util.List;

@Mapper
@Repository
public interface UserXmlMapper {
public List<
User>
findAll();

}

配置yaml,*Mapper值得是所有后缀是Mapper的xml文件

mybatis: mapper-locations: classpath:mapper/*Mapper.xml type-aliases-package: com.you.boot.domain

编写测试类

package com.you.boot;

import com.you.boot.domain.User;

import com.you.boot.mapper.UserMapper;

import com.you.boot.mapper.UserXmlMapper;

import org.junit.jupiter.api.Test;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.boot.test.context.SpringBootTest;

import java.util.List;

@SpringBootTest
class BootMybatis03ApplicationTests {
@Autowired
private UserXmlMapper userXmlMapper;

@Test
public void testFindAll2()
{
List<
User>
list = userXmlMapper.findAll();

System.out.println(list);

}
}

效果



开发SpringBoot应用程序经常需要访问数据库。MyBatis是一个优秀的Java持久化框架,支持定制化SQL、存储过程以及高级映射。本文旨在阐述使用SpringBoot框架引入MyBatis并连接Mysql数据库的步骤及细节。
步骤一:引入MyBatis及Mysql依赖库
在Maven或Gradle中添加MyBatis和Mysql数据库的依赖库;如果您的项目没有使用这些依赖库,请在pom.xml或build.gradle文件中添加以下代码:
Maven依赖:


org.mybatis.spring.boot
mybatis-spring-boot-starter
2.0.1



mysql
mysql-connector-java
8.0.21

Gradle依赖:
// Mybatis
implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.0.1'
// MySQL
implementation 'mysql:mysql-connector-java:8.0.21'
步骤二:配置Mysql数据库连接信息
在application.properties或application.yml中添加以下配置:
application.properties
# 添加MyBatis信息
mybatis.mapper-locations=classpath*:mapper/*.xml
mybatis.type-aliases-package=com.example.demo.entity
# 添加数据库信息
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8
spring.datasource.username=root
spring.datasource.password=123456
application.yml
mybatis:
mapper-locations: classpath*:mapper/*.xml
type-aliases-package: com.example.demo.entity
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8
username: root
password: 123456
步骤三:配置MyBatis的Mapper文件位置
MyBatis的Mapper文件用于存放SQL语句,我们需要在application.properties或application.yml中添加MyBatis的Mapper文件位置信息:
mybatis.mapper-locations=classpath*:mapper/*.xml
步骤四:编写Mapper接口及其对应的XML文件
在src/main/resources/mapper目录中创建Mapper.xml文件以及对应的Mapper接口类,例如:
UserMapper.xml







UserMapper.java
public interface UserMapper {

User getUser(Long id);

}
步骤五:在SpringBoot中使用MyBatis
在SpringBoot应用程序中,我们可以直接注入Mapper接口并调用其中的方法。例如:
@Autowired
private UserMapper userMapper;
public User getUser(Long id) {
return userMapper.getUser(id);
}
在使用MyBatis时可能会遇到一些问题,例如SQL为空、无法映射实体类等。面对这些问题,您可以通过查找问题根源并进行适当的调整来解决问题。
总结
本文详细介绍了如何使用SpringBoot引入MyBatis并连接Mysql数据库。我们首先需要添加MyBatis和Mysql的依赖库,然后配置Mysql数据库连接信息,编写MyBatis的Mapper接口和Mapper.xml文件,并在SpringBoot中直接注入Mapper接口进行调用。
如果您在使用MyBatis时遇到了问题,请不要慌张,耐心查找问题根源并进行适当的调整。相信本文能帮助您解决使用MyBatis的困惑,让您的SpringBoot项目运行更加顺畅!