MyBatis系列-入门篇

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: MyBatis系列-入门篇

MyBatis入门

四:总结&升华

一:故事背景

在项目里已经应用了很久的MyBatis,但是没有系统的总结过MyBatis的相关知识。于是在一个寻常的下午,我决定,出一个系列的MyBatis知识博客。该系列博客主要分为分为以下四部分,每部分文章数量将会根据知识点的数量进行不同划分。


MyBatis入门

MyBatis配置

MyBatisXML映射器

动态SQL

本系列文章预计在三周内更新完成,有兴趣的朋友可以持续关注。


二:MyBatis 简介

2.1什么是MyBatis

MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。

MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。

MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。

2.1 MyBatis有什么好处

既然要学习这个框架,就一定要知道这个框架的好处,它能给我们带来什么!


简化数据库编程:MyBatis 通过提供简单的 API 和 SQL 映射文件,可以大大简化数据库编程。

提高数据库性能:MyBatis支持使用缓存和预编译语句等技术来提高数据库性能。

可以灵活地使用 SQL:MyBatis 可以直接使用 SQL语句,因此可以更灵活地处理复杂的查询需求。

易于集成:MyBatis 可以与 Spring、Spring Boot、Spring MVC等常见的 Java 框架集成,使得开发更加便捷。

易于维护:MyBatis提供了完善的日志和错误处理机制,方便开发人员进行调试和维护。同时,MyBatis 的 SQL

映射文件可以被独立出来,使得维护和修改更加方便。

三:MyBatis 入门

上文已经讲述了什么是MyBatis,并且讲述了MyBatis的优势,接下来就让我们分别以springBoot项目和普通maven项目为例,来一起配置我们的项目,用上这个框架吧。


3.1使用SpringBoot集成MyBatis

3.1.1 添加依赖

在 pom.xml 文件中添加 MyBatis 对应的依赖

<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>${mybatis-spring-boot-starter.version}</version>
</dependency>

3.1.2 配置数据源

在 application.properties 或 application.yml 文件中配置数据源相关的信息。

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

3.1.3 配置MyBatis

在 application.properties 或 application.yml 文件中添加 MyBatis 相关的配置项。

