命名:
1.表对应的实体类的类名+Mapper.xml
2.映射文件的namespace要和mapper接口的全类名一致,当调用Mapper接口中的方法,它会现根据Mapper接口的全类名去找映射配置文件,然后根据方法名字去找对应的SQL语句.
3.映射文件中SQL语句的id要和mapper接口中的方法名一致
路径:
1.在mapper包下面创建mapper接口,里面定义操作数据库中表的相关方法
2.在resources目录下面建mybatis的核心配置文件
mapper标签的namespace属性:
1.当你的namespace绑定接口后,你可以不用写接口实现类,mybatis会通过该绑定自动帮你找到对应要执行的SQL语句
2.接口中的方法与映射文件中的SQL语句的ID一一对应.
3.直接面向接口编程,不需要写实现类
增删改查的标签:
标签的分类:
insert:添加
delete:删除
update:修改
select:查询
标签的属性:
id属性:
1.唯一标识符
2.如果命名空间和id组合起来不唯一会抛出异常
select标签:
有特有的resultType或者resultMap属性
resultType:
1.返回值类型。 – 别名或者全类名,如果返回的是集合,定义集合中元 素的类型。不能和resultMap同时使用
2.在查询返回List集合时,resultType要写集合中元素的类型
resultMap:
1.表示将查询结果集中的列一一映射到bean对象的各个属性。映射的查询结果集中的列标签可以根据需要灵活变化,并且,在映射关系中,还可以通过typeHandler设置实现查询结果值的类型转换,比如布尔型与0/1的类型转换。
标签体中的内容:
自己编写的SQL语句
怎么在映射配置文件的sql语句中获取接口方法的参数
获取参数的方式:
1.#{}
1.预编译处理:#{}是sql的参数占位符,Mybatis会将sql语句中的#{}替换成?号
在sql执行前会使用PreparedStatement的参数设置方法来动态对sql语句赋值
2.使用#{}可以有效的防止SQL注入,提高系统安全
3.一般能用#{}就别用${}
2.${}
1.字符串替换
2.一般用于传入数据库对象 例如传入表名 必须加单引号
@Param注解
1.给每个参数取个名字,#{}或者${}就可以根据取得名字获取参数
2.当方法只有一个参数的时候可以省略@Param
a.这个参数是简单类型 #{任意字符串}
b.这个参数是实体Bean类型 #{实体Bean的属性名}
结果集映射
1.自动映射
a.resultType属性
要求结果集的字段名与封装结果集的实体Bean的属性名一致
b.驼峰映射
2.手动映射
a.使用resultMap标签编写手动映射规则
1.标签分类
id标签对结果集中主键字段进行映射规则配置
result标签对结果集中的非主键字段进行映射规则配置
2.标签的属性
column属性:要进行映射的结果集的字段名
property属性:要映射到的实体Bean的属性
b.在select标签中通过resultMap属性引用上述定义的手动映射规则的id