mapper接口文件配合XML映射文件进行sql查询
建立mapper接口对应的xml映射文件.
Xml文件中<mapper>跟标签的namespace属性是用来关联xml文件和mapper接口文件的,
namespace的值需要配置成接口的全限名称
<mapper namespace="tk.mybatis.simple.mapper.UserMapper">`
建好映射文件之后还需要在**mybatis-config.xml** 文件中设置<mappers>
<mappers>
<package name="tk.mybatis.simple.mapper"/>
</mappers>
<mappers>中可以用mapper逐个对xml文件进行资源导入.如果直接将mapper的包路径配置进去的话,可以查找包下的所有接口,
可以避免逐个增加的麻烦.
如此配置会对接口进行如下操作:
1. 判断接口对应的命名空间是否己经存在,如果存在就抛出异常,不存在就继续进行接下来的操作。
2. 加载接口对应的却也映射文件 , 将接口全限定名转换为路径 ,
3. 处理接口中的注解方法。
SELECT
传参
接口中的方法是通过id来跟xml文件中的SQL操作进行关联的.接口中的方法可以重载,但是xml中对应SQL操作的id是唯一的,
重载传入的不同参数可以在SQL中进行体现.
返回值
SQL查询返回的类型使用resultType和resultMap中的type来设置.要与接口方法中的返回值相对应,
resultMap 标签用于配置 Java 对象的属性和查询结果列的对应关系,通过<id>和<result>
涉及到多表查询,进行值的返回:
如果额外的查询返回值较少,可以直接新建一个扩展对象来继承源对象,加入需要扩展的属性来进行扩展返回,
如果涉及到的其他表单的值较多,可以在查询对象中实例化涉及到的其他的对象,然后来获取其他对象的属性.
SQL语句查询出来的参数,要与其他对象获取属性的方式相对应
u.user name as ” user.userName”
其他配置
配置以下划线的方式映射到java对象驼峰命名的属性中:
<setting name="mapUnderscoreToCamelCase" value="true"/>
INSERT
MyBatis 会使用 JDBC 的 getGeneratedKeys 方法来取出由数据库内部生成的主键,并赋值给id属性
<insert id=” insert” useGeneratedKeys=” true ” keyProperty=” id” >
使用<selectKey>标签返回主键的值
<selectKey keyColumn=” id” resultType=” long” keyProperty=” id” order=”AFTER” >
SELECT LAST INSERT ID ()
</selectKey>
使用mysql的时候,放在插入语句的下方.
使用Oracle的时候,放在插入语句的上方,并将获取的id写入sql中
UPDATA和DELETE与上面类似
多个接口参数的用法:
将多个参数合并到一个JavaBean中,但是参数过少的时候专门去创建一个JavaBean不太划算.
还能使用Map类型作为参数或者使用@Param注解