本文共 2215 字,大约阅读时间需要 7 分钟。
Mybatis之Mapper接口的开发方式
该方式开发,不需要写dao层的实现类,而是mybatis根据映射文件等信息对接口进行jdk动态代理生成代理类来实现接口中的方法,因此,采用这种方式,我们只需要编辑接口,而不需要去写实现。例如 : 根据id查询用户。
Mapper开发代理规范
1、mapper接口的全限定名要和mapper映射文件的namespace值一致。 2、mapper接口的方法名称要和mapper映射文件的statement的id一致。 3、mapper接口的方法参数类型要和mapper映射文件的statement的parameterType的值一致,而且它的参数是一个。 4、mapper接口的方法返回值类型要和mapper映射文件的statement的resultType的值一致。mybatis config文件
标签介绍 :<typeAliases></typeAliases>
typeAliases 类型别名是为 Java 类型设置一个短的名字。就是取别名。 它只和 XML 配置有关,存在的意义仅在于用来减少类完全限定名的冗余。例格式: 如:
OK,下一标签
映射器(mappers) 前面我们讲到Mybatis已经帮我们封装好链接数据库开启/关闭资源,而且Mybatis的配置文件与Java方法的映射也已经封装好我们只需要书写相关的配置文件,既然这么方便,那它也一定有自己的映射规则,现在我们现在就要定义 SQL 映射语句了。首先我们需要告诉 MyBatis 映射到哪里去找到这些语句。格式 :例如 : 以上的意思是告诉Mybatis映射到xml包下的TestMapper.xml文档
Mapper XML 文件模块
MyBatis 的亮点就是在于它的映射语句,也是它的优势所在。映射器的 XML 文件就显得相对简单。和JDBC比起来,你会立即发现省掉了将近 95% 的代码。MyBatis 就是针对 SQL 构建的,并且比普通的方法做的更好。 以下是Mapper的元素介绍:(很少用) cache – 给定命名空间的缓存配置。
最复杂的resultMap resultMap
constructor - 用于在实例化类时,注入结果到构造方法中
~~(很少用)~~idArg - ID 参数;标记出作为 ID 的结果可以帮助提高整体性能 ~~(很少用)~~arg - 将被注入到构造方法的一个普通结果 id – 一个 ID 结果;标记出作为 ID 的结果可以帮助提高整体性能 result – 注入到字段或 JavaBean 属性的普通结果 ~~(很少用)~~association – 一个复杂类型的关联;许多结果将包装成这种类型 嵌套结果映射 – 关联可以指定为一个 resultMap 元素,或者引用一个 collection – 一个复杂类型的集合嵌套结果映射 – 集合可以指定为一个 resultMap 元素,或者引用一个 discriminator – 使用结果值来决定使用哪个 resultMap.#{} ${}的区别 :
#{} 只是替换Sql语句中的’?’,也就是说PreparedStatement使用占位符去替换你传入的参数,可以防止sql注入。安全性高 是 进 行 简 单 的 字 符 串 拼 接 , 相 当 于 s q l 语 句 中 的 S t a t e m e n t , 使 用 字 符 串 去 拼 接 s q l ; {} 是进行简单的字符串拼接,相当于sql语句中的Statement,使用字符串去拼接sql; 是进行简单的字符串拼接,相当于sql语句中的Statement,使用字符串去拼接sql;可以是sql中的任一部分传入到Statement中,不能防止sql注入。#{}输入参数是基本数据类型,#{}中的名字随便写
输 入 参 数 是 基 本 数 据 类 型 , {}输入参数是基本数据类型, 输入参数是基本数据类型,{}中的名字只能写value #{},${}如果参数是java对象,写的是属性名 如果查询出来是多条数据 sql配置文件里的resultType写的是集合元素的数据类型 也就是说,不管查出来是一条/多条 都是写一样的数据类型转载地址:http://uyhrb.baihongyu.com/