开发者学堂课程【MyBatis 持久层框架入门:Mybatis 第一个应用程序】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/21/detail/440
Mybatis 第一个应用程序
内容简介:
1. 第一个应用程序
2、第一讲 Mybatis 开端
3、步骤
1.第一个应用程序
MyBatis 本是 apache 一个开源项目 iBatis,2010年,这个项目由 apache software foundation 迁移到了 Google code ,并且改名为 MyBatis。
2013年11月迁移到 Github。iBATIS一词来源于 internet 和 abatis 组合,是一个基于 java 的持久层框架,Ibatis 提供的持久层框架包括 SQL Maps 和 Data Access Object。
2、第一讲 Mybatis 开端
Mybetis 是一个基于 java 的持久层框架。
持久化指下一次开机还能访问上次的,数据从瞬时状态变为持久状态,就是持久化。数据写入文件写入库写入光盘也是一种持久化。
持久层指的是完成持久化工作的代码。
Mybetis 就是帮助程序员将数据存入数据库中取出数据。
传统的 gdbc 操作有很多重复的代码块。比如数据每次取出来后,都需要封装,数据库的建立连接等等。
学习 mybetis 最直观的感受就是数据不需要再自行封装。通过框架可以减少重复代码,提高开发效率。
Mybetis 是一个半自动化 Orm 框架,因为使用 mybetis 时还需要书写语句,其并不是自动化框架。
O 指的是 object,R 指的是 relationship,M 指的是 mapping。
Java 是面向对象的,而数据库是关系型,通过 gdpc 就是将对象转化成关系的过程,将对象信息转化到数据库中。
Mybetis 是支持普通 sql 查询存储过程和高级映射的优秀持久层框架。
Mybetis 消除了几乎所有的 jdbc 代码和参数的手工设置以及结果集的检测。
Mybetis 使用简单的 xml 或注解,用于配置和原始映射,将接口和 java 的 pojos 映射成数据库中的记录。
每个 mybetis 应用程序主要都是使用 sqlSessionFaction 实例的,一个sqlSessionFaction 实例可以通过 sqlSessionFaction Builder 获得。
sqlSessionFaction Builder 可以从一个 xml 配置文件或者一个预定义的配置类的实例获得。
用 xml 文件构建 sqt session factory 实例是非常简单的事情,推荐在这个配置中使用类路径资源(Classpath resource)。
但可以使用其他 reader 实例,包括用文件路径或 file 开头的 url 创建的实例。
mybetis 有一个实用类 resources,它有很多种方法,可以方便的从类路径及其他位置加载资源。
需要使用时,要用 maven 方式来进行安装,安装相当于把一个 jar 包导入项目中。
3、步骤:
(1)导入 mybetis 相关 jar 包
新建一个文件夹存放 jar 包,放入核心包,放进依赖包 lib,放入数据库 jar 包。
(2)从 xml 创建一个 Sqlsessionfactory
(3)编写 mybetis 核心配置文件
代码中以下代码用于连接数据库的四大项
均可通过 copy 实现
(4)创建一个 sqlsessionfactory
书写一个静态方法,注意更改自己的 resource
without Xml,证明 sqlsessionfactory 不用 xml 也可以创建。
从 sql session factory 去读写 sql session。SQLsession 变量从 sqlsessionfactory就可以得到。
由此可以获得 Sqlsession。
(5)创建实体类
代码中没有 blog 和 Blog mapper,所以需要创建实体类。
(6)在代码中有 mapper
之前建立的代码中存在未学习过的代码中也有 mapper 与其关联较大。
往下读的第一串代码是用于读取 mapper。第二串代码中存在与开头的代码相同的地方。
Mybatis 是一个半自动化的。使用 mybatis 还需要自己写 sql 语句。由此可知,此处作用就是获取一个 sql 语句。
(7)编写 sql 语句的映射文件
将代码写到查询 user 包中,File name 为 usermapper,将以下代码拷贝进去进行更改。
Resulttype 是查询结果类型,类型为 blog不合适,一般情况下,包名加类名可以决定一个类型,所以最好加上报名加类名。
更改结果如下
进行完上一步后,可以开始测试。观察是否能够查出。
书写一个不存在方法的测试包
不需要类型转换,输出 id,name,pwd,最后相当于释放资源。此时可以开始进行测试。此时的代码无法运行,因为创建 sqlsession 错误,不存在文件,但是在代码中出现了该文件,所以应该将路径改为自己的路径,运行结果成功查询。
进行比较,原来不必写 session,但是要写 Result set,且需要封装,但此时不需要封装。
所以一些文件不需要重复写,可直接进行查询。
</div>