码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • MyBatis入门学习一(引入配置、体验CURD)


    目录

    1、MyBatis概述

    1.1 MyBatis简介

    1.2 MyBatis架构

    1.3 MyBatis执行流程

    1.4 与Hibernate的比较

    2、MyBatis初体验

    2.1 创建并配置项目

    2.2 创建数据库表

    2.3 引入MyBatis及其配置

    2.3.1 MyBatis引入及配置

    2.3.2 Log4j引入及配置

    2.4 测试

    2.4.1 编写测试类

    2.4.2 编写实体类及Mapper文件

    2.4.3 测试查询数据

    2.5 使用步骤总结

    3、MyBatis实现DAO层CRUD

    3.1 接口实现类实现

    3.1.1 编写接口与实现类

    3.1.2 编写Mapper文件

    3.1.3 测试

    3.2 动态代理实现

    3.2.1 Mapper的命名空间

    3.2.2 获取动态代理实现类

    3.2.3 测试

    3.2.4 总结


    1、MyBatis概述

    1.1 MyBatis简介

            MyBatis 世界上流行最广泛的SQL 映射框架,由Clinton Begin 在2002 年创建,其后,捐献给了Apache基金会,成立了iBatis 项目。2010年这个项目从Apache迁移到Google Code改名为Mybatis 之后将版本升级到3.X,其曾经官网:http://blog.mybatis.org/,从3.2版本之后迁移到github(https://github.com/mybatis/mybatis-3)。

            Mybatis是一个类似于Hibernate的ORM持久化框架,支持普通SQL查询,存储过程以及高级映射。Mybatis通过使用简单的XML或注解用于配置和原始映射,将接口和POJO(Plain Old Java Objects,普通的 Java对象)对象映射成数据库中的记录。

             由于Mybatis是直接基于JDBC做了简单的映射包装,所有从性能角度来看:JDBC > Mybatis > Hibernte

    下载地址(3.2.8):

    https://github.com/mybatis/mybatis-3/releases

    官方文档:

    http://mybatis.github.io/mybatis-3/

    官方文档(中文版):

    http://mybatis.github.io/mybatis-3/zh/index.html

    1.2 MyBatis架构

    接口层:提供给外部使用的接口API,开发人员通过这些本地API来操纵数据库。接口层一接收到调用请求就会调用数据处理层来完成具体的数据处理。

    数据处理层:负责具体的SQL查找、SQL解析、SQL执行和执行结果映射处理等。主要目的是根据调用的请求完成一次数据库操作。

    支撑层:负责最基础的功能支撑,包括连接管理、事务管理、配置加载和缓存处理,这些都是共用的东西。为上层的数据处理层提供最基础的支撑。

    1.3 MyBatis执行流程

    执行过程:

    1. mybatis配置mybatis-config.xml,名称可变,此文件作为mybatis的全局配置文件,配置了mybatis的运行环境等信息。mapper.xml文件即sql映射文件,文件中配置了操作数据库的sql语句。此文件需要在mybatis-config.xml中加载;
    2. 通过mybatis环境等配置信息构造SqlSessionFactory即会话工厂;
    3. 由会话工厂创建sqlSession即会话,操作数据库需要通过sqlSession进行;
    4. mybatis底层自定义了Executor执行器接口操作数据库,Executor接口有两个实现,一个是基本执行器、一个是缓存执行器;
    5. Mapped Statement也是mybatis一个底层封装对象,它包装了mybatis配置信息及sql映射信息等。mapper.xml文件中一个sql对应一个Mapped Statement对象,sql的id即是Mapped statement的id;
    6. Mapped Statement对sql执行输入参数进行定义,包括HashMap、基本类型、pojo,Executor通过 Mapped Statement在执行sql前将输入的java对象映射至sql中,输入参数映射就是jdbc编程中对preparedStatement设置参数;
    7. Mapped Statement对sql执行输出结果进行定义,包括HashMap、基本类型、pojo,Executor通过 Mapped Statement在执行sql后将输出结果映射至java对象中,输出结果映射过程相当于jdbc编程中对结果的解析处理过程。

    1.4 与Hibernate的比较

            MyBatis与Hibernate都是流行的持久层开发框架;两者之间各有优缺点,具体的比较详见《MyBatis与Hibernate的区别》

    2、MyBatis初体验

    2.1 创建并配置项目

    1 )创建Java Project

    2)配置项目;添加mysql的驱动包到项目。

  • 相关阅读:
    openwrt开发使用-arping
    java153-字符输出流
    8年经验之谈:月薪3000到30000,测试工程师的变“行”记
    枚举类的简单使用
    Android开发者的自我修养
    基于串级 PID 控制算法的四旋翼无人机控制系统设计与实现
    普通人怎么在一年内赚到100万?
    unity打AB包,AssetBundle预制体与图集(一)
    六、RTMP协议 时间戳
    【浅学Java】多线程进阶
  • 原文地址:https://blog.csdn.net/qq_35701567/article/details/138141950
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号