ibatis和java中如何处理多表的sql映射

Kib*_*gon 3 java ibatis

我正在尝试将 Ibatis 与 GWT 一起使用,我有这个场景,我有数据库表机场、航站楼和航班。一个机场可以有不同的航站楼。一个航站楼可以有一个机场和多个航班。一个航班可以有一个航站楼。所以表结构看起来像这样。

机场 -id -name -terminal_id

航站楼 -id -name -flight_id

航班 -id -airline -terminal_id

我的选择语句看起来像这样

SELECT airport.name AS Airport,
       terminals.name AS Terminal,
       flights.airline,
FROM airport,
     terminals,
     flights
WHERE airport.terminal_id = terminals.id
  AND terminals.flight_id = flights.id;
Run Code Online (Sandbox Code Playgroud)

得到这个结果的 sql 映射是什么样的。我感到困惑的是结果集是表的组合,因此结果集不是三个表中任何一个的模型对象。

zaw*_*tut 5

创建一个自定义值对象(vo)以满足您的需要。

<sqlMap namespace="Arrival">
<resultMap id="Arrival" class="com.flight.vo.Arrival">
    <result property="airport" column="Airport" />
    <result property="terminal" column="Terminal" />
    <result property="airline" column="airline"/>
</resultMap>

<select id="retrieveAllArrivals" resultMap="Arrival.Arrival" >
    select airport.name as Airport, terminals.name as Terminal, flights.airline
    FROM airport, terminals, flights 
    WHERE airport.terminal_id = terminals.id 
    AND terminals.flight_id = flights.id
</select>
</sqlMap>
Run Code Online (Sandbox Code Playgroud)