Mybatis--创建mapper接口
创建mapper接口
MyBatis中的mapper接口相当于以前的dao(原来的dao是有dao的接口以及dao的实现类)。但是区别在于,mapper仅仅是接口,我们不需要提供实现类。因为我们的mybatis里面有面向接口编程,只需要创建mapper接口,当我们通过mybatis中的方式去创建mapper接口的对象,然后调用这个接口中的方法,就会自动对应某个sql语句,并且执行。
接下来创建mapper接口,表,实体类
1.
2.要明白仍然需要将数据库中的数据转换成java中的数据,即我们数据库查询的数据转换的其实就是实体类对象(保证字段名和属性名一致,用的反射---把我们查找出来的字段名作为我们当前的属性名,然后查找这个属性并且为它赋值)
3.创建mapper接口,相当于我们原来的dao(dao取名应该和我们操作的表和它对应的实体类相关,即这里UserMapper)(为什么要创建这个接口,因为Mybatis里面有面向接口编程的功能,每当我们去调用这个接口中的方法,它就自动匹配一个sql语句并且执行)
创建MyBatis的映射文件
- 相关概念:ORM(Object Relationship Mapping)对象关系映射。
- 对象:Java的实体类对象
- 关系:关系型数据库
- 映射:二者之间的对应关系
| Java概念 | 数据库概念 |
| 类-------->表 |
| 属性---->字段/列 |
| 对象----->记录/行 |
- 映射文件的命名规则
- 表所对应的实体类的类名+Mapper.xml
- 例如:表t_user,映射的实体类为User,所对应的映射文件为UserMapper.xml
(因为以后映射文件可能会有多个,它的命名规则与mapper接口一致,而我们的mapper接口又相当于dao,一张表操作相当于一个dao,即对应的一个mapper接口;有几张表就可能对应几个mapper接口和mapper映射文件)
(namespace的值和一个类的全类名一致,什么什么的mapper接口)
- 因此一个映射文件对应一个实体类,对应一张表的操作
- MyBatis映射文件用于编写SQL,访问以及操作表中的数据
- MyBatis映射文件存放的位置是src/main/resources/mappers目录下
- MyBatis中可以面向接口操作数据,要保证两个一致(首先我们要明白调用这个mapper接口中的方法,就是来执行这个sql的)(id表示sql语句的唯一标识,我们的映射文件可以写一个sql也可以写多个,怎么让当前的所调用的方法去对应我们的这个sql语句)
- mapper接口的全类名和映射文件的命名空间(namespace)保持一致
- mapper接口中方法的方法名和映射文件中编写SQL的标签的id属性保持一致
表--实体类--mapper接口--映射文件
核心映射文件和映射文件如下不同:所使用的dtd文件不同!
最后在核心映射文件添加映射文件