ibatis结果集resultMap中select属性的用法
1、为了展示该查询方式,首先创建两张表;第一张表为学生信息表student,如下进行创建;
2、在student表中录入基础数据。
3、创建score表,反映学生考试科目及成绩,如下进行创建。
4、在score中录入基础数据,语数外三门科目成绩,如下进行录入。可以借助mysql可视化工具SQLyog进行快速录入。
5、在开发工具IDEA中创建一个简单java项目,如下图结构进行创建,其中,还需要导入ibatis的基础包,以及mysql的驱动包即可。
6、创建实体类Student,包含表中字段,对查询student表数据进行接收;其中如图中红框展示scoreList,用于存储该学生下三个科目成绩。
7、创建实体类Score,用于接收score表中查询数据。
8、创建ibatis读取sql的xml配置文件,该文件内容即是利用结果集select属性解决溽朽孑臾查询一对多的关键。如下图所示,结果集result标签中包含一个select属性,该属性传入一个查询sql的id即可在生成该结果集的时候,去调用该id的查询sql。
9、传入的column属性,即传入联查sql的参数,如上图,对应getScore的参数,注意,select属性中的id必须添加sqlMap的命名空间,否则会报找不到getScore的错误。
10、完成sqlmap的xml配置后,需要将该xml配置引入到ibatis的系统配置文件sqlMapConfig.xml中,如下图所示
11、以上完成后,ibatis 的配置就完成了,那么还需要一个测试类进行测试,可以按照如下的方式,在idea中直接运行main方法。
12、采用debug的方式运行main,可以断点运行得到如下结果,可以看到,studentList结果集中,包含了scoreLIst的数赍铈于脏据,这样,通过select属性就可以相对简单单的联查一对多数据;而不必用for循环,循环录入该list了。