表1:student
字段:id name age表2:book
字段:id student_id bookname表3:grade
字段:id student_id math_grade phy_gradestudentbean{ private String id,
private String name,
private List<String> booknames,
private List<gradebean> grades}bookbean{
private int math_grade,
private int phy_grade
}其中,表2,表3通过各自student_id,关联表1,表1中一条记录,可能在表2和3有0到多条记录,如何实现将数据库中的这3个表的数据查询封装到一个 元素类型为studentbean的list中?采用什么样的实现方式性能可能更高一些?(采用ibatis)
字段:id name age表2:book
字段:id student_id bookname表3:grade
字段:id student_id math_grade phy_gradestudentbean{ private String id,
private String name,
private List<String> booknames,
private List<gradebean> grades}bookbean{
private int math_grade,
private int phy_grade
}其中,表2,表3通过各自student_id,关联表1,表1中一条记录,可能在表2和3有0到多条记录,如何实现将数据库中的这3个表的数据查询封装到一个 元素类型为studentbean的list中?采用什么样的实现方式性能可能更高一些?(采用ibatis)
<resultMap class="studentBean" id="studentBeanMap">
<result property="id" column="id" nullValue="0" />
<result property="name" column="name" nullValue="" />
<result property="booknames" column="id" select="getBookNameInfo" />
<result property="grades" column="id" select="getGradesInfo" />
</resultMap>
<!--你的主查询 -->
<select id="getStudentInfo" parameterClass="" resultMap="studentBeanMap">
select id, name ,age form student
</select>
<!-- 查询book info -->
<select id="getBookNameInfo" parameterClass="long" resultMap="bookBeanMap">
select * from bookinfo where studentid=#id#
</select>
好啦。。这样就可以了,,楼主看看吧...
比如查出某个学生的信息, student list<book> list<grede> 然后直接放进studentBean
但是需要引入cglib-nodep-2.2.2.jar 这个包
我就是这么实现的
-对于这个问题, 你只要把程序的DEBUG日志打出来, 看哈程序执行过程中的SQL不就一清二楚了吗? 要有探索精神哦,楼主...