从JDBC到Mybatis

本文介绍了MyBatis框架的基本概念和优势,它是一个Java持久化框架,简化了JDBC代码并支持动态SQL。MyBatis通过XML或注解将SQL与Java方法关联,提供了内置的数据缓存,并且可以与Spring Framework和Guice集成。文中还概述了MyBatis的运行流程和如何在项目中配置与使用。
摘要由CSDN通过智能技术生成

一.设置git

1.setting----Git在这里插入图片描述
2.github中添加库
在这里插入图片描述

二.Mybatis概述

1.MyBatis是一个Java持久化框架,它通过XML描述符或注解把对象与存储过程或SQL语句关联起来,映射成数据库内对应的纪录。
MyBatis是在Apache许可证 2.0下分发的自由软件,是iBATIS 3.0的分支版本,其维护团队也包含iBATIS的初创成员。
与其他对象关系映射框架不同,MyBatis没有将Java对象与数据库表关联起来,而是将Java方法与SQL语句关联。MyBatis允许用户充分利用数据库的各种功能,例如存储过程、视图、各种复杂的查询以及某数据库的专有特性。如果要对遗留数据库、不规范的数据库进行操作,或者要完全控制SQL的执行,MyBatis是一个不错的选择。
与JDBC相比,MyBatis简化了相关代码:SQL语句在一行代码中就能执行。MyBatis提供了一个映射引擎,声明式的把SQL语句执行结果与对象树映射起来。通过使用一种内建的类XML表达式语言,或者使用Apache Velocity集成的插件,SQL语句可以被动态的生成。
MyBatis与Spring Framework和Google Guice集成,这使开发者免于依赖性问题。
MyBatis支持声明式数据缓存(declarative data caching)。当一条SQL语句被标记为“可缓存”后,首次执行它时从数据库获取的所有数据会被存储在一段高速缓存中,今后执行这条语句时就会从高速缓存中读取结果,而不是再次命中数据库。MyBatis提供了基于 Java HashMap 的默认缓存实现,以及用于与OSCache、Ehcache、Hazelcast和Memcached连接的默认连接器。MyBatis还提供API供其他缓存实现使用。

2.Mybatis优势
1.JDBC连接访问数据库有大量重复的代码,而mybatis可以极大的简化JDBC代码:注册驱动、获取连接、获取传输器、释放资源。
2.JDBC没有自带连接池,而mybatis自带的有连接池。
3.JDBC中是将SQL语句、连接参数写死在程序中,而mybatis是将SQL语句以及连接参数都写在配置文件中。
4.JDBC执行查询后得到的ResultSet我们需要手动处理,而mybatis执行查询后得到的结果会处理完后,将处理后的结果返回。

3.Mybatis运行
(1.在SQLMapConfig.xml(mybati的全局配置文件)中配置mybatis的运行环境等信息。并在其中加载mapper.xml(sql映射文件,配置了操作数据库的SQL语句)文件。
(2.通过mybatis环境等配置信息构造SQLSessionFactory会话工厂。 由会话工厂创建SQLSession来操作数据库。
(3.mybatis底层自定义了Executor执行器接口操作数据库,Executor接口有基本执行器和缓存执行器两个实现。
(4.Mapped Statement也是mybatis一个底层封装对象,包装了mybatis配置信息及SQL映射信息等。mapper.xml文件中一个SQL对应一个Mapped
Statement 对象,SQL的id即是Mapped Statement的id。
(5.Mapped Statement对SQL执行输入参数进行定义,包括HashMap、基本类型、pojo,Executor通过Mapped Statement在执行SQL前将输入的Java对象映射至SQL中,输入参数映射就是jdbc编程中对preparedStatement设置参数。
(6.Mapped Statement对SQL执行输出结果进行定义,包括HashMap、基本类型、pojo,Executor通过Mapped Statement在执行SQL后将输出结果映射至Java对象中,输出结果映射过程相当于jdbc编程中结果的解析处理过程。

三.代码

1.在项目中的resources文件夹下,删除原有的application.properties文件
新建
1.application.yml

spring:
  profiles:
    active: dev

2.application-dev.yml

server:
  port: 8080

spring:
  datasource:
    username: root
    password: 1206
    url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC
    driver-class-name: com.mysql.cj.jdbc.Driver

mybatis:
  mapper-locations: classpath:mapping/*Mapper.xml
  type-aliases-package: com.example.mybatiswork.entity
#showSql
logging:
  level:
    com:
      example:
        mapper : debug


3.新建mapping文件夹,新建一个xml文件

<?xml version
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值