一、SQL映射的xml文件
- MyBatis真正的强大在于映射语句,专注于SQL,功能强大,SQL映射的配置却是相当于简单
- SQL映射文件的几个顶级元素(按照定义的顺序)
mapper - namespace
- cache - 配置给定命名空间的缓存
- cache-ref - 从其他命名空间引用缓存配置
- resultMap - 用来描述数据库结果集和对象的对应关系
- sql - 可以重用的SQL块,也可以被其他语句引用
- insert - 映射插入语句
- update - 映射更新语句
- delete - 映射删除语句
- select - 映射查询语句
mapper元素
mapper
namespace:命名空间
namespace和子元素的id联合保证唯一,区别不同的mapper
绑定DAO接口
namespace的命名必须跟某个接口同名
接口中的方法与映射文件中的SQL语句id一一对应
select
select是MyBatis中最常用的元素之一
select语句有很多属性可以详细配置每一条语句
id
命名空间中唯一的标识符
接口中的方法与映射文件中的SQL语句id一一对应
parameterType
传入SQL语句的参数类型
基础数据类型:
int、String、Date等
只能传入一个,通过#{参数名}即可获取传入的值
复杂数据类型
Java实体类、Map等
通过#{属性名}或者#{map的keyName}即可获取传入值
resultType:直接表示返回类型
SQL语句返回值类型的完整类名或别名
resultMap:对外部resultMap的引用
应用场景:
数据库字段信息与对象属性不一致
复杂的联合查询,自由控制映射结果
二、添加、修改、删除用户信息
编写user实体类 User.java
package net.togogo.bean; import java.io.Serializable; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.List; public class User { private Integer id; //id private String userCode; //用户编码 private String userName; //用户名称 private String userPassword; //用户密码 private Integer gender; //性别 private Date birthday; //出生日期 private String phone; //电话 private String address; //地址 private Integer userRole; //用户角色 private Integer createdBy; //创建者 private Date creationDate; //创建时间 private Integer modifyBy; //更新者 private Date modifyDate; //更新时间 //年龄 private int age; private String sex; //用户和角色是1对1的关系 private Role role; //用户和收货地址是1对多的关系 private List<Address> addressLi