首页 > 其他分享 >mybatis

mybatis

时间:2023-09-19 17:57:18浏览次数:70  
标签:JDBC MyBatis 对象 Mybatis SqlSession SQL mybatis

MyBatis简介(了解)

   

什么是MyBatis

MyBatis 本是apache的一个开源项目iBatis,2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。

MyBatis是一个优秀的持久层框架,它对jdbc的操作数据库的过程进行封装,使开发者只需要关注SQL本身,而不需要花费精力去处理例如注册驱动、创建connection、创建statement、手动设置参数、结果集检索等jdbc繁杂的过程代码。

Mybatis通过xml或注解的方式将要执行的各种statement(statement、preparedStatemnt)配置起来,并通过java对象和statement中的sql进行映射生成最终执行的sql语句,最后由mybatis框架执行sql并将结果映射成java对象并返回。

总之,Mybatis对JDBC访问数据库的过程进行了封装,简化了JDBC代码,解决JDBC将结果集封装为Java对象的麻烦。

 

(1)mybatis-config.xml是Mybatis的核心配置文件,通过其中的配置可以生成SqlSessionFactory,也就是SqlSession工厂

(2)基于SqlSessionFactory可以生成SqlSession对象

(3)SqlSession是一个既可以发送SQL去执行,并返回结果,类似于JDBC中的Connection对象,也是Mybatis中至关重要的一个对象。

(4)Executor是SqlSession底层的对象,用于执行SQL语句

(5)MapperStatement对象也是SqlSession底层的对象,用于接收输入映射(SQL语句中的参数),以及做输出映射(即将SQL查询的结果映射成相应的结果)

 

为什么要使用MyBatis

思考:在开始之前,思考下如何通过JDBC查询Emp表中的所有记录,并封装到一个List集合中返回。(演示:准备数据、导包、导入JDBC程序)

1、使用传统方式JDBC访问数据库:

(1)使用JDBC访问数据库有大量重复代码(比如注册驱动、获取连接、获取传输器、释放资源等);

(2)JDBC自身没有连接池,会频繁的创建连接和关闭连接,效率低;

(3)SQL是写死在程序中,一旦修改SQL,需要对类重新编译;

(4)对查询SQL执行后返回的ResultSet对象,需要手动处理,有时会特别麻烦;

...

2、使用mybatis框架访问数据库:

(1)Mybatis对JDBC对了封装,可以简化JDBC代码;

(2)Mybatis自身支持连接池(也可以配置其他的连接池),因此可以提高程序的效率;

(3)Mybatis是将SQL配置在mapper文件中,修改SQL只是修改配置文件,类不需要重新编译。

(4)对查询SQL执行后返回的ResultSet对象,Mybatis会帮我们处理,转换成Java对象。

...

总之,JDBC中所有的问题(代码繁琐、有太多重复代码、需要操作太多对象、释放资源、对结果的处理太麻烦等),在Mybatis框架中几乎都得到了解决!!

标签:JDBC,MyBatis,对象,Mybatis,SqlSession,SQL,mybatis
From: https://www.cnblogs.com/1011-zslnb/p/17715316.html

相关文章

  • Mybatis-Plus常见操作
    packagecom.ideas.system.service.impl;importcom.alibaba.fastjson.JSON;importcom.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;importcom.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;importcom.baomidou.mybatisplus......
  • mybatis
    1.mybatis入门1.mybatis入门SqlSessionFactoryBuilder:读取配置信息,创建SqlSessionFactory.建造者模式,方法级别生命周期SqlSessionFactoryL创建SqlSession,工厂单例模式,存在于程序的整个生命周期SqlSession:代表一次数据库连接,一般通过调用Mapper访问数据库,也可以直接......
  • MyBatis中 Mapper.xml 文件
     resources目录下新建文件夹mapper(个人习惯全路径与Mapper类对应) <?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEmapperPUBLIC"-//mybatis.org//DTDMapper3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd......
  • mybatisPlus更新时字段为空时不更新问题
    **需求**:当数据库字段为数字类型时,更新该个字段的时候,如果前端传来的值为null或者"",此时mybatisPlus的更新方法会自动忽略该字段;这种情况下可以在实体类该字段上加@TableField(updateStrategy=FieldStrategy.IGNORED),忽略为空不更新的策略,此时再更新就会把库中的值更......
  • 解密Spring Boot:JPA vs. MyBatis,哪个更适合你的项目?
    Hello大家好,我是小米!今天我要和大家聊聊一个在Java开发中经常会遇到的问题,那就是如何在SpringBoot项目中区分何时该使用JPA,何时该使用MyBatis。这个问题一直困扰着很多开发者,但其实只要理清一些基本概念和场景,就能轻松解决。废话不多说,让我们一起深入探讨吧!了解JPA和MyBatis首先,让......
  • Mybatis Plus 分页查询数据
    MybatisPlus分页查询数据一、分页配置packagecom.example.demomybatispage.config;importcom.baomidou.mybatisplus.annotation.DbType;importcom.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;importcom.baomidou.mybatisplus.extension.plugins.......
  • Mybatis 01 mybatis入门
    什么是MyBatis?MyBatis是一款优秀的持久层框架,用于简化JDBC开发MyBatis本是Apache的一个开源项目iBatis,2010年这个项目由apachesoftwarefoundation迁移到了googlecode,并且改名为MyBatis。2013年11月迁移到Github官网:https://mybatis.org/mybatis-3/zh/index.html......
  • 「开源系统」mybatis-plus代码生成工具(自己基于官方的封装的,打包成了maven插件的方式)
    mybatis-plus代码生成工具本工具基于MyBatis-Plus的代码生成器,MyBatis-Plus官网:https://baomidou.com/,请尊重原作者作品。demo:https://gitee.com/javalaoniu/mybatis-code-maven-plugin-demo插件:https://gitee.com/javalaoniu/mybatis-plus-code-maven-plugin生成的项目......
  • mybatis jdbc java 字段类型转换
    在springmvc+mybatis+mysql数据表CREATETABLE`test_jdbc_java_type`(`id`int(11)NOTNULL,`_char`char(50)DEFAULTNULL,`_varchar`varchar(200)DEFAULTNULL,`_numeric`decimal(10,2)DEFAULTNULL,`_decimal`decimal(10,2)DEFAULTNULL,`_b......
  • 学习Mybatis-Plus的记录
    目录1.常用注解2.条件查询2.1.各种方式的查询2.2.AllEq用法2.3selectOne方法2.4lambda条件构造器2.5select不查出所有的字段2.6通用Mapper2.7自定义sql3.分页查询4.更新5.AR(ActiveRecord)模式6.主键策略7.Mp的配置1.常用注解@TableName用于在数据库表名和实体对......