Mapper文件详解
Mapper文件是mybatis的核心文件,是业务逻辑sql书写的地方,每个应用ssm框架的开发者基本都用到过,当然也可以同tk-mapper这种方式,不用mapper文件也能比较好的操作数据库,但是个人觉得还是书写sql比较好,控制权在开发者手中,方面调试与问题跟踪,而不是交给一个黑盒子,问题出在哪儿都不知道。
以后的代码示例来源于mybatis-3.5.0的源码中的测试用例BlogMapper.xml文件,中间加上一些解释说明。
1. 命名空间
Mapper文件首先要配置命名空间,区分各个Mapper以解决可能存在的id冲突,在configuration中的mappedStatements中的key是以命名空间加上sql的id一起的,如果没有namespace,可能会很麻烦。
如果采用接口的方式映射,那么namespace的名称必须与接口的全类名相同
2. ResultMap
ResultMap的定义是数据库的表与对象映射的关键,是查询语句中的结果创建的依据,也是Mapper文件配置的核心内容之一,如果不采用自动映射的方式,那么必须的配置ResultMap,ResultMap的定义有是这样的:
本身有两个重要的属性是必须要写的
id:为结果映射取一个名字,方面在CRUD中使用,相关与一个别名,
type:是javaBean的类型,结果映射到哪个类
resultMap有多个字节点:id,result,discriminator,association,collection,现在分开对这些配置讲解
1) id,Id是指明数据库表中的主键与对象映射的关系,在进行关联查询中有优化sql的作用,有多个自身的属性:
property:javaBean的属性名称
javaType:java的数据类型,可以是别名,可以是全限定名
column:数据表的字段名称
j