SpringBoot怎么引入mybatis与连接Mysql数据库
创建一个SpringBoot项目
其他不赘叙了,引入MyBaties、MySql依赖
创建mysql表CREATE TABLE sp_users(`id` INT PRIMARY KEY,
`username` VARCHAR(30),
`age` INT
);
刚开始一直出现这个错误,弄的我怀疑人生,结果是最后一行不能加'
,'
,物是人非。
张三"
,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依赖:
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项目运行更加顺畅!