mybatis系列: 简介以及使用
阅读原文时间:2023年08月16日阅读:4

目录

一、简介

  • MyBatis本质上就是对JDBC的封装,通过MyBatis完成CRUD。
  • MyBatis在三层架构中负责持久层的,属于持久层框架。
  • 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代码可以看到它的包结构中包含:ibatis
  • * MyBatis属于半自动化ORM框架。
    • Hibernate属于全自动化的ORM框架。
  • MyBatis框架特点:
  • * 支持定制化 SQL、存储过程、基本映射以及高级映射
    • 避免了几乎所有的 JDBC 代码中手动设置参数以及获取结果集
    • 支持XML开发,也支持注解式开发。【为了保证sql语句的灵活,所以mybatis大部分是采用XML方式开发。】
    • 将接口和 Java 的 POJOs(Plain Ordinary Java Object,简单普通的Java对象)映射成数据库中的记录
    • 体积小好学:两个jar包,两个XML配置文件。
    • 完全做到sql解耦合。
    • 提供了基本映射标签。
    • 提供了高级映射标签。
    • 提供了XML标签,支持动态SQL的编写。

二、简单使用

创建数据库和表

create database mybatis;
use mybatis;
create table  t_car(
    id bigint primary key auto_increment comment '标识号',
    car_num varchar(200) comment '汽车编号',
    brand varchar(200) comment '品牌',
    guide_price decimal(18,2) comment '厂家指导价',
    produce_time char(10) comment  '生产时间',
    car_type varchar(20) comment '汽车类型'
);

指定打包方式以及编码

    <groupId>com.mcode</groupId>
    <artifactId>mybatis-001-introduction</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>mybatis-001-introduction</name>
    <!-- FIXME change it to the project's website -->
    <url>http://www.example.com</url>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>17</maven.compiler.source>
        <maven.compiler.target>17</maven.compiler.target>
    </properties>

引入依赖

    <dependencies>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.13</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.32</version>
        </dependency>
    </dependencies>
  • 步骤3:在resources根目录下新建mybatis-config.xml配置文件(可以参考mybatis手册拷贝)



注意1:mybatis核心配置文件的文件名不一定是mybatis-config.xml,可以是其它名字。

注意2:mybatis核心配置文件存放的位置也可以随意。这里选择放在resources根下,相当于放到了类的根路径下。

  • 步骤4:在resources根目录下新建CarMapper.xml配置文件(可以参考mybatis手册拷贝)



    insert into t_car(id,car_num,brand,guide_price,produce_time,car_type) values(null,'102','本田雅阁','20.2','2020-04-05','油车')

注意1:sql语句最后结尾可以不写“;”

注意2:CarMapper.xml文件的名字不是固定的。可以使用其它名字。

注意3:CarMapper.xml文件的位置也是随意的。这里选择放在resources根下,相当于放到了类的根路径下。

注意4:将CarMapper.xml文件路径配置到mybatis-config.xml:

<mapper resource="CarMapper.xml"/>
  • 步骤5:编写MyBatisIntroductionTest代码

    package com.mcode.mybatis;

    import org.apache.ibatis.session.SqlSession;
    import org.apache.ibatis.session.SqlSessionFactory;
    import org.apache.ibatis.session.SqlSessionFactoryBuilder;

    import java.io.InputStream;

    /**

    • ClassName: MyBatisIntroductionTest
    • Package: com.mcode.mybatis
    • Description:
      *
    • @Author: robin
    • @Create: 2023/7/26 - 11:21 PM
    • @Version: v1.0
      */
      public class MyBatisIntroductionTest {
      public static void main(String[] args) {
      // 1. 创建SqlSessionFactoryBuilder对象
      SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
      // 2. 创建SqlSessionFactory对象
      InputStream inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("mybatis-config.xml");
      SqlSessionFactory factory = builder.build(inputStream);
      // 3. 创建SqlSession对象
      SqlSession sqlSession = factory.openSession();
      // 4. 执行sql
      int count = sqlSession.insert("insertCar");
      System.out.println("插入几条数据:"+count);
      // 5. 提交(mybatis默认采用的事务管理器是JDBC,默认是不提交的,需要手动提交。)
      sqlSession.commit();
      // 6. 关闭资源(只关闭是不会提交的)
      sqlSession.close();
      }
      }

注意1:默认采用的事务管理器是:JDBC。JDBC事务默认是不提交的,需要手动提交

  • 步骤6:运行程序,查看运行结果,以及数据库表中的数据

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器