mybatis入门教程-Mybatis简介与原理

  • 格式:docx
  • 大小:501.78 KB
  • 文档页数:9

下载文档原格式

  / 14
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

【持久化框架】Mybatis简介与原理

--夜半

什么是Mybatis

资料官网:https://mybatis.github.io/mybatis-3/zh/index.html

/

MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。

MyBatis 提供的持久层框架包括SQL Maps和Data Access Objects(DAO)。

MyBatis 是支持定制化SQL、存储过程以及高级映射的优秀的持久层框架。

MyBatis 避免了几乎所有的JDBC 代码和手工设置参数以及抽取结果集。

MyBatis使用简单的XML 或注解来配置和映射基本体,将接口和Java 的POJOs(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。

1、mybatis ibatis

2、主要是做数据库操作,使用java操作数据库,dao[持久化]

技术知识点

1、概念

2、基本CRUD标签

3、动态sql

4、一对多,多对一关系

5、了解注解式配置

学习内容

1、理解什么是mybatis,以及mybatis的应用场景

2、使用mybatis开发demo

3、熟悉mybatis的配置文件,以后spring的时候,没有用。

4、会使用mybatis实现简单增删改查

①Insert delete update select 标签使用

ORM

对象关系映射(英语:(Object Relational Mapping,简称ORM,或O/RM,或O/R mapping),是一种程序技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换。从效果上说,它其实是创建了一个可在编程语言里使用的--“虚拟对象数据库”。

对象与数据库表之间的映射

操作对象的形式操作数据库 hibernate

对象与SQL语句之间的映射

操作对象的形式操作数据库:pojo实体类

mybatis提供一种“半自动化”的ORM实现。

这里的“半自动化”,是相对Hibernate等提供了全面的数据库封装机制的“全自动化”ORM实现而言,“全自动”ORM实现了POJO和数据库表之间的映射,以及 SQL 的自动生成和执行。

而mybatis的着力点,则在于POJO与SQL之间的映射关系。

通过操作对象的方式来操作数据表。

持久化

是把内存数据保存至硬盘的过程,持久化。IO

JDBC:

知识点介绍

架构图

实例

需求

数据库存储和读取数据的需求。

实现一个用户的操作:CRUD

分析

分析JDBC步骤

分析Mybatis该如何做

1、导入Jar

2、配置文件,描述数据库连接

3、测试连接

4、数据表映射文件,描述如何操作数据表:SQL语句

5、测试CRUD

知识点

快速入门:

导入mybatis的jar包和数据库连接的jar包

1、mybatis的配置文件(主要是数据库环境)

Src根目录下创建配置文件:mybatis-config.xml

测试是否连接成功:

2、Sql的映射文件:

在任意包下创建表的映射文件:如com.aaa.mapper.xml

增删改查有四个标签

Insert、update、delete、select

这里没有引入参数。

2、引入映射文件

在main方法中写代码实现:

其他update、delete标签调用一样。

调用select标签查询方法:

以上是快速入门实例:

以下对配置文件的具体解释:

在开发中一般会把数据库连接配置到一个properties文件中如:mysql.properties

然后在配置文件中引用:

整个配置文件的配置如下:

Mapper映射文件解释:

4、使用两种方式操作数据

第一种,使用sqlsession的方法操作映射文件的namespace+标签id

第二种,创建一个接口类,使用sqlsession的getMapper()获取接口类的实现类,主要是使用的代理方式通过映射文件代理出实现类。

映射文件有限制:1、与接口同名并放入同一个包下

2、namespace必须是接口路径

操作方式:

5、#{} ${} 区别

#{}表示一个占位符号,通过#{}可以实现preparedStatement向占位符中设

置值,自动进行java类型和jdbc类型转换,#{}可以有效防止sql注入。#{}

可以接收简单类型值或pojo属性值。如果parameterType传输单个简单类型

值,#{}括号中可以是value或其它名称。

${}表示拼接sql串,通过${}可以将parameterType 传入的内容拼接在sql 中且不进行jdbc类型转换,${}可以接收简单类型值或pojo属性值,如果

parameterType传输单个简单类型值,${}括号中只能是value。

同类技术对比

与JDBC对比

与hibernate对比

注意事项及小甜点

space的使用

2.Mappers的配置

3.返回主键设置

4.配置自动提示

5.日志

6.配置自动反向