目录

Hibernate

Ibatis

环境搭建

jar

 <dependency>   <groupId>org.mybatis</groupId>   <artifactId>mybatis</artifactId>   <version>3.5.0</version> </dependency> 

配置

 package com.github.zxhtom.mapper; import com.github.zxhtom.model.Student; import java.util.List; public interface StudentMapper {     /**      * 获取学生列表      * @return      */     public List<Student> getStudents();     /**      * 通过id获取学生信息      * @param id      * @return      */     public Student getStudentByStuId(String id); } 
 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "upload/201911131045371528.png" style="margin: 0px; padding: 0px; border: 0px; max-width: 820px; height: auto;" alt="" />

Mybatis结构

  • 学习的过程就是认知的过程。接下来我们来认识下Mybnatis的核心组件吧。

  • SqlSessionFactoryBuilder : 根据xml(mybatis-config.xml)或者Java代码(代码方式)来生成SqlSessionFactory
  • SqlSessionFactory : 构建SqlSession
  • SqlSession : 既可以发送sql执行并返回结果,也可以获取Mapper接口
  • SQL Mapper : Mybatis独有的组件。有Java接口和xml文件构成的一个整体。负责将xml中的sql进行解析然后传递给数据库并获取结果

源码解读xml环境加载

  • 因为范畴基础课程,这里对源码的跟踪点到为止(再深我也不会)。
  • 在解析mybatis-config.xml标签这一块是重点。这一块会专门介绍各个标签解析及作用。文章留言或点赞让我们看到你们对这一块的喜爱。留言点赞多的会尽快出这一篇。

映射器解读

  • 上面已经说了映射器是有Java+xml组合而成的Mybatis组件。我们上面的案例也展示了两者的编写。Java实际就是一个接口定义好方法。在xml中对应的标签带上我们的sql就行了。


  • 圈出来的这条sql中我们会发现和我们平时的sql不一样。#{id}是Mybatis为我们提供的入参。在提交给数据库的时候会将真正的sql填充过来。这里还有一个注意点我们写的是select * 。因为数据库字段和我们实体属性是一样的。所以Mybatis就会自动把相同字段内容映射给实体了。这就实现了自动映射了。
  • 之前说了和Hibernate相比,Mybatis属于半自动。如果我们的实体和数据库字段不一样了(注意驼峰和平峰在数据库通过设置可以认为是一样的。Mybatis也提供功能可以映射的。这里我们认为是一样的),我们可以通过resultMap来实现数据库字段和实体字段的映射。这就是我们所谓的半自动映射

Ibatis