mybatis使用xml映射的方式

mybatis真正的强大之处在于其映射方式。

首先创建mapper.xml。当mapper接口和mapper.xml相关联的时候,需要在mapper.xml中配置namespace,<mapper namespace="接口全限名"></mapper>。

mybatis内部就是通过这个值将接口和xml文件连接起来。并且随后应该在mybatis-config.xml文件中的mapper元素中配置所有的mapper。因为每一个新增的mapper都需要配置,所以有一种方便的配置方法<package name="mapper包的全限名"></package>,这种配置方式会先查找包下所有的接口,循环对接口做以下操作:

1,判断接口对命名空间是否已经存在,如果存在就抛出异常,不存在就继续下来的操作,

2,加载接口对应的Mapper.xml,将接口全限名转换为路径,例如将tk.mybatis.simple.mapper.UserMapper转换为tk/mybatis/simple/mapper/UserMapper.xml。找到然后u解析xml.

3,处理接口中的注解方法。


接口和xml文件是通过namespace相关联,接口中的方法和xml中的SQL语句是通过id来连接。

了解一下XML文件中的标签:id:唯一标识符 。resultMap:用于设置返回值类型和返回的值和对象的映射关系.

resultMap是一种重要的标签,其包含以下属性:1,id必填,唯一2,type 必填,用于配置查询所映射到的Java对象 例如tk.mybatis.simple.model.User.还有一些不怎么常用。

resultMap所包含的标签:1,id:就是id  2result:注入到java对象的普通结果(属性property:对象中的字段。column:数据库中的字段)。3,association:(后面遇到再补充)

4,collection:复杂类型的集合。5。javatype:一个java类的完全限定名,或一个类型别名(通过typeAlias配置或者默认的类型),如果映射到一个javabean,mybatis通常可以自动判断属性的类型没如果映射到HashMap,则需要明确地制定JavaType属性。5,jdbcType:列对应的数据库类型。


返回值需要如何定义: 接口中定义的返回值类型必须和XML中配置的resultType类型一直,否则会抛出异常,返回值烈性是由XML中的resultType决定,而不是接口中写的返回值决定。1,如果用resultType来设置返回结果的类型,需要设置别名是最终的查询结果和resultType制定对象的属性名保持一直,进而实现自动映射,2,也可以通过resultMap中配置property和column属性的映射。其中别名或者property属性都要和对象中属性的名字相同,但是实际匹配的时候,mybatis都会将其转换为答谢,所以大小写都不影响,但是方便阅读,尽量规范。当一个返回类型是一个javabean,并且里面有另一个javabean的属性,比如role里面有user。命别名的时候可以user.属性名这种,通过这种方式可以直接将值付给user字段中的属性

猜你喜欢

转载自blog.csdn.net/sinat_38430122/article/details/79604402