mybatis.mapper-locations=classpath:mapper/*.xml

这里配置的是对应的映射

3.1.4 创建Mapper接口和SQL映射文件

在 src/main/resources/mapper 目录下创建 Mapper 接口和 SQL 映射文件。例如:

public interface UserMapper {
    @Select("SELECT * FROM user WHERE id = #{id}")
    User findById(Long id);
}

编写对应的XML文件,用来执行sql语句

<mapper namespace="com.example.mapper.UserMapper">
    <select id="findById" resultType="com.example.entity.User">
        SELECT * FROM user WHERE id = #{id}
    </select>
</mapper>

3.1.5 注入Mapper接口

在需要使用Mapper的地方进行注入即可使用

@Service
public class UserService {
    @Autowired
    private UserMapper userMapper;
    public User findById(Long id) {
        return userMapper.findById(id);
    }
}

3.2 普通maven项目集成

3.2.1 添加依赖

添加依赖

在 pom.xml 文件中添加 MyBatis 和 JDBC 驱动程序的依赖。这里以 MySQL 数据库为例:

<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>3.5.6</version>
</dependency>
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.27</version>
</dependency>

3.2.2 配置数据源

在代码中配置数据源相关的信息,例如使用 DriverManager 类获取数据库连接。这里假设使用 MySQL 数据库。

String driver = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql://localhost:3306/test";
String username = "root";
String password = "root";
Connection connection = null;
try {
    Class.forName(driver);
    connection = DriverManager.getConnection(url, username, password);
} catch (ClassNotFoundException e) {
    e.printStackTrace();
} catch (SQLException e) {
    e.printStackTrace();
}

3.2.3 配置 MyBatis

创建 MyBatis 的 SqlSessionFactory 对象,将其配置信息和数据源传递给它。

String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

对应的 mybatis-config.xml 文件

<configuration>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/test"/>
                <property name="username" value="root"/>
                <property name="password" value="root"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="com/example/mapper/UserMapper.xml"/>
    </mappers>
</configuration>

3.2.4 创建 Mapper 接口和 SQL 映射文件

在 src/main/resources/com/example/mapper 目录下创建 Mapper 接口和 SQL 映射文件。例如:

public interface UserMapper {
    @Select("SELECT * FROM user WHERE id = #{id}")
    User findById(Long id);
}

SQL 映射文件

<mapper namespace="com.example.mapper.UserMapper">
    <select id="findById" resultType="com.example.entity.User">
        SELECT * FROM user WHERE id = #{id}
    </select>
</mapper>

3.2.5 注入 Mapper 接口

在需要使用 Mapper 接口的地方注入它。可以使用 MyBatis 提供的 MapperFactoryBean 类来创建 Mapper 接口的实例。

@Configuration
public class AppConfig {
    @Bean
    public DataSource dataSource() {
        // 配置数据源
    }
    @Bean
    public SqlSessionFactory sqlSessionFactory() throws Exception {
        String resource = "mybatis-config.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream, "development");
        return sqlSessionFactory;
    }
    @Bean
    public MapperFactoryBean<UserMapper> userMapper() throws Exception {
        MapperFactoryBean<UserMapper> factoryBean = new MapperFactoryBean<>(UserMapper.class);        f
        actoryBean.setSqlSessionFactory(sqlSessionFactory());
        return factoryBean;
    }
}

3.3.6 具体使用

在使用 Mapper 接口的地方注入它并使用即可。例如:

@Service
public class UserServiceImpl implements UserService {
    @Autowired
    private UserMapper userMapper;
    @Override
    public User findById(Long id) {
        return userMapper.findById(id);
    }
}

四:总结&升华

上文给出了如何使用普通的maven项目或者使用Springboot项目来进行MyBatis的使用。大家可以先按照上文所述,准备好对应的例子。以便之后的学习。

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
6月前
|
SQL Java 数据库连接
MyBatis 框架入门理论与实践
MyBatis 框架入门理论与实践
74 6
|
1月前
|
前端开发 Java Apache
Springboot整合shiro,带你学会shiro,入门级别教程,由浅入深,完整代码案例,各位项目想加这个模块的人也可以看这个,又或者不会mybatis-plus的也可以看这个
本文详细讲解了如何整合Apache Shiro与Spring Boot项目,包括数据库准备、项目配置、实体类、Mapper、Service、Controller的创建和配置,以及Shiro的配置和使用。
300 1
Springboot整合shiro,带你学会shiro,入门级别教程,由浅入深,完整代码案例,各位项目想加这个模块的人也可以看这个,又或者不会mybatis-plus的也可以看这个
|
5月前
|
XML Java 数据库连接
MyBatis入门——MyBatis XML配置文件(3)
MyBatis入门——MyBatis XML配置文件(3)
71 6
|
5月前
|
Java 关系型数据库 数据库连接
MyBatis入门(1)
MyBatis入门(1)
68 2
|
1月前
|
SQL Java 数据库连接
Mybatis入门(select标签)
这篇文章介绍了Mybatis中`select`标签的基本用法及其相关属性,并通过示例展示了如何配置和执行SQL查询语句。
41 0
Mybatis入门(select标签)
|
3月前
|
Java 数据库连接 Spring
后端框架入门超详细 三部曲 Spring 、SpringMVC、Mybatis、SSM框架整合案例 【爆肝整理五万字】
文章是关于Spring、SpringMVC、Mybatis三个后端框架的超详细入门教程,包括基础知识讲解、代码案例及SSM框架整合的实战应用,旨在帮助读者全面理解并掌握这些框架的使用。
后端框架入门超详细 三部曲 Spring 、SpringMVC、Mybatis、SSM框架整合案例 【爆肝整理五万字】
|
6月前
|
Java 数据库连接 测试技术
MyBatis-Plus入门
MyBatis-Plus入门
|
3月前
|
SQL Java 数据库连接
Spring Boot联手MyBatis,打造开发利器:从入门到精通,实战教程带你飞越编程高峰!
【8月更文挑战第29天】Spring Boot与MyBatis分别是Java快速开发和持久层框架的优秀代表。本文通过整合Spring Boot与MyBatis,展示了如何在项目中添加相关依赖、配置数据源及MyBatis,并通过实战示例介绍了实体类、Mapper接口及Controller的创建过程。通过本文,你将学会如何利用这两款工具提高开发效率,实现数据的增删查改等复杂操作,为实际项目开发提供有力支持。
177 0
|
5月前
|
Java 关系型数据库 数据库连接
技术好文共享:第一讲mybatis入门知识
技术好文共享:第一讲mybatis入门知识
35 6
|
5月前
|
Java 关系型数据库 MySQL
Mybatis入门之在基于Springboot的框架下拿到MySQL中数据
Mybatis入门之在基于Springboot的框架下拿到MySQL中数据
50 4