ibatis结果集resultMap中select属性的用法
来源:网络收集 点击: 时间:2025-12-31ibatis中,可以通过设置结果集select属性的方法,达到查询一对多的目的,比如为查询处一个实体类,该实体类中包含一个list,那么此时就需要用到以上方式进行查询,具体步骤如下。
为了展示该查询方式,首先创建两张表;第一张表为学生信息表student,如下进行创建;

在student表中录入基础数据。

创建score表,反映学生考试科目及成绩,如下进行创建。

在score中录入基础数据,语数外三门科目成绩,如下进行录入。可以借助mysql可视化工具SQLyog进行快速录入。

在开发工具IDEA中创建一个简单java项目,如下图结构进行创建,其中,还需要导入ibatis的基础包,以及mysql的驱动包即可。

创建实体类Student,包含表中字段,对查询student表数据进行接收;其中如图中红框展示scoreList,用于存储该学生下三个科目成绩。

创建实体类Score,用于接收score表中查询数据。

创建ibatis读取sql的xml配置文件,该文件内容即是利用结果集select属性解决查询一对多的关键。如下图所示,结果集result标签中包含一个select属性,该属性传入一个查询sql的id即可在生成该结果集的时候,去调用该id的查询sql。

传入的column属性,即传入联查sql的参数,如上图,对应getScore的参数,注意,select属性中的id必须添加sqlMap的命名空间,否则会报找不到getScore的错误。
完成sqlmap的xml配置后,需要将该xml配置引入到ibatis的系统配置文件sqlMapConfig.xml中,如下图所示

以上完成后,ibatis 的配置就完成了,那么还需要一个测试类进行测试,可以按照如下的方式,在idea中直接运行main方法。

采用debug的方式运行main,可以断点运行得到如下结果,可以看到,studentList结果集中,包含了scoreLIst的数据,这样,通过select属性就可以相对简单单的联查一对多数据;而不必用for循环,循环录入该list了。
版权声明:
1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。
2、本站仅提供信息发布平台,不承担相关法律责任。
3、若侵犯您的版权或隐私,请联系本站管理员删除。
4、文章链接:http://www.ff371.cn/art_1296382.html
订阅