初识Mybatis框架入门保姆级教程

1、什么是框架?

        在软件开发中,框架是一组预先构建的工具、库和约定,提供构建和开发软件应用程序的结构化方法。 它是开发人员可以用来简化开发流程并更有效地创建应用程序的基础。 框架旨在解决软件开发中的常见挑战和任务,提供可重用的标准化结构。通过使用框架,开发人员可以加快开发过程、保持代码质量并遵守行业最佳实践。

不同编程语言的流行框架示例包括:

1. Node.js(JavaScript)
       Express.js:最小且灵活的Node.js Web 应用程序框架,为 Web 和移动应用程序提供一组强大的功能。

2. Python

      Spring框架:是一个开源框架,其主要优势之一就是分层架构。、

      Django:一个高级Python Web框架,鼓励快速开发和简洁、务实的设计。

      Flask:一个轻量级、模块化的 Python Web 框架,为开发人员提供了选择组件的灵活性。

3. Java
      Spring框架:是一个开源框架,其主要优势之一就是分层架构。

      Spring MVC框架: Spring MVC采松耦合、可插拔的组件结构,具有出色的可适配性。

      MyBatis框架:2010年有Apache Software Foundation迁移到了Google Code,并改名为MyBatis.它是一个优秀的持久性层框架,可以在实体类和SQL语句之间建立映射关系。

     Spring Boot框架:它集成了大量的第三方类库(如Jackson、JDBC、Redis等),使用户只需少量配置就能完成相应功能。

      Spring Cloud框架:是一系列有序集合,为开发人员构建服务框架提供了完整的解决方案。

4. PHP
       Laravel框架: 一个 PHP Web框架,旨在简化身份验证、路由和缓存等开发任务。

5. Go(Go语言)
      Gin: 用Go编写的Web 框架,以其简约且快速的构建Web应用程序的方法而闻名。

本篇文章介绍MyBatis框架的初级环境搭建

2、MyBatis工原理

1. 配置

     MyBatis 以一个配置文件(通常名为“mybatis-config.xml”)启动。 该文件包含 MyBatis 框架的设置和属性。

