首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

MyBatis3_轻巧入门_3

2013-10-29 
MyBatis3_轻松入门_3MyBatis3博文目录?联结查询的引出及实体类设计一对多关系中,通过一去找多一对多关系中

MyBatis3_轻松入门_3

MyBatis3

博文目录

    ?联结查询的引出及实体类设计一对多关系中,通过一去找多一对多关系中,通过多去找一

?联结查询

表结构是这样的:
t_user:用户表,id,username,password
t_todo:用户要做的事情表,id,todo

一个用户可以有多个要做的事情,一个todo只属于一个用户:
t_user----t_todo
one to many的关系

建立对应的POJO:
User.java

?

?

?

?resultType仍然是User
resultMap="userMap"是什么意思呢?
他的作用就是帮助我们把我们查出的uid,username,等等数据装到user对象中。userMap是需要我们自己配置的,根据查询语句的不同就有不同的resultMap。
userMap的配置如下:仍然是在UserMapper.xml中配置

?

?

?

?第一行的id对应上面的userMap
resultMap标签内有下面的一些配置:

id,表示User实体类中配置的id,property的值对应User实体类中的变量id,column的值对应上面的SQL语句中查询结果显示的值(t_user.id as uid中的uid);

result,配置的是一般的属性:property对应实体类中的变量,column对应查询语句中的列名(如果有别名对应别名)

collection,表示我们配置的关联的内容,这里面用来存放我们SQL语句查出来的内容非User对象普通变量(例如:todo,tid),collection标签的property对应User类中的变量todoList,ofType="Todo"表示查出的每一条记录应该装到哪里!我们查出的是todo当然要装到Todo对象中!
注意:我们要在我们的原配置文件:mybatis.xml中添加一个别名认证:

?collection标签下的内容类似resultMap下的普通配置了:

id,对应Todo中的id,SQL语句中的tid
Todo中的userId对应我们的uid,如果SQL中查了表中的user_id,应该对应user_id的,不过结果是一样的!!!
Todo中的User user不用配置了!因为我们本身就是用user来获取todo的!

最后在我们的接口类UserMapper中添加方法:

?

?UserMapper.java中添加方法:

UserMapper userMapper=session.getMapper(UserMapper.class);Todo todo=userMapper.findInfoByTid(3);System.out.println(todo.getUserId());

?

?

?

?

热点排行