MyBatis -- MyBatis简介、配置开发环境及简单使用教程

一、MyBatis简介

1. 什么是 MyBatis

MyBatis 是一款优秀的持久层框架,它支持自定义SQL、存储过程以及高级映射。 MyBatis 去除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。
MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。

简单来说 MyBatis 是更简单的完成程序和数据库交互的工具,也就是更简单的操作和读取数据库的工具。
MyBatis 中文官方文档

2. MyBatis 在整个框架中的定位

1.框架交互流程图:

3. MyBatis 的优点

对于后端开发来说,程序是由以下两个重要部分组成的:

  1. 后端程序
  2. 数据库

这两个部分要通讯,就要依靠数据库连接工具,比如之前学的 JDBC,还有我们今天将要介绍的 MyBatis, 由于 JDBC 操作起来太过于繁琐,MyBatis 将成为我们接下来开发中频繁使用的工具框架之一

回顾 JDBC 的操作过程:

  1. 创建数据库连接池 DataSource
  2. 通过 DataSource 获取数据库连接 Connection
  3. 编写要执行带 ? 占位符的 SQL 语句
  4. 通过 Connection 及 SQL 创建操作命令对象 Statement
  5. 替换占位符:指定要替换的数据库字段类型,占位符索引及要替换的值
  6. 使用 Statement 执行 SQL 语句
  7. 查询操作:返回结果集 ResultSet,更新操作:返回更新的数量
  8. 处理结果集
  9. 释放资源

从上述操作流程可以看出, 对于JDBC 来说,整个操作非常的繁琐,我们不但要拼接每一个参数,而且还要按照模板代码的方式,一步步的操作数据库,并且在每次操作完,还要手动关闭连接等。 而 MyBatis 可以帮助我们更方便、更快速的操作数据库。

二、MyBatis 的配置与简单使用

主要从两部分去了解 MyBatis

  • 配置 MyBatis 开发环境
  • 使用 MyBatis 模式和语法操作数据库

配置开发环境

1. 在 pom.xml 中添加框架支持

添加 MyBatis Framework、MySQL Driver 依赖:

2. 配置连接字符串和MyBatis

2.1 配置连接字符串(数据库的连接路径)

在 application.yml 中添加如下内容:

# 配置数据库的连接字符串
spring:
  datasource:
    url: jdbc:mysql://127.0.0.1:3306/mycnblog?characterEncoding=utf8
    username: root
    password: 123456
    driver-class-name: com.mysql.cj.jdbc.Driver

注意事项:

如果使⽤ mysql-connector-java 是 5.x 之前的使⽤的是“com.mysql.jdbc.Driver”,如果是⼤于 5.x使⽤的是“com.mysql.cj.jdbc.Driver”。

2.2 配置 MyBatis 中的 XML 路径

MyBatis 的 XML 中保存的是查询数据库的具体操作SQL,配置如下:

# 设置 Mybatis 的 xml 保存路径
mybatis:
  mapper-locations: classpath:mybatis/*Mapper.xml
  configuration: # 配置打印 MyBatis 执行的 SQL
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

使用 MyBatis 操作数据库

1. 添加 mapper 接口

数据持久层的接口定义:

@Mapper
public interface UserMapper {
    UserInfo login(@Param("username") String username);
}

2. 添加 mapper.xml 来实现接口

数据持久层的实现, mybatis 的固定 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.demo.mapper.UserMapper">

</mapper>

在此 mapper.xml 文件中写具体的 SQL:

<?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.personalblog.mapper.UserMapper">
    <select id="login" resultType="com.example.personalblog.Entity.UserInfo">
        select * from userinfo where username=#{username};
    </select>
</mapper>

以下是对以上 mapper.xml 文件中的标签的说明:

  • < mapper> 标签:需要指定 namespace 属性,表示实现了哪一个 mapper 接口,值为 mapper 接口的全限定名,包括全包名.类名。
  • < select> 查询标签:是用来执行数据库的查询操作的:
    • id:是和 Interface(接口)中定义的方法名称⼀样的,表示对接口的具体实现方法。
    • resultType:是返回的数据类型,也就是我们定义的实体类。

3. 在 service 层调用 mapper 层接口即可

@Service
public class UserService {
    @Autowired
    private UserMapper userMapper;

    public UserInfo login(String username){
        return userMapper.login(username);
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值