这里说明一下关于数据库,数据库对应实体各种复杂情况关系映射。
最基本的实体:
比如:(这里面不涉及复杂map,list,set等)
@Data
@Getter
@Setter
@Component
public class TestUser {
private Integer testUserNo;
private String testUserName;
private String testUserSex;
}
数据库:
resultMap最终将数据库查出的结果,映射到pojo(实体)上
type是指定映射到哪一个实体;id是相对应的resultMap的id
这里有两种属性,主键属性和普通属性
1,主键属性方式(是主键)
user_no是主键:
<id property="testUserNo" column="user_no"/>
2,普通属性(即不是主键)
user_name不是主键
<result property="testUserName" column="user_name"/>
完整的mapper.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://www.mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- namespace是对应的定义方法mapper,会去拿到对应的geTestUsers方法。这样才建立起了输入,返回的对应的关系 -->
<mapper namespace="com.cun.mapper.TestUserMapper">
<resultMap type="com.cun.entity.TestUser" id="TestUser">
<!-- property是对应的实体属性,column是对应的数据库column项-->
<id property="testUserNo" column="user_no"/>
<result property="testUserName" column="user_name"/>
<result property="testUserSex" column="user_sex"/>
</resultMap>
<select id="geTestUsers" resultMap="TestUser">
select * from test_user
</select>
</mapper>
在我们深入更加复杂情况前,我们需要了解mapper3.0下常用的标签。我们从mapper开始讲起。
mapper: 是总标签,所有标签都包含在内。
namespace:命名空间。如果采用的是Mapper接口代理的方式开发,Mapper的映射文件中namespace必须为接口的全名,比如这里namespace=“com.cun.mapper.TestUserMapper”。
最常见的增删改查select,insert,update,delete。
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="Mapper.EmpMapper">
/