Mybatis基础教程(三)

ORM(object relational mapping)关系映射

前面讲的关系映射都是单表的操作,今天实现多表的操作

创建两张表学生(n)表和班级(1)表 1对n

Clazz班级表有c_id(主键),c_name字段
Student学生表有s_age,s_name,s_id(主键),c_id(外键)字段

如果我们主要需要的是学生信息
对应的实体类
学生类:
public class Student{
	private String sName;
	private Integer sAge;
	private Integer sId;
	private Clazz clazz;
//构造方法和get set方法省略
}

班级类:
public class Clazz{
	private Integer cId;
	private String cName;
//构造方法和get set方法省略
}


映射(mapper)文件

<mapper namespace=" ">
<!--告诉mybatis查询结果集合和尸体的映射关系-->
<resultMap id="stu" type="包名.Student(映射的实体的全类名)">
<id property="实体的属性名" column="对应的数据库列名"/>
<result property="实体的属性名" column="对应的数据库列名"/>
......
<assocation property="clazz" javaType="包名.Clazz">
<id property="实体的属性名" column="对应的数据库列名"/>
<result property="实体的属性名" column="对应的数据库列名"/>
......
</assocation>
</resultMap>
<select id="实现的方法名" parameterType="java.lang.Integer" resultMap="stu(对应上面的id)" >
sql语句
</select>
</mapper>




如果我们主要需要的是班级信息
对应的实体类
学生类:
public class Student{
	private String sName;
	private Integer sAge;
	private Integer sId;
//构造方法和get set方法省略
}

班级类:
public class Clazz{
	private Integer cId;
	private String cName;
	private List<Student> students=new ArrayList<>();//必须实例化
        //构造方法和get set方法省略
}

映射文件主要就是把resultMap里的assocation换成了collection标签其他的差不多一样
上面resultMap的id表示主属性的映射,result表示一般属性的映射
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值