Spring Boot中整合MyBatis(基于xml方式&基于注解实现方式)

一、前提准备

在Spring Boot中整合MyBatis时,你需要导入JDBC(不需要手动添加)和Druid的相关依赖。

  1. JDBC依赖:在Spring Boot中整合MyBatis时,并不需要显式地添加JDBC的包依赖。这是因为,当你添加mybatis-spring-boot-starter依赖时,它已经包含了对JDBC的依赖。mybatis-spring-boot-starter是MyBatis官方提供的用于整合MyBatis和Spring Boot的依赖,它已经包含对JDBC的支持。这个依赖会自动引入适用于Spring Boot的JDBC依赖,因此你不需要手动添加

     SpringBoot整合JDBC--->SpringBoot整合JDBC_Maiko Star的博客-CSDN博客

  2. Druid依赖:Druid是一个强大的数据库连接池和监控工具,如果你希望使用Druid作为连接池,需要导入Druid的依赖。可以通过以下方式在pom.xml文件中添加Druid的依赖:


    com.alibaba
    druid-spring-boot-starter
    1.2.6

SpringBoot整合Druid ------> SpringBoot整合Druid_Maiko Star的博客-CSDN博客

二、导入MyBatis依赖 


    org.mybatis.spring.boot
    mybatis-spring-boot-starter
    2.1.4

三、配置数据库连接

application.propertiesapplication.yml中配置数据库连接信息,例如:

spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=root
spring.datasource.password=password
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

如果你使用了Druid,还需要加上Druid相关配置(spring.datasource.type=com.alibaba.druid.pool.DruidDataSource必须加上,其他配置可不加)


# Druid配置
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.druid.initial-size=5
spring.datasource.druid.min-idle=5
spring.datasource.druid.max-active=20
spring.datasource.druid.test-on-borrow=false
spring.datasource.druid.test-while-idle=true
spring.datasource.druid.time-between-eviction-runs-millis=60000
spring.datasource.druid.min-evictable-idle-time-millis=30000
spring.datasource.druid.pool-prepared-statements=true
spring.datasource.druid.max-pool-prepared-statement-per-connection-size=20
spring.datasource.druid.filters=stat,wall,log4j
spring.datasource.druid.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000

四、在resources下创建mapper文件夹,并在application.yml里配置路径

Spring Boot中整合MyBatis(基于xml方式&基于注解实现方式)_第1张图片


下面是基于xml方式: 

 五、在mapper文件下写相应的xml文件






    

六、创建mapper包和对应的接口,在接口加上@Mapper注解,或者在启动类加上@MapperScan(value = "com.dfrz.mapper")注解

在接口加上@Mapper注解:

Spring Boot中整合MyBatis(基于xml方式&基于注解实现方式)_第2张图片

在启动类加上@MapperScan(value = "com.dfrz.mapper")注解:

Spring Boot中整合MyBatis(基于xml方式&基于注解实现方式)_第3张图片

 七、测试

配置相应的controller进行测试:

Spring Boot中整合MyBatis(基于xml方式&基于注解实现方式)_第4张图片

Spring Boot中整合MyBatis(基于xml方式&基于注解实现方式)_第5张图片

 测试成功!!!

八、可以添加配置类,开启驼峰识别

package com.dfrz.config;

import org.mybatis.spring.boot.autoconfigure.ConfigurationCustomizer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
    public class MybatisConfig {

        @Bean
        public ConfigurationCustomizer configurationCustomizer(){
            return new ConfigurationCustomizer() {
                @Override
                public void customize(org.apache.ibatis.session.Configuration configuration) {
                    configuration.setMapUnderscoreToCamelCase(true);//驼峰
                    //configuration.setCacheEnabled(true);//缓存
                }
            };
        }

    }

下面是基于注解方式:

在MyBatis中,你可以使用注解来简化数据库操作的配置。通过注解,你可以在Mapper接口的方法上添加相应的注解来指定对应的SQL语句和参数映射关系,无需再编写XML Mapper文件。

  1. @Select:用于执行查询操作的注解,指定SQL查询语句。

  2. @Insert:用于执行插入操作的注解,指定SQL插入语句。

  3. @Update:用于执行更新操作的注解,指定SQL更新语句。

  4. @Delete:用于执行删除操作的注解,指定SQL删除语句。

 以下是使用注解进行数据库操作的示例:

public interface UserMapper {

    @Select("SELECT * FROM users")
    List getAllUsers();

    @Select("SELECT * FROM users WHERE id = #{id}")
    User getUserById(Long id);

    @Insert("INSERT INTO users(name, email) VALUES(#{name}, #{email})")
    @Options(useGeneratedKeys = true, keyProperty = "id") //用于在插入操作时生成主键并将生成的主键赋值给实体类的属性。
    int insertUser(User user);

    @Update("UPDATE users SET name = #{name}, email = #{email} WHERE id = #{id}")
    int updateUser(User user);

    @Delete("DELETE FROM users WHERE id = #{id}")
    int deleteUser(Long id);

}

你可能感兴趣的:(SpringBoot,spring,boot,mybatis,java)