MyBatis学习笔记(一)

MyBatis学习笔记 (一)

本系列笔记学习的是黑马程序员推出的ssm系列课程,感谢老师的精彩讲解,在此立贴以示感激。

一、MyBatis概述

​ MyBatis是一款优秀的Java持久层框架,它封装了JDBC,使开发者只需要关注Sql语句本身,二不需要花费精力去处理加载驱动,创建连接、创建Statement等繁杂的过程

​ MyBatis通过xml或注解的方式将要执行的各种statement配置起来,并通过java对象和statement中sql的动态参数进行映射生成最终执行的sql语句,最后由MyBatis框架执行sql并将结果映射为java对象并返回。

​ 采用ORM思想解决了实体和数据库映射的问题,对JDBC进行了封装,屏蔽了JDBC API底层访问细节,是我们不用与JDBC API打交道,就可以完成对数据库的持久化操作。

二、环境搭建

1.创建maven工程并导入坐标,即在pom.xml中添加依赖(包括mybatis,mysql,log4j,junit):

MyBatis学习笔记(一)_第1张图片(E:\日常总结\ssm框架\截图\image-20200128225556171.png)]

2.创建数据库表以及对应的Java实体类
3.创建dao接口

MyBatis学习笔记(一)_第2张图片

4.创建MyBatis的主配置文件(SqlMapConfig.xml):

MyBatis学习笔记(一)_第3张图片

5.创建映射配置文件(IUserDao.xml):

MyBatis学习笔记(一)_第4张图片

注意事项:

1.在MyBatis中,dao常被成为Mapper

2.包与目录的创建方式不同:

​ 例如:com.itheima.IUserDao以packege方式创建是三级目录,

​ 以目录方式创建是一级目录。

3.MyBatis的映射文件和Dao接口的包结构必须相同。(即IUserDao.xml与IUserDao.java的包结构必须相同)

MyBatis学习笔记(一)_第5张图片

4.映射配置文件的mapper的namespace属性必须是dao接口的全限定类名

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SlR8pSCq-1580607257148)(E:\日常总结\ssm框架\截图\image-20200129085905528.png)]

5.映射配置文件的操作配置id属性必须是dao接口的方法名

MyBatis学习笔记(一)_第6张图片

三、入门案例

1.步骤:

MyBatis学习笔记(一)_第7张图片

2.设计模式:

MyBatis学习笔记(一)_第8张图片

3.过程分析:

(1)解析主配置文件获取数据库连接:

​ MyBatis据此自动注册驱动,获取连接,创建connection对象
(2)解析映射配置文件:

​ 获取执行的sql语句,MyBatis据此构造preparedStatement。

(3)执行查询操作:

​ ResultSet rs = preparedStatemnt.executeQuery();

(4) 遍历结果集并封装

​ List list = new ArrayList ();

​ while(rs.next()){

​ E element = class.forName(配置的全限定类名(即resultType)).newInstance();

​ 进行封装,把每个rs中的属性封装到element的属性之中

​ 把element加入到list中

​ list.add(element);

​ }

tip:在MyBatis中存在一个mapper对象,将Sql语句与封装结果的实体类全限定类名封装成一体

且存在一个map,用来保存实体类与其接口的对应关系。map的key为实体类的全限定类名(namespace属性)与接口的名称(id属性),value为sql语句与封装结果的全限定类名(resultType)

(5)返回list

你可能感兴趣的:(MyBatis学习笔记(一))