网站建设个人主要事迹,免费网站源码博客,申请一个域名,百度排名查询本文目录 前言一、创建XML映射文件二、MybatisX插件安装三、mapper标签四、select标签UserMapper接口方法UserMapper.xml 五、resultMap标签定义resultMap标签修改select标签 总结 前言
MyBatis的强大在于它的语句映射#xff0c;它提供了注解和XML映射文件两种开发方式… 本文目录 前言一、创建XML映射文件二、MybatisX插件安装三、mapper标签四、select标签UserMapper接口方法UserMapper.xml 五、resultMap标签定义resultMap标签修改select标签 总结 前言
MyBatis的强大在于它的语句映射它提供了注解和XML映射文件两种开发方式都是为了减少我们的使用成本屏蔽JDBC代码细节节省代码从而让我们更专注于SQL代码
通过 《上文》我们学会了常用12种注解开发本文主要讲解XML映射文件方式开发轻松学会创建XML映射文件和常用的select标签和resultMap标签的用法。 一、创建XML映射文件
XML映射文件的目录位置通常推荐创建在resources下例如实战案例创建如下
在tg-book-dal的resources下创建与UserMapper.java对应的Xml映射文件UserMapper.xml如下图 要求路径相同名称相同。 不同行不行可以通过mybatis.mapper-locations配置建议保持默认相同 UserMapper.xml的内容定义如下
?xml version1.0 encodingUTF-8?
!DOCTYPE mapper PUBLIC -//mybatis.org//DTD Mapper 3.0//EN http://mybatis.org/dtd/mybatis-3-mapper.dtd
mapper namespaceorg.tg.book.dal.mapper.UserMapper/mapper二、MybatisX插件安装
这里推荐安装使用MybatisX插件非常方便在接口与XML映射文件之间来回跳转以及可以生成标签
IDEA的File-》Settings-》Plugins 搜索MybatisX安装即可! 三、mapper标签
mapper标签它是最顶级的标签也就是XML根标签通过namespace属性指定对应的接口比如这里指定的是org.tg.book.dal.mapper.UserMapper这样接口和XML映射文件就产生了关联接口通过JDK动态代理生成实现类时就会读取XML映射文件的对应配置 如何配置呢常用的XML标签有 select标签对应写查询SQL语句resultMap标签结果映射上文曾介绍过insert标签对应写插入INSERT语句update标签对应写修改UPDATE语句delete标签对应写删除DELETE语句sql标签对应写SQL语句这个SQL语句可被其他语句引用的可重用的语句块 四、select标签 我们先删除上文的注解方式换成XML映射文件的方式来实现 UserMapper接口方法
Param指定参数名
public interface UserMapper {User selectByUserNamePassword(Param(userName) String userName,Param(password) String password);
}这时MybatisX插件会提示一个错误把鼠标悬浮在方法上会提示selectByUserNamePassword方法在xml中没有定义我们点击Generate statement UserMapper.xml
这时在UserMapper.xml中会生成一个select标签使用id属性指定对应的接口方法名使用resultType属性指定返回类型如下图 这里依然有一个警告XML tag has empty body是因为我们没有写对应的查询select语句SQL我们在select标签中补充SQL语句如下
select * from user where user_name #{userName} and password #{password}SQL中的参数使用#{}作为占位符 实际的效果与上文使用的Select注解相同 五、resultMap标签
同样的运行后你会发现【User对象】的userId并没有取到值原因是【user表】的字段名叫id而不是userId名称不同所以无法获取到对应的值我们通过resultMap标签方式解决。
定义resultMap标签
resultMap idUserMap typeorg.tg.book.dal.po.Userid columnid jdbcTypeINTEGER propertyuserId/result columnuser_name jdbcTypeVARCHAR propertyuserName/result columnpassword jdbcTypeVARCHAR propertypassword/
/resultMapresultMap标签说明 通过id属性定义唯一标识type属性定义结果类型通过id标签指定主键列, result标签指定非主键列 property指定对象的属性名column指定数据表的列名jdbcType指定数据表的字段类型
修改select标签
使用resultMap属性代替了resultType属性resultMap属性内指定刚定义的resultMap id名称。 实际的效果与上文使用的Results和Result注解相同 OK到这我们就使用XML映射文件方式完整实现了接口方法selectByUserNamePassword
总结
写一个数据库查询方法简单来说步骤如下
创建接口对应的xml映射文件创建查询方法对应的select标签写查询selec语句SQL【可选】如果【数据库字段】与【PO对象属性】不一致需要增加结果映射resultMap标签然后在select标签使用resultMap属性指定resultMap标签