mybatis入门教程-Mybatis简介与原理
- 格式:docx
- 大小:501.78 KB
- 文档页数:9
【持久化框架】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.配置自动反向