一、基本介绍
1、数据持久化
将内存中数据和永久数据进行转化或者传递,java程序中临时数据和数据库中数据进行交互,代表技术是JDBC(Java DataBase Connector Java语言数据库的连接技术)
2、JDBC缺点
- 操作繁琐,代码麻烦,效率极低
- 要将数据库的SQL语句写入到Java程序中,后期维护成本很高
持久化框架(连接数据库框架)优点
- 开源化,公开学习文档,极易学习
- 支持多种数据库切换,性能极其稳定,适合企业级项目开发
- 实现了Java程序和SQL语句分离,降低了项目耦合性,将SQL语句写入到了XML文档中
3、常用的数据持久化框架
Hibernate、Mybatis(轻量级)
4、Mybatis
是由第三方团队开发并维护,每一年都会推出新的版本,第一个版本在2001年推出,之前的名字叫Ibatis,后来改为Mybatis,但是很多API名字还是叫做Ibatis
5、ORM
Object Relational Mapping 对象关系映射 → Java Mysql 联系
二、搭建一个Mybatis应用
1、导入jar包 & 创建Maven项目
2、配置mybatis全局文件:config.xml全局可扩展配置文件
注意:文件位置:src的顶层目录中
XML:eXtensible Markup Language可扩展标记语言:实现跟任何语言尽心跟数据交互,包括Java和SQL
3、创建一个数据库testdb
创建一张表tb_userInfo 字段userid(主键自增) username gender
4、创建Javabean类 UserInfo
5、创建sqlsession对象,操作这个对象相当于操作整个数据库对象
st=>start: 用户登陆
op=>operation: 登陆操作
cond=>condition: 登陆成功 Yes or No?
e=>end: 进入后台
st->op->cond
cond(yes)->e
cond(no)->op
st=>start: 用户登陆
op=>operation: 登陆操作
cond=>condition: 登陆成功 Yes or No?
e=>end: 进入后台
sqlsessionFactoryBuilder、sqlsessionFactory、sqlsession
boundary-start ---mybatis核心接口---
SqlSessionFactoryBuilder --build() → SqlSessionFactory --openSession() → SqlSession
boundary-end ------
6、创建一个mapper.xml用来写数据库的SQL语句
根标签:mapper 在xml中写SQL相当于在mysql环境中一样
insert 添加语句标签
select 查询
delete 删除
update 修改
SQL 所有SQL语句 包括 存储过程
所有标签都有以下属性
id代表当前标签的名称,方法查询
parameterType:参数类型:当前SQl未知参数的类型,需要全路径
SQL的位置参数可以使用 #{param} 方式占位
重点
- 原生接口
- 使用sqlsession对象中增删改查方法调用xml中SQL语句
缺点:
- 需要写SQL xml所对应的全路径地址
- 类型需要转化,特别不人性化,不利于开发
- 自定义mapper接口
- tips:
- 接口 关键字 interface
- 定义 封装为实现方法的一个类型,类似于类class
- 注意点:
- 接口中所有方法必须都是未实现方法(不带大括号)
- 接口的所有方法都必须通过子类继承方式实现
- 步骤
自定义一个接口类,将增删改查方法写入其中,编写接口相对应的mapper.xml
规则:
- mapper.xml中namespace属性为接口的全路径地址
- mapper.xml中标签的id必须跟接口中方法名相同
- mapper.xml中的parameterType对应方法中形式参数类型
- mapper.xml中的resultType对应方法中返回值类
级联
定义:mybatis中将JavaBean中一个类当作另一个类的属性,相当于mysql中主外键
数据库中表于表有三种关系
- 一对一
- 就将班级对象插入到用户对象当属性将一段的对象插入到多端的对象中当属性
- 在mapper.xml的select标签中使用resultMap结果映射属性
- 一对多
- 多对多
那些将要去的地方,都是素未谋面的故乡