初体验之Mybatis介绍以及搭建时候遇到的问题

Mybatis


一. ORM框架
二. mybatis创建步骤
三. 配置文件说明
四. 查询语句
五.多个类映射

一. ORM框架

O:  object
R: Relationship
M: Mapping
对象关系映射

Mybatis是持久层框架,几乎免除所有JDBC代码以及设置参数和获取结果集的工作。

我们的数据库是关系型数据库。
我们的代码是面向对象的。
之前我们通过代码(jdbc)操作数据库是有问题的,就是要把关系型数据库转换成对象。
那么之前的查询结果并不是对象,也就是说返回的数据不能直接使用,要进行封装,即把ResultSet类型的数据封装成list,然后才可以使用

简单来说,用jdbc实现增删改查都需要数据的转换。
---

ORM框架指的是一类框架,而Hibernate、Mybatis都属于ORM框架。
Hibernate之前是比较流行的,现在大多项目是用Mybatis。
Hibernate主要做中大型项目,Mybatis主要做中小型项目。

设想:能不能查询的结果直接就是List?能不能插入数据的时候只需要传入一个对象?
    能不能删除数据时候只传入一个对象?能不能修改数据时候也传入一个对象?

ORM框架可以帮我们自动实现数据的转换,我们程序员省去了数据转换。
ORM还可以帮我们实现数据库的自动连接和释放。

现在的ORM框架甚至可以帮我们生成常用的sql语句。

二. Mybatis搭建步骤

1. 创建maven项目

在这里插入图片描述

2. 引入依赖包

在这里插入图片描述

3. 创建maven的配置文件

创建普通xml即可

在这里插入图片描述
在这里插入图片描述

4. 创建db.properties文件

在这里插入图片描述

5. 把db.properties配置到Mybatis-config

在这里插入图片描述

6. 创建数据库 并创建表

在这里插入图片描述

7. 根据表结构创建类

在这里插入图片描述

8. 创建dao接口

在这里插入图片描述

9. 创建映射文件

在这里插入图片描述

10. 在配置文件中配置映射文件的路径

在这里插入图片描述

11. 写sql

在这里插入图片描述

12. 写测试类进行测试

在这里插入图片描述

在这里插入图片描述

三. 配置文件的说明

// 指定mybatis数据库配置文件
<properties resource="db.properties" />

// 指定Mybatis所用日志的具体实现
<settings>
    <setting  name="logImpl" value="LOG4J" />
</settings>

// 映射文件的路径 注意 /表示
<mappers>
    <mapper resource="com/zhi/dao/UserDao.xml" />
</mappers>

四. 查询语句

注意:写sql语句时候,如果没有提示怎么办?
去http://mybatis.org/dtd/mybatis-3-mapper.dtd下载dtd文件
下载完后,在eclipse选择window----preferences----xml catalog—add
location:dtd文件位置
key type:URI
key:头文件 public边的内容
在这里插入图片描述

问题:怎么做到表的字段跟类的属性一一对应?

根据命名规范来实现。
即图中所示,把userName的值给类中的userName,
如果类中的属性不是userName,而是userName2,那么传值失败,null。
在这里插入图片描述

问题:那么如果累的属性名是userName2,而表中字段userName,不改源码情况下,怎么做到映射?

可以利用sql语句中的起别名来实现。

在这里插入图片描述

问题:list中存放了9个对象,这9个对象是怎么产生的?

利用反射实现的,利用反射实例化了9个对象
在这里插入图片描述

总结 :目前Mybatis帮我们做了哪些事?
  1. 自动建立连接,释放连接。
  2. 封装数据。
注意点:

删除 增加 修改时候,最后要提交事务。

如果不提交事务会报错:
在这里插入图片描述

提交事务:
在这里插入图片描述

也可以事务回滚,rollback

五. 多个类的映射

映射:把结果集映射到对象数据
映射的依据是什么?
依据就是命名规范。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值