首页 > 其他分享 >MyBatis

MyBatis

时间:2024-12-18 20:29:31浏览次数:5  
标签:语句 映射 title 查询 SQL MyBatis

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

1. 简单易用

  • MyBatis 不需要大量的配置文件,通过简单的 XML 或者注解就可以完成 SQL 映射。
  • 它允许你直接编写原生的 SQL 查询语句,并且可以完全控制 SQL 执行和存储过程调用。

2.核心组件

  1. SqlSessionFactory:通过 SqlSessionFactoryBuilder 使用配置文件或代码构建而来。它是创建 SqlSession 的工厂类。
  2. SqlSession:用于执行命令、提交或回滚事务,以及获取映射器实例。
  3. Mapper Interface:定义了操作数据库的方法,这些方法通常与 SQL 语句一一对应。MyBatis 会自动将它们绑定到相应的 SQL 语句上。
  4. XML 映射文件/注解:包含 SQL 语句和映射规则。可以是 XML 文件或者直接用注解在 Mapper 接口内定义。

3. 动态 SQL

  • 提供强大的动态 SQL 语言,可以根据不同的条件生成不同的 SQL 语句,这使得查询更加灵活。
    <select id="findActiveBlogWithTitleLike" resultType="Blog">
      SELECT * FROM BLOG
      <where>
          <if test="title != null and title != ''">
            AND title like concat('%',#{title},'%')
          </if>
          <if test="state != null and state > 0">
            AND state = 1
          </if>    
      </where>
    </select>
    
    ① 满足第一个条件但是第二个条件不满足
    sql语句为 select* from blog where title like concat('%',#{title},'%')
    
    ② 满足第二个条件但是第一个条件不满足
    sql语句为 select* from blog where state = 1
    
    ③ 两个条件都满足
    sql语句为 select* from blog where title like concat('%',#{title},'%') and state = 1

4. 缓存机制

  • 支持一级缓存和二级缓存,能够减少数据库访问次数,提高性能。

5. 映射引擎

  • 强大的映射引擎可以处理任意复杂的映射关系,包括一对一、一对多、多对多等关联关系。

6. 插件机制

  • 提供插件接口,可以在执行过程中拦截四大对象(Executor, StatementHandler, ParameterHandler, ResultSetHandler),进行自定义操作。

7. 事务管理

  • MyBatis 自身不管理事务,但可以与 Spring 框架集成,利用 Spring 的声明式事务管理功能。

8. 数据库移植性

  • 因为 SQL 是在 MyBatis 的映射文件中编写的,所以更换数据库时只需修改相应的 SQL 语句即可,无需改动业务逻辑代码。

9. 最佳实践

  • 分页查询:对于大数据量的表,应尽量避免一次性加载所有数据,而应该采用分页查询。
  • SQL 注入防护:总是使用参数化查询,不要拼接 SQL 字符串。
  • 性能优化:合理使用缓存,避免不必要的 N+1 查询问题。

标签:语句,映射,title,查询,SQL,MyBatis
From: https://blog.csdn.net/2301_79814793/article/details/144568636

相关文章

  • MyBatis ORM映射方式详解
    在现代的Java应用开发中,ORM(Object-RelationalMapping,对象关系映射)框架是不可或缺的一部分。MyBatis作为一种灵活且强大的ORM框架,因其能够直接操作SQL语句而受到许多开发者的青睐。1.MyBatis简介MyBatis是一个持久层框架,它通过XML描述符或注解将Java对象与数据库记录进行......
  • 基于Spring Boot + SSM(Spring + Spring MVC + MyBatis)+Vue+MySQL实现一个简单的用户管
    后端代码(SpringBoot+SSM部分)1.创建SpringBoot项目使用SpringInitializr(可以通过IDEA等IDE自带的创建SpringBoot项目功能,或者访问Spring官网的Initializr页面)创建一个基础的SpringBoot项目,添加相关依赖,比如Web(用于构建Web应用)、MyBatis、MyBatisSpringBootStarter、My......
  • MyBatis Generator安装详细步骤
    1.准备工作确保你的系统已经安装了Java开发环境(JDK),并且配置好了相关的环境变量。因为MyBatisGenerator是一个Java工具,它依赖于Java运行环境来执行。你可以在命令行中输入java-version来检查JDK是否正确安装。2.添加依赖Maven项目如果你的项目是使用Maven构建的,需要在......
  • MyBatis 类型处理器(typeHandlers),处理枚举类型,对象工厂(objectFactory)
    类型处理器(typeHandlers)MyBatis在设置预处理语句(PreparedStatement)中的参数或从结果集中取出一个值时,都会用类型处理器将获取到的值以合适的方式转换成Java类型。下表描述了一些默认的类型处理器。提示从3.4.5开始,MyBatis默认支持JSR-310(日期和时间API)。类型处......
  • mybatis pom
    在Maven项目中配置MyBatis的步骤如下‌:‌编辑pom.xml文件‌:首先,需要在项目的pom.xml文件中添加MyBatis的依赖。打开pom.xml文件,添加以下依赖:<dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.16</version>&......
  • mybatis 超简单入门 详细图文教程
    mybatisMyBatis是一款优秀的持久层框架,它支持自定义SQL、存储过程以及高级映射。MyBatis免除了几乎所有的JDBC代码以及设置参数和获取结果集的工作。MyBatis可以通过简单的XML或注解来配置和映射原始类型、接口和JavaPOJO(PlainOldJavaObjects,普通老式Java对......
  • MyBatis-Plus的优缺点?
    优点:1.简化开发:MyBatis-Plus封装了很多CRUD操作,使得我们不需要手写大量的SQL语句,从而减少了开发时间和代码量。2.提高性能:MyBatis-Plus的分页插件和缓存插件等能够提高SQL执行的效率和性能。3.提供了代码生成器:MvBatis-Plus提供了一款强大的代码生成器,能够根据数据库表自......
  • 深入剖析MyBatis的架构原理
    架构设计简要画出MyBatis的架构图>>​​‍‍Mybatis的功能架构分为哪三层?API接口层提供给外部使用的接口API,开发人员通过这些本地API来操纵数据库。接口层一接收到调用请求就会调用数据处理层来完成具体的数据处理。MyBatis和数据库的交互有两种方式:......
  • Day32-JavaEE应用&Servlet路由技术&UDBC&Mybatis数据库&生命周期
    一,Servlet&路由&周期1,Servlet的含义:Servlet是运行在web服务器或应用服务器上的程序,它是作为来自web浏览器或其他HTTP客户端请求和HTTP服务器上的数据库或应用程序的中间件。使用Servlet可以收集来自网页表单的用户输入,呈现来自数据库或者其他源的记录,还可以动态创建网页2.Servl......
  • MyBatis入门
    MyBatis框架-它是一个优秀的持久层框架,用于在Java应用程序中与数据库进行交互。MyBatis主要的优势在于它可以将SQL语句和Java代码分离,使得代码结构更加清晰。开发人员可以在XML配置文件或者通过注解的方式编写SQL语句,MyBatis会根据这些SQL语句来操作数据库。例如,要查询数据库中......