【java web篇】MyBatis简介与快速入门

个人简介

  • 作者简介:大家好,我是阿牛,全栈领域优质创作者。
  • 个人主页:馆主阿牛
  • 支持我:点赞+收藏⭐️+留言
  • 系列专栏:java 小白到高手的蜕变
  • 格言:要成为光,因为有怕黑的人!
    请添加图片描述

目录

    • 个人简介
  • 前言
    • 什么是 MyBatis?
    • JDBC缺点
    • MyBatis特点
    • MyBatis快速入们
  • 结语

前言

学到web开发,为了简化数据库的一系列操作,orm框架是必不可少的,看过我博客的都知道我会Django和Flask,在总结他们的时候,也提到了python中Django和Flask中的一些orm框架,那么这节我将介绍java web中的orm框架MyBatis,简化我们的JDBC开发!(简单来说MyBatis是半orm框架,因为sql还要自己写)

什么是 MyBatis?

MyBatis本是apache的一个开源项目iBatis,2010年这个项目由apache software foundation迁移到了google code,并且改名为MyBatis。2013年11月迁移到Github。
iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAOs)。
当前,最新版本是MyBatis 3.5.11,其发布时间是2022年09月18日。

MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Ordinary Java Object,普通的 Java对象)映射成数据库中的记录。

JDBC缺点

  • 硬编码:注册驱动、获取连接以及sql语句都写在代码中,维护不方便!
  • 操作繁琐:要手动设置sql的操作参数,手动封装结果集!

MyBatis特点

  • 简单易学:本身就很小且简单。没有任何第三方依赖,最简单安装只要两个jar文件+配置几个sql映射文件。易于学习,易于使用。通过文档和源代码,可以比较完全的掌握它的设计思路和实现。
  • 灵活:mybatis不会对应用程序或者数据库的现有设计强加任何影响。 sql写在xml里,便于统一管理和优化。通过sql语句可以满足操作数据库的所有需求。
  • 解除sql与程序代码的耦合:通过提供DAO层,将业务逻辑和数据访问逻辑分离,使系统的设计更清晰,更易维护,更易单元测试。sql和代码的分离,提高了可维护性。
  • 提供映射标签,支持对象与数据库的ORM字段关系映射。
  • 提供对象关系映射标签,支持对象关系组建维护。
  • 提供xml标签,支持编写动态sql。

MyBatis快速入们

查询表中所有数据!

主要步骤:

  1. 创建一个案例表,向其中添加数据!
  2. 创建模块,导入坐标!
  3. 编写MyBatis核心配置文件–>替换连接信息解决硬编码问题
  4. 编写SQL映射文件–>统一管理sql语句,解决硬编码问题
  5. 编码
    1.定义POJO类
    2.加载核心配置文件,获取SqlSessionFactory对象
    3.获取SqlSession对象,执行SQL语句
    4.释放资源

下面我们就按照步来吧:

1.创建一个案例表,向其中添加数据!

CREATE TABLE member (
  id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  name VARCHAR(50),
  gender ENUM('男', '女'),
  age INT
);

-- 插入数据
INSERT INTO member (name, gender, age)
VALUES
('张三', '男', 28),
('李四', '女', 22),
('王五', '男', 30),
('赵六', '女', 25);

【java web篇】MyBatis简介与快速入门_第1张图片
2. 创建模块,导入坐标!

我们创建一个maven项目来引入mybatis的jar包!(不用Maven,则需要将MyBatis的jar包加入类路径)

【java web篇】MyBatis简介与快速入门_第2张图片
关于MyBatis的jar包引入信息可以去MyBatis的官网查看!

<dependency>
   <groupId>org.mybatisgroupId>
   <artifactId>mybatisartifactId>
   <version>3.5.11version>
dependency>

当然,我们要连接数据库,mysql的驱动也少不了!

<dependency>
    <groupId>mysqlgroupId>
    <artifactId>mysql-connector-javaartifactId>
    <version>8.0.31version>
dependency>

3. 编写MyBatis核心配置文件–>替换连接信息解决硬编码问题

接下来就要创建一个xml文件作为MyBatis的核心配置文件了!
【java web篇】MyBatis简介与快速入门_第3张图片
关于这个配置文件怎么写,按照MyBatis指定的复制,然后替换信息即可!

【java web篇】MyBatis简介与快速入门_第4张图片

4. 编写SQL映射文件–>统一管理sql语句,解决硬编码问题

接下来就要编写sql映射文件了!MyBatis依旧有示例!

【java web篇】MyBatis简介与快速入门_第5张图片
同时要在MyBatis核心配置文件中将SQL映射文件加载进来!

【java web篇】MyBatis简介与快速入门_第6张图片

5. 编码

我们要先创建一个Member类(POJO)!

完全与开始创建的数据库表对应!


就是一个java Bean(快捷键生成get和set方法以及重写toString)

然后编写测试类:

package com.aniu;

import com.aniu.pojo.Member;
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 java.io.IOException;
import java.io.InputStream;
import java.util.List;

/**
 * @Author:Aniu
 * @Date:2023/3/25 22:04
 * @description MyBatis快速入们
 */
public class MyBatisDemo {
    public static void main(String[] args) throws IOException {
        //1. 加载mybatis的核心配置文件,获取 SqlSessionFactory
        String resource = "mybatis-config.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

        //2. 获取SqlSession对象,用它来执行sql
        SqlSession sqlSession = sqlSessionFactory.openSession();
        //3. 执行sql (只有这块需要手写,其他步骤直接复制)
        List<Member> members = sqlSession.selectList("test.selectAll"); // 命名空间+id,这就是命名空间的作用:便于区分

        System.out.println(members);

        //4. 释放资源
        sqlSession.close();
    }
}

在这里插入图片描述
可以看到查询成功!

结语

本节只是简单的总结了MyBatis的使用,后面还有很多知识点,关注本专栏,下节再看!

如果你觉得博主写的还不错的话,可以关注一下当前专栏,博主会更完这个系列的哦!也欢迎订阅博主的其他好的专栏。

系列专栏
flask框架入门到实战
软磨 css
硬泡 javascript

你可能感兴趣的:(java,小白到高手的蜕变,java,mybatis,开发语言)