首页 > 其他分享 >Mybatis基础知识

Mybatis基础知识

时间:2024-05-10 09:13:19浏览次数:25  
标签:语句 java 映射 数据库 SQL 基础知识 sql Mybatis

  1. 什么是mybatis?

    mybatis是一款用于持久层的、轻量级的半自动化ORM框架,封装了所有jdbc操作以及设置查询参数和获取结果集的操作,支持自定义sql、存储过程和高级映射。

    • 框架用于持久层,就是说这个框架是和数据库进行交互的,用于数据库中数据操作的框架
    • 轻量级框架的概念可以简单的理解为所用框架开发的程序启动时占用的资源少、对业务代码的侵入性不强、比较容易配置、使用和部署简单、独立部署即可使用无需依赖另外的框架。
    • ORM,Object Relational Mapping, 对象关系映射,将java中的类型一一映射到数据库的字段类型上,因此可以将其看作是一个ORM框架,半自动是因为使用mybatis,需要手动配置pojo、sql和映射关系,用户可以自定义sql,这些sql是针对于处理数据库的,但是这些sql需要接受一些查询java类型的参数,或者是返回结果集封装到java类中,这些是需要配置的,因此mybatis是一个半自动ORM框架。
  2. 为什么要用mybatis?

    传统 JDBC 开发存在的问题:

    • 频繁创建数据库连接对象、释放,容易造成系统资源浪费,影响系统性能。可以使用连接池解决这个问题。但是使用 jdbc 需要自己实现连接池。
    • sql 语句定义、参数设置、结果集处理存在硬编码。实际项目中 sql 语句变化的可能性较大,一旦发生变化,需要修改 java 代码,系统需要重新编译,重新发布。不好维护。
    • 使用 preparedStatement 向占有位符号传参数存在硬编码,因为 sql 语句的 where 条件不一定,可能多也可能少,修改 sql 还要修改代码,系统不易维护。
    • 结果集处理存在重复代码,处理麻烦。如果可以映射成 Java 对象会比较方便。

    MyBatis解决JDBC的问题

    • 在 mybatis-config.xml 中配置数据链接池,使用连接池管理数据库连接。
    • 将 Sql 语句配置在 XXXXmapper.xml 文件中与 java 代码分离。
    • Mybatis 自动将 java 对象映射至 sql 语句。
    • Mybatis 自动将 sql 执行结果映射至 java 对象。
  3. Mybatis优缺点

    优点:

    • 基于 SQL 语句编程,相当灵活,不会对应用程序或者数据库的现有设计造成任何影响。
    • SQL写在 XML 里,解除 sql 与程序代码的耦合,便于统一管理。
    • 提供 XML 标签,支持编写动态 SQL 语句,并可重用与 JDBC 相比,减少了 50%以上的代码量,消除了 JDBC 大量冗余的代码,不需要手动开关连接很好的与各种数据库兼容
    • 提供映射标签,支持对象与数据库的 ORM 字段关系映射。
    • 提供对象关系映射标签,支持对象关系组件维护能够与 Spring 很好的集成

    缺点:

    • SQL 语句的编写工作量较大,尤其当字段多、关联表多时,对开发人员编写 SQL 语句的功底有一定要求。
    • SQL 语句依赖于数据库,导致数据库移植性差,不能随意更换数据库。

标签:语句,java,映射,数据库,SQL,基础知识,sql,Mybatis
From: https://www.cnblogs.com/hytip/p/18183517

相关文章

  • C++基础知识
    单行注释//多行注释/**/常量#define常量名常量值const数据类型常量名=常量值关键字不要和变量或常量重名数据类型短整型(2字节)-整型(4字节)-长整型(4字节)-长长整型(8字节)short<int<=long<=longlong实型float(4)-double(8)科学计数法3e23*10^23e-23*......
  • MyBatis-Plus随手笔记
    1使用MyBatisPlus插件来自动化创建从数据库表生成相应的实体类User和映射文件。这一过程的说明说明;根据数据库表生成对应的基本的crud代码和Entity类,可以参考renren代码生成器,以前在hspliving分布式项目中使用过!参考老韩在hspliving-commodity中crud代码的自动生成过程视频,......
  • springboot整合mybatis自动生成框架
    1、添加自动生成配置在根目录下创建:mybatis-generate.xml<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEgeneratorConfigurationPUBLIC"-//mybatis.org//DTDMyBatisGeneratorConfiguration1.0//EN""http://mybat......
  • Mybatis if判断中使用了Ognl关键字导致报错解决方法
    mybatisxml中使用OGNL解析参数,如果直接使用了关键字则会导致解析失败。常见的关键字有:字段mybatis关键字bor(字符|)的英文xor字符^的英文and字符&&band字符&ed字符==neg字符!=lt字符<gt字符>lte字符<=......
  • springboot整合mybatis-plus手动配置
    1、添加依赖<dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.1.6</version></dependency><dependency>......
  • LLM 大模型学习必知必会系列(一):大模型基础知识篇
    LLM大模型学习必知必会系列(一):大模型基础知识篇魔搭ModelScope开源的LLM模型魔搭ModelScope欢迎各个开源的LLM模型在社区上做开源分享。目前社区上已经承载了来自各个机构贡献的不同系列的LLM模型。并且社区的开发者也在这些模型的基础上,贡献了许多创新应用,并在M......
  • C#.Net筑基-基础知识
    01、C#基础概念1.1、C#简介C#(读作CSharp)是由微软公司开发的一种面向对象、类型安全、高效且简单的编程语言,最初于2000年发布,并随后成为.NET框架的一部分。所以学习C#语言的同时,也是需要同步学习.NET框架的,不过要要注意C#与.NET的对应版本。C#语言和Java类似,是一门简单......
  • mybatis获取自增主键
    获取自增主键实体对象设置主键自增,插入到数据库后拿到主键ID。数据库使用的是mysql。useGeneratedKeys非常简单的实现:mapper接口publicinterfaceUserMapperextendsBaseMapper<User>{intinsertUser(Useruser);}mapper文件<mappernamespace="com.oracat.moe.......
  • Mybatis-Plus 入门
    Mybatis-Plus简介Mybatis-Plus(简称MP)是一个Mybatis的增强工具,在Mybatis的基础上只做增强不做改变,为简化开发,提高效率而生。愿景:我们的愿景是成为MyBatis最好的搭档,就像 魂斗罗 中的1P、2P,基友搭配,效率翻倍。特性:无侵入:只做增强不做改变,引入它不会对现有工程产生......
  • Java测试框架Junit5基础知识点
    Junit5测试框架一:创建一个测试用例junit5的测试依赖:<!--junit5新的编程和扩展模型--><dependency><groupId>org.junit.jupiter</groupId><artifactId>junit-jupiter</artifactId><version>5.8......