查看: 83|回复: 1

springboot整合mybatis详细教程

[复制链接]

5

主题

8

帖子

18

积分

新手上路

Rank: 1

积分
18
发表于 2023-7-20 19:21:24 | 显示全部楼层 |阅读模式

MyBatis是一款流行的开源持久层框架,它可以帮助开发人员简化数据库访问的编写。MyBatis 的核心思想是将 SQL 语句与 Java 代码分离,通过 XML 或注解的方式来配置 SQL 语句,并将结果映射为 Java 对象。使用 MyBatis,开发人员可以使用简单的 SQL 语句访问数据库,而无需关心 JDBC 的繁琐细节,同时也可以避免 SQL 注入等安全问题。MyBatis 还支持动态 SQL、存储过程、缓存等功能,可以满足不同的需求。MyBatis 的工作原理如下:

  • 读取 MyBatis 的配置文件和映射文件,创建 Configuration 对象。
  • 创建 SqlSessionFactory 对象,它是 MyBatis 的核心对象,用于创建 SqlSession。
  • 创建 SqlSession 对象,它是与数据库交互的主要对象,可以使用它来执行 SQL 语句、提交事务等。
  • 使用 Mapper 接口和对应的 XML 文件配置 SQL 语句,并将它们绑定到对应的 Mapper 方法上。
  • 调用 Mapper 接口中的方法,MyBatis 会根据配置的 SQL 语句生成对应的 JDBC 代码,并执行 SQL 语句。
  • 将查询结果映射为 Java 对象,返回给调用方。
在Spring Boot中使用MyBatis,需要执行以下步骤:
1、添加MyBatis和MyBatis-Spring依赖。在Maven项目中,可以通过在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.6</version>
</dependency>2.在Spring Boot的配置文件中,指定MyBatis的配置文件和mapper文件的位置。例如
mybatis.config-location=classpath:mybatis-config.xml
mybatis.mapper-locations=classpath:mapper/*.xml3.在Spring Boot的配置文件中,配置数据库连接池和数据源。例如:
spring.datasource.url=jdbc:mysql://localhost:3306/mydatabase
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver4.创建一个MyBatis的Mapper接口,并在其中定义SQL语句的方法。例如:
public interface UserMapper {
    @Select("SELECT * FROM user WHERE id = #{id}")
    User findById(@Param("id") Long id);
}5.在Spring Boot的启动类中,添加@MapperScan注解,指定Mapper接口所在的包。例如:
@SpringBootApplication
@MapperScan("com.example.demo.mapper")
public class DemoApplication {
    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}这样,就可以在Spring Boot中使用MyBatis了。可以通过在Service类中调用Mapper接口中的方法来实现对数据库的操作。例如:
@Service
public class UserService {
    @Autowired
    private UserMapper userMapper;

    public User findById(Long id) {
        return userMapper.findById(id);
    }
}
回复

使用道具 举报

3

主题

9

帖子

18

积分

新手上路

Rank: 1

积分
18
发表于 2025-3-23 14:36:10 | 显示全部楼层
高手云集 果断围观
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表