MyBatis真正的特色在于SQL映射语句,功能强大,使用简单
SQL映射文件的几个顶级元素
mapper --SQL映射文件的根元素,有一个namespace属性
cache --配置给定命名空间的缓存
cache-ref --从其他命名空间引用缓存配置
resultMap -- 用来描述数据库结果集和对象的对应关系
sql --可以重用的SQL块,也可以被其他语句引用
insert --映射插入语句
update --映射更新语句
delete --映射删除语句
select --映射查询语句
mapper
mapper指的是映射器,是定义数据库操作的接口,用于执行与数据库的交互,并将Java对象与数据库表之间进行映射。
namespace属性 区别不同的mapper
namespace和子元素的id联合保证唯一
绑定DAO接口
namespace的命名必须跟某个接口同名
接口中的方法与映射文件中的SQl语句id一一对应
常见的属性:
1.select : 用于标注查询操作的方法
2.insert : 用于标注插入操作的方法
3.update : 用于标注更新操作的方法
4.delete : 用于标注删除操作的方法
5.Results :用于定义结果集映射规则
6.Result : 用于定义单个属性的映射规则
7.@Param:用于指定方法参数的名称
8.@Options:用于指定一些特殊的选项
MyBatis框架的条件查询
1.实现单一查询
select是元素MyBatis中最常用的元素之一
select元素有很多属性,可以详细配置每一条查询语句
a. id:命名空间中唯一的标识符,接口中的方法与映射文件中的SQL语句id一一对应
b. parameterType:传入SQL语句的参数类型
c.resultType:SQL语句返回值类型的完整类名或别名
实现:
先在SysUserMapper接口中添加查询方法
在SysUserMapper.xml中添加SQL语句映射
<!--根据用户的真实姓名进行模糊查询-->
<select id="getUsersByRealName" resultType="pojo.SysUser" parameterType="java.lang.String">
SELECT * from t_sysuser where realName like CONCAT ('%', #{realName}, '%')
</select>
在测试类中添加测试方法
public void getUsersByRealName() throws IOException{
SqlSession sqlSession=null;
try {
sqlSession=getSqlSession(sqlSession);
L