2. SqlSessionFactory

     SqlSessionFactory`是一个生成SqlSession实例的工厂类。它是根据配置文件创建的 SqlSessionFactory一个重量级且线程安全的对象,因此通常在应用程序启动时创建一次。

3. Sql会话

      SqlSession 是一个接口,提供执行 SQL 语句的方法,它代表一个单线程、短暂的对象,为执行数据库操作而创建。发人员可以使用SqlSession通过执行SQL语句、提交或回滚事务以及管理持久化上下文来与数据库交互。

4. 映射器接口

      MyBatis 使用映射器接口来定义将要执行的 SQL 语句,映射器接口包含映射到 SQL 查询或存储过程的方法签名。

5. 映射器 XML 文件

       实际的 SQL 查询或语句在与映射器接口关联的 XML 文件中定义,这些 XML 文件包含 SQL 语句以及 Java 对象和数据库列之间的映射。

6. 数据对象(POJO)

      数据对象,通常是普通旧式 Java 对象 (POJO),表示应用程序中使用的实体或数据结构。 MyBatis将SQL 查询的结果映射到这些 Java 对象。

7. 类型处理程序

      MyBatis使用类型处理程序将 Java 类型映射到 SQL 类型,反之亦然,类型处理程序负责在 Java 对象和数据库列之间转换数据。

8. 插件拦截器

       MyBatis 支持可用于扩展或修改其行为的插件和拦截器,开发人员可以创建自定义拦截器来添加缓存、日志记录等功能。

9. 执行

       当在映射器接口上调用方法时,MyBatis 使用映射器 XML 文件中的信息将其转换为 SQL 查询,然后使用SqlSession执行 SQL 查询。

10. 结果映射

          MyBatis 将 SQL 查询的结果映射到映射器接口中指定的结果类型,这涉及将数据库结果集转换为Java对象。

11. 交易管理

         MyBatis提供管理事务的工具,开发人员可以在 SqlSession 上使commit和rollback方法手动控制事务,或者MyBatis 可以根据配置自动管理事务。

        通过遵循这个过程,MyBatis 简化了数据库访问代码,将 SQL 语句与 Java 代码分开,并提供了一种灵活的、可定制的方法来在 Java 应用程序中使用数据库。

3、具体操作

  1. 创建工程

    启动IntelliJ IDEA开发工具,选择工具栏中的“File”–>“New” –>“Project” –>“Project” 选项,弹出“New Project”对话框

选择左菜单对话框中“maven”选项,然后单机“Next”按钮,弹出项目名称对话框

点击“Finish”完成项目创建,项目结构下图所示

2.引入相关依赖

由于本项目需要连接数据库并对程序进行测试,所以需要在项目的pom.xml文件中导入MySQL驱动包,JUnir测试包、MyBatis的核心包等相关依赖,具体代码如下

<dependencies>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.2</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.13</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
    <build>
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
            </resource>

        </resources>
    </build>

3.创建数据库并添加数据

在MySQL中创建一个名称为mybatis的数据库

create database mybatis;

在mybatis数据库中创建students表并添加数据

use mybatis;
INSERT INTO students(id,name,age)
 VALUES(NULL,"李四",20),
 VALUES(NULL,"吴军",20);

4.创建数据库连接信息配置文件

在项目的src/main/resources目录下创建连接数据库的配置文件,这里将其命名为db.properties

在该文件中配置数据库连接参数。具体内容如下

mysql.driver=com.mysql.cj.jdbc.Driver
mysql.url=jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC&\
  characterEncoding=utf8&useUnicode=true&useSSL=false
mysql.username=root
mysql.password=root

5.创建Mybatis的核心配置文件

在项目的src/main/resources目录下创建Mybatis核心配置文件mybatis-config.xml,该文件主要用于项目的环境配置,如数据库的相关配置等

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <properties resource="db.properties"></properties>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="${mysql.driver}"/>
                <property name="url" value="${mysql.url}"/>
                <property name="username" value="${mysql.username}"/>
                <property name="password" value="${mysql.password}"/>
            </dataSource>
        </environment>
    </environments>
    <!--每一个Mapper.XML都需要在Mybatis核心配置文件中注册!-->
    <mappers>
        <mapper resource="StudentMapper.xml"/>
    </mappers>
</configuration>

6.创建POJO实体

在项目的src/main/java目录下创建pojo包,在pojo包下面创建Student类

package pojo;

public class Student {
    private Integer id;
    private String name;
    private Integer age;

    public Integer getId() {
        return id;
    }

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

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }
}

7.创建映射文件StudentMapper.xml

在项目的src/main/resources目录下创建映射文件StudentMapper.xml,该文件主要用于配置SQL语句与Java对象之间的映射

<?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="pojo.Student" >
    <select id="findById" parameterType="int" resultType="pojo.Student">
        select * from  students where  id=#{id}
    </select>

</mapper>

8.编写测试类

在项目的src/test/java目录下创建StudentTest类

import pojo.Student;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;

import java.io.Reader;
import java.util.Scanner;

public class StudentTest {

    @Test
    public  void studentFindByIdTest(){
        String resources="mybatis-config.xml";
        Reader reader=null;
        try {
            reader= Resources.getResourceAsReader(resources);
        } catch (Exception e) {
            e.printStackTrace();
        }
        SqlSessionFactory sqlMapper=new SqlSessionFactoryBuilder().build(reader);
        SqlSession session=sqlMapper.openSession();
        Student student=session.selectOne("findById",1);
        System.out.println(student.getName());
        session.close();
    }
}

到此所有的文件创建完成如下所示

9.运行

在StudentTest类下点击右键,运行Run 'studentFindByIdTest()'

运行结果

小结

MyBatis框架在Java Web开发中具有重要意义,特别是在企业级应用中得到广泛应用。它是一个优秀的基于Java的持久层框架,内部封装了JDBC,使开发者只需要关注SQL语句本身,而不需要花费精力去处理加载驱动、创建连接、创建statement等繁杂的过程。它提高了开发效率,降低了耦合性,简化了开发流程,并且提高了系统的可维护性。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值