mybatis 取list第一个_Mybatis(五)- 多对一
步驟1:先運行,看到效果,再學習步驟2:模仿和排錯步驟3:多對一關系步驟4:學習之前先看效果步驟5:修改Product.java步驟6:Product.xml步驟7:mybatis-config.xml步驟8:TestMybatis步驟9:可運行的項目步驟10:練習-修改多對一關系步驟11:答案-修改多對一關系
步驟 1 : 先運行,看到效果,再學習
老規矩,先下載下載區(點擊進入)的可運行項目,配置運行起來,確認可用之后,再學習做了哪些步驟以達到這樣的效果。步驟 2 : 模仿和排錯
在確??蛇\行項目能夠正確無誤地運行之后,再嚴格照著教程的步驟,對代碼模仿一遍。
模仿過程難免代碼有出入,導致無法得到期望的運行結果,此時此刻通過比較正確答案 ( 可運行項目 ) 和自己的代碼,來定位問題所在。
采用這種方式,學習有效果,排錯有效率,可以較為明顯地提升學習速度,跨過學習路上的各個檻。
推薦使用diffmerge軟件,進行文件夾比較。把你自己做的項目文件夾,和我的可運行項目文件夾進行比較。
這個軟件很牛逼的,可以知道文件夾里哪兩個文件不對,并且很明顯地標記出來
這里提供了綠色安裝和使用教程:diffmerge 下載和使用教程步驟 3 : 多對一關系
本知識點建立在一對多的基礎上講解多對一關系步驟 4 : 學習之前先看效果
這是多對一查詢效果,查詢出所有的產品,同時對于每個產品,還能看到其所對應的分類
步驟 5 : 修改Product.java
為Product增加category屬性package com.how2java.pojo;public class Product {private int id;private String name;private float price;private Category category;public Category getCategory() {return category;}public void setCategory(Category category) {this.category = category;}public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public float getPrice() {return price;}public void setPrice(float price) {this.price = price;}@Overridepublic String toString() {return "Product [id=" + id + ", name=" + name + ", price=" + price + "]";}}步驟 6 : Product.xml
提供Product.xml,通過listProduct配置關聯查詢的sql語句。
然后通過resultMap ,進行字段和屬性的對應。
使用association 進行多對一關系關聯,指定表字段名稱與對象屬性名稱的一一對應關系注: Category的id 字段 和Product的id字段同名,Mybatis不知道誰是誰的,所以需要通過取別名cid,pid來區分。
name字段同理。<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.how2java.pojo"><resultMap type="Product" id="productBean"><id column="pid" property="id" /><result column="pname" property="name" /><result column="price" property="price" /><!-- 多對一的關系 --><!-- property: 指的是屬性名稱, javaType:指的是屬性的類型 --><association property="category" javaType="Category"><id column="cid" property="id"/><result column="cname" property="name"/></association></resultMap><!-- 根據id查詢Product, 關聯將Orders查詢出來 --><select id="listProduct" resultMap="productBean">select c.*, p.*, c.id 'cid', p.id 'pid', c.name 'cname', p.name 'pname' from category_ c left join product_ p on c.id = p.cid</select> </mapper>步驟 7 : mybatis-config.xml
在mybatis-config.xml中增加對于Product.xml的映射<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration><typeAliases><package name="com.how2java.pojo"/></typeAliases><environments default="development"><environment id="development"><transactionManager type="JDBC"/><dataSource type="POOLED"><property name="driver" value="com.mysql.jdbc.Driver"/><property name="url" value="jdbc:mysql://localhost:3306/how2java?characterEncoding=UTF-8"/><property name="username" value="root"/><property name="password" value="admin"/></dataSource></environment></environments><mappers><mapper resource="com/how2java/pojo/Category.xml"/><mapper resource="com/how2java/pojo/Product.xml"/></mappers></configuration>步驟 8 : TestMybatis
package com.how2java;import java.io.IOException;import java.io.InputStream;import java.util.List;import org.apache.ibatis.io.Resources;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder;import com.how2java.pojo.Product;public class TestMybatis {public static void main(String[] args) throws IOException {String resource = "mybatis-config.xml";InputStream inputStream = Resources.getResourceAsStream(resource);SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);SqlSession session = sqlSessionFactory.openSession();List<Product> ps = session.selectList("listProduct");for (Product p : ps) {System.out.println(p+" 對應的分類是 t "+ p.getCategory());}session.commit();session.close();}}步驟 9 : 可運行的項目
在下載區(點擊進入)有本知識點對應的可運行項目下載
更多內容,點擊了解: https://how2j.cn/k/mybatis/mybatis-many-to-one/1090.html
總結
以上是生活随笔為你收集整理的mybatis 取list第一个_Mybatis(五)- 多对一的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 永劫无间手游武器耐久度恢复道具介绍
- 下一篇: 三维点云可以导航吗_基于视觉高精定位的“