一、什么是框架
它是我们软件开发中的一套解决方案,不同的框架解决不同的问题(mybatis解决持久层的问题,springmvc解决点线程的问题)
使用框架的好处:
框架封装了很多的细节,使得开发者可以使用极简的方式实现功能,提高开发效率。
二、三层架构
表现层:用来展示数据;
业务层:用来处理业务需求;
持久层:和数据库交互的。
三、持久层技术解决方案
JDBC技术:Connection、Preparedstatement、ResultSet
Spring的JdbcTemplate:Spring中对jdbc的简单封装
Apache的DBUtils:它和JdbcTemplate很像,也是对jdbc的简单封装
但是,以上这些都不是框架,JDBC是规范,Spring的JdbcTemplate和Apache的DBUtils都只是工具类。四
四、MyBatis框架概述
MyBatis:
- 是一个持久层框架,用Java编写的。
- 它封装了JDBC操作的很多细节,使得开发者只需关注SQL语句本身,无需关注注册驱动、创建连接等繁杂过程。
- 它使用ORM思想实现了对结果集的封装。
ORM:Object Relational Mapping 对象关系映射
简单说,就是把数据库表和实体类以及实体类的属性对应起来,让我们可以操作实体类就实现操作数据库表。
实体类中的属性和数据库表的字段名称保持一致。
表名:user 属性:id,user_name
类名:User 属性:id,user_name
五、MyBatis的入门
mybatis环境搭建:
- 创建maven工程并导入坐标;
- 创建实体类和dao的接口;
- 创建MyBatis的主配置文件SqlMapConfig.xml
- 创建映射配置文件IUserDao.xml.
环境搭建的注意事项:
- 创建IUserDao.xml和IUserDao.java时名称是为了和我们之前的知识保持一致,在Mybatis中它把持久层的操作接口名称和映射文件也叫作:Mapper。所以,IUserDao和IUserMapper是一样的
- 在IDEA创建目录时,它和包是不一样的,包在创建时,com.itheima.dao是三级结构。目录在创建时,com.itheima.dao是一级结构
- MyBatis的映射配置文件位置必须和dao接口的包结构相同
- 映射配置文件的mapper标签namesapace属性的取值必须是dao接口的全限定类名
- 映射配置文件的操作配置(select),id属性的取值必须是dao接口的方法名。
- 遵从了3,4,5点后,开发中无需再写dao的实现类。
MyBatis的入门案例:
- 读取配置文件
- 创建SqlSessionFactory工厂
- 创建SqlSessin
- 创建Dao接口的代理对象
- 执行Dao中的方法
- 释放资源
注:不要忘记在映射配置中告知MyBatis要封装到哪个实体类中配置的方式:指定实体类的全限定类名
MyBatis基于注解的入门案例:
把IUserDao.xml移除,在Dao接口的方法上使用@Select注解,并且指定SQL语句。同时需要在SqlMapConfig.xml中的mapper配置时,使用class属性指定Dao接口的全限定类名。
明确:实际开发中,基本都采用不写Dao实现类的方式。使用XML或者注解配置。但是MyBatis是支持写Dao实现类的。
六、自定义MyBatis分析
MyBatis在使用代理Dao的方式实现增删改查:(1)创建代理对象(2)在代理对象中调用selectList