springboot(二) mybatis的使用(XML配置文件版本)

本文详细介绍了如何在SpringBoot项目中使用MyBatis的XML配置方式,包括引入mybatis-spring-boot-starter依赖,创建文件夹结构与对应类,配置application.properties,编写mybatis-config.xml,定义实体类,Mapper接口与XML文件,以及Controller实现。通过这一系列步骤,实现了SpringBoot集成MyBatis的完整流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

序言:

"orm框架的本质是简化编程中操作数据库的编码,发展到现在基本上就剩两家了,

一个是宣称可以不用写一句SQL的hibernate,

一个是可以灵活调试动态sql的mybatis,

两者各有特点,在企业级系统开发中可以根据需求灵活使用。

发现一个有趣的现象:传统企业大都喜欢使用hibernate,互联网行业通常使用mybatis。

hibernate特点就是所有的sql都用Java代码来生成,不用跳出程序去写(看)sql,有着编程的完整性,发展到最顶端就是spring data jpa这种模式。

mybatis初期使用比较麻烦,需要各种配置文件、实体类、dao层映射关联、还有一大推其它配置。当然mybatis也发现了这种弊端,初期开发了generator可以根据表结果自动生产实体类、配置文件和dao层代码,可以减轻一部分开发量;后期也进行了大量的优化可以使用注解了,自动管理dao层和配置文件等,发展到最顶端就是今天要讲的这种模式了,mybatis-spring-boot-starter就是springboot+mybatis可以完全注解不用配置文件,也可以简单配置轻松上手。"

 

本文主要讲使用mybatis的xml配置文件版本

1)修改build.gradle,引入mybatis-spring-boot-starter

buildscript {
    ext {
        springBootVersion = '2.1.1.RELEASE'
    }
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
    }
}

apply plugin: 'java'
apply plugin: 'eclipse-wtp'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'
apply plugin: 'war'

group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = 1.8

repositories {
    mavenLocal()
    maven { url "http://maven.aliyun.com/nexus/content/groups/public/" }
}

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'

dependencies {
    compile('org.springframework.boot:spring-boot-starter-web',
            "org.mybatis.spring.boot:mybatis-spring-boot-starter:1.1.1",
            "mysql:mysql-connector-java"
    )

    testImplementation('org.springframework.boot:spring-boot-starter-test')
}

2) 建文件夹层级和对应类

 

3)修改application.properties 文件

mybatis.type-aliases-package=com.example.helloword.entity
spring.datasource.driverClassName=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3309/testdb?useUnicode=true&characterEncoding=utf-8
spring.datasource.username=username
spring.datasource.password=password
mybatis.config-location=classpath:mybatis/mybatis-config.xml
mybatis.mapper-locations=classpath:mybatis/mapper/*.xml

4)mybatis-config.xml 文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <typeAliases>
        <typeAlias alias="Integer" type="java.lang.Integer" />
        <typeAlias alias="Long" type="java.lang.Long" />
        <typeAlias alias="HashMap" type="java.util.HashMap" />
        <typeAlias alias="LinkedHashMap" type="java.util.LinkedHashMap" />
        <typeAlias alias="ArrayList" type="java.util.ArrayList" />
        <typeAlias alias="LinkedList" type="java.util.LinkedList" />
    </typeAliases>
</configuration>

5) 新建DocDataEntity

(题外:Lombok了解下)

public class DocDataEntity implements Serializable {

    private Long id;

    private String root;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getRoot() {
        return root;
    }

    public void setRoot(String root) {
        this.root = root;
    }


}

6)DocDataMapper

@Mapper
public interface DocDataMapper {
    List<DocDataEntity> getAll();
}

7)DocDataMapper.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.example.helloword.mapper.DocDataMapper" >
    <resultMap id="BaseResultMap" type="com.example.helloword.entity.DocDataEntity" >
        <id column="id" property="id" jdbcType="BIGINT" />
        <result column="root" property="root" jdbcType="VARCHAR" />
    </resultMap>

    <sql id="Base_Column_List" >
        id,root
    </sql>

    <select id="getAll" resultMap="BaseResultMap"  >
        SELECT
        <include refid="Base_Column_List" />
        FROM doc_api
    </select>

</mapper>

 

8)DocDataController

@RestController
@RequestMapping(value = "/data")
public class DocDataController {

    @Autowired
    private DocDataMapper docDataMapper;

    @RequestMapping("/getDoc")
    public List<DocDataEntity> getUsers() {
        List<DocDataEntity> users = docDataMapper.getAll();
        return users;
    }
}

 

9)运行,http://localhost:8080/data/getDoc

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值