博客
关于我
Mybatis 从入门到精通---编程不良人
阅读量:324 次
发布时间:2019-03-01

本文共 1543 字,大约阅读时间需要 5 分钟。

MyBatis 开发指南

MyBatis 简介

MyBatis 是一个开源的数据库连接框架,旨在简化 JDBC 开发,提供更高效的数据访问层解决方案。它通过 XML配置文件或注解驱动的方式,支持动态SQL、批处理、关联关系处理等功能,适用于多种数据库类型。

环境搭建

获取sqlSession

  • 读取配置文件:mybatis-config.xml
  • 创建SqlSessionFactory
  • 获取SqlSession
  • 获取数据库连接并进行操作
  • public class TestMybatis {    public static void main(String[] args) throws SQLException, IOException {        Reader resourceAsReader = Resources.getResourceAsReader("mybatis-config.xml");        SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(resourceAsReader);        SqlSession sqlSession = sessionFactory.openSession();        System.out.println(sqlSession);        sqlSession.getConnection().commit();    }}

    执行查询

    动态SQL

    MyBatis支持多种动态SQL标签,如<sql><if><choose>等,能够灵活处理复杂查询逻辑。

    关系映射

    通过<resultMap>标签,可以实现对象关系映射,支持一对一、一对多、多对多等关系,减少手动处理POJO对象的代码量。

    MyBatis SQL 进阶学习

    XML 中特殊字符

    • & 替换为 &amp;
    • < 替换为 &lt;
    • > 替换为 &gt;
    • " 替换为 &quot;
    • ' 保持不变

    JDBC 类型对应

    MyBatis支持多种JDBC类型,通过<result>标签进行映射,例如:

    • VARCHAR 对应 String
    • INTEGER 对应 Integer
    • DATE 对应 java.sql.Date
    • BLOB 对应 Blob

    分页查询

    通过<select>标签和rownum实现分页,支持多种分页算法。

    动态SQL 标签

    • <sql>:用于复用SQL片段
    • <if>:条件判断
    • <choose>:条件选择
    • <foreach>:批处理
    • <trim>:字符串处理
    • <set>:变量赋值

    关联关系

    一对一

    数据库中通过外键实现一对一关系,代码中通过关联对象进行操作。

    一对多

    通过集合和关联标签实现一对多关系,代码中使用<collection>标签进行封装。

    多对多

    通过中间表实现多对多关系,代码中使用<association>标签封装多个对象。

    MyBatis 配置日志

    logback 配置

  • application.yml中添加logback配置
  • 定义日志输出格式和路径
  • 设置日志级别
  • %d [%thread] %-5level %logger %file : %line - %msg%n
    ${scheduler.manager.server.home}/logs/${app.name}.log

    转载地址:http://nqzo.baihongyu.com/

    你可能感兴趣的文章
    prometheus监控docker容器实战
    查看>>
    Prometheus监控k8s集群使用邮箱和微信告警!
    查看>>
    Prometheus监控mysq数据库实战
    查看>>
    prometheus监控nginx实战
    查看>>
    Prometheus监控redis数据库实战
    查看>>
    Prometheus监控教程:使用Grafana展示主机基本信息
    查看>>
    pytorch中如何使用预训练词向量
    查看>>
    Prometheus监控教程:使用PromQL查询监控数据(上篇)
    查看>>
    Prometheus监控教程:使用PromQL查询监控数据(下篇)
    查看>>
    Pytorch中关于forward函数的理解与用法
    查看>>
    Prometheus监控教程:安装部署
    查看>>
    Prometheus监控教程:配置介绍
    查看>>
    Pytorch中tqdm进度条的使用
    查看>>
    Prometheus(2):SpringBoot 2.X集成Prometheus
    查看>>
    Promise 原理解析与实现(遵循Promise/A+规范)
    查看>>
    PyTorch:传递 numpy 数组进行权重初始化
    查看>>
    PyTorch-Tutorials【pytorch官方教程中英文详解】- 8 Save and Load Model
    查看>>
    promise.all是并发执行吗_攻破面试灵魂拷问,解读Java并发编程的艺术,本文带你深入l理解...
    查看>>
    PyTorch-Tutorials【pytorch官方教程中英文详解】- 7 Optimization
    查看>>
    promise总结
    查看>>