簡體   English   中英

從mybatis選擇中獲取不同java對象的多個值

[英]getting multiple value for different java object from mybatis select

我試圖執行一個查詢,該查詢從數據庫返回與2個表名稱user和device相關的數據。我以以下方式使用了mybatis:

<resultMap id="userMap" type="com.motilink.server.User">
    <result property="company" column="USER_COMPANY" />
</resultMap>

<resultMap id="deviceMap" type="com.motilink.server.Device">
    <result property="deviceId" column="DEVICE_ID" />
    <result property="userId" column="USER_ID" />
</resultMap>

<select id="selectDeviceUser" resultMap="userMap,deviceMap">

    select device.deviceId
    as DEVICE_ID,
    user.company
    USER_COMPANY,
    device.userId as USER_ID from
    device,user where user.id =
    device.userId

</select>

當我嘗試從java中訪問對象值時,我無法獲取值,只能獲取放置在最前面的resultMap(userMap)值。 請告訴我我在做什么錯。

訪問結果圖的代碼:

        SqlSession session = MyBatisSqlSessionFactory.getSqlSessionFactory()
            .openSession();
    List<User> urs = (List<User>) session.selectList("selectDeviceUser",
            null);
    for (User u : urs) {
        System.out.println("Company: " + u.getCompany());
    }

    // List<Device> devices = (List<Device>) session.selectList(
    // "selectDeviceUser", null);
    // for (Device d : devices) {
    // System.out.println("Device ID: " + d.getDeviceId());
    // }

您可以設置resultType="hashmap" ,然后您的結果將是List<HashMap<String, Object>> result; 您可以通過result.get("DEVICE_ID"), result.get("USER_COMPANY") etc.訪問字段result.get("DEVICE_ID"), result.get("USER_COMPANY") etc.

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM