使用mybatis,進(jìn)行多表聯(lián)合查詢

使用mybatis,進(jìn)行多表聯(lián)合查詢

在配置文件中添加讀取properties文件

添加日志

添加多個映射(mapper)

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>

    <properties resource="db.properties" />
<settings>
        <setting name="logImpl" value="STDOUT_LOGGING"/>
    </settings>

    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="${driver}"/>
                <property name="url" value="${url}"/>
                <property name="username" value="${user}"/>
                <property name="password" value="${pass}"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="com/qfedu/mapper/OrderMapper.xml"/>
        <mapper resource="com/qfedu/mapper/UserMapper.xml"/>
    </mappers>
</configuration>

mapper配置文件設(shè)置返回類型為resultMap,會根據(jù)下面的標(biāo)簽填值

在resuletMap標(biāo)簽中

  1. id代表主鍵,分別設(shè)置屬性(property)、數(shù)據(jù)庫列(column)對應(yīng)關(guān)系
  2. result代表普通字段映射,如果字段名和屬性名一致,可以省略
  3. association關(guān)聯(lián),只要對一關(guān)系都可以使用

property代表order類中的u(用于儲存另一個表查詢后的數(shù)據(jù)),column代表order數(shù)據(jù)庫表的uid字段(兩表之間的聯(lián)系)

select:另一個xml的namespace和id

OrderMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.qfedu.pojo.OrderMapper">
    
    <select id="getOrderByOid" resultMap="orderMap">
      select * from orders where oid = #{oid}
    </select>
    
    <resultMap id="orderMap" type="com.qfedu.pojo.Order">
    <id property="oid" column="oid" ></id>
    <result column="price" property="price" />
        <result column="addr" property="addr" />
        <result column="payType" property="payType" />
        <association property="u" column="uid" select="com.qfedu.pojo.UserMapper.getUserByUid"></association>
        </resultMap>
</mapper>

UserMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
        <mapper namespace="com.qfedu.pojo.UserMapper">
    
    <select id="getUserByUid" resultType="com.qfedu.pojo.User">
      select * from users where uid = #{uid}
    </select>
</mapper>

order.java

public class Order {

    private String oid;
    private double price;
    private String addr;
    private String payType;
    private User u;
    private List<Detail> details;

    @Override
    public String toString() {
        return "Order{" +
                "oid='" + oid + '\'' +
                ", price=" + price +
                ", addr='" + addr + '\'' +
                ", payType='" + payType + '\'' +
                ", u=" + u +
                ", details=" + details +
                '}';
    }

    public String getOid() {
        return oid;
    }

    public void setOid(String oid) {
        this.oid = oid;
    }

    public double getPrice() {
        return price;
    }

    public void setPrice(double price) {
        this.price = price;
    }

    public String getAddr() {
        return addr;
    }

    public void setAddr(String addr) {
        this.addr = addr;
    }

    public String getPayType() {
        return payType;
    }

    public void setPayType(String payType) {
        this.payType = payType;
    }

    public User getU() {
        return u;
    }

    public void setU(User u) {
        this.u = u;
    }

    public List<Detail> getDetails() {
        return details;
    }

    public void setDetails(List<Detail> details) {
        this.details = details;
    }
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容