一对一注解查询:
1.创建实体类,一个user表,一个idcard表,实体类user里面应该存在IdCand属性。
2.创建两个映射接口,如UserMapper和IdCardMapper,先写IdCardMapper接口,@select(""),然后查询语句即可,创建调用方法类型为Card,(附魔刀)。而在UserMapper里面同理,但是需要用@Result建立映射,@Results({@Result内进行属性配对,并且用逗号继续分隔}),用属性one=@One实现一对一对关系,()的里面仅是属性select的IdCard的相对路径。再创建调用方法类型为Student,(包装)。
3.将CardMapper类写入mybatis-config核心对象文件<mappers>标签里面了。
4.再创建测试类,测试类写在@Test里面,获取配置,getMapper获取动态代理(什么什么.class),最后用mapper调用类里面的方法即可,传入参数为1。最后用session.commit();表示开启事务。
一对多注解查询:
1.创建两个实体类,student和orders,Student实体里面的orders属性应该用List<>的格式定义。student内应该存在Orders的属性。
2.创建两个映射接口,一个为StudentMapper,第二个为OrdersMapper,先写后者,同一对一,就是需要@Result映射,从而可以实现List<>属性可以一一对应获取,最后写调用方法。而前者则是同上,id=true可以加上,就是在最后换成many=@many,一样是(),然后select填入传入的list属性,当然这里是需要column和property的属性参数,注意传出是ordersList,且是属性,不是类型。
3.创建test类,同一对一。传入id即可。
4.核心对象文件配置类。
5.运行类。
多对多注解查询:
1.两个实体类,数据库三个表,需要外键链接,如用foreign key() references orders_id(id)。
2.类映射文件同一对多,但唯一区别就是products的多了个子查询,子查询的id由orders_id传入,所以需要引用column="id"。
3.创建test文件,同一对多
4.核心对象文件配置
5.运行测试类