mybatis 取list第一个_Mybatis(五)- 多对一
步驟1:先運(yùn)行,看到效果,再學(xué)習(xí)步驟2:模仿和排錯(cuò)步驟3:多對(duì)一關(guān)系步驟4:學(xué)習(xí)之前先看效果步驟5:修改Product.java步驟6:Product.xml步驟7:mybatis-config.xml步驟8:TestMybatis步驟9:可運(yùn)行的項(xiàng)目步驟10:練習(xí)-修改多對(duì)一關(guān)系步驟11:答案-修改多對(duì)一關(guān)系
步驟 1 : 先運(yùn)行,看到效果,再學(xué)習(xí)
老規(guī)矩,先下載下載區(qū)(點(diǎn)擊進(jìn)入)的可運(yùn)行項(xiàng)目,配置運(yùn)行起來(lái),確認(rèn)可用之后,再學(xué)習(xí)做了哪些步驟以達(dá)到這樣的效果。步驟 2 : 模仿和排錯(cuò)
在確保可運(yùn)行項(xiàng)目能夠正確無(wú)誤地運(yùn)行之后,再?lài)?yán)格照著教程的步驟,對(duì)代碼模仿一遍。
模仿過(guò)程難免代碼有出入,導(dǎo)致無(wú)法得到期望的運(yùn)行結(jié)果,此時(shí)此刻通過(guò)比較正確答案 ( 可運(yùn)行項(xiàng)目 ) 和自己的代碼,來(lái)定位問(wèn)題所在。
采用這種方式,學(xué)習(xí)有效果,排錯(cuò)有效率,可以較為明顯地提升學(xué)習(xí)速度,跨過(guò)學(xué)習(xí)路上的各個(gè)檻。
推薦使用diffmerge軟件,進(jìn)行文件夾比較。把你自己做的項(xiàng)目文件夾,和我的可運(yùn)行項(xiàng)目文件夾進(jìn)行比較。
這個(gè)軟件很牛逼的,可以知道文件夾里哪兩個(gè)文件不對(duì),并且很明顯地標(biāo)記出來(lái)
這里提供了綠色安裝和使用教程:diffmerge 下載和使用教程步驟 3 : 多對(duì)一關(guān)系
本知識(shí)點(diǎn)建立在一對(duì)多的基礎(chǔ)上講解多對(duì)一關(guān)系步驟 4 : 學(xué)習(xí)之前先看效果
這是多對(duì)一查詢(xún)效果,查詢(xún)出所有的產(chǎn)品,同時(shí)對(duì)于每個(gè)產(chǎn)品,還能看到其所對(duì)應(yīng)的分類(lèi)
步驟 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,通過(guò)listProduct配置關(guān)聯(lián)查詢(xún)的sql語(yǔ)句。
然后通過(guò)resultMap ,進(jìn)行字段和屬性的對(duì)應(yīng)。
使用association 進(jìn)行多對(duì)一關(guān)系關(guān)聯(lián),指定表字段名稱(chēng)與對(duì)象屬性名稱(chēng)的一一對(duì)應(yīng)關(guān)系注: Category的id 字段 和Product的id字段同名,Mybatis不知道誰(shuí)是誰(shuí)的,所以需要通過(guò)取別名cid,pid來(lái)區(qū)分。
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" /><!-- 多對(duì)一的關(guān)系 --><!-- property: 指的是屬性名稱(chēng), javaType:指的是屬性的類(lèi)型 --><association property="category" javaType="Category"><id column="cid" property="id"/><result column="cname" property="name"/></association></resultMap><!-- 根據(jù)id查詢(xún)Product, 關(guān)聯(lián)將Orders查詢(xún)出來(lái) --><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中增加對(duì)于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+" 對(duì)應(yīng)的分類(lèi)是 t "+ p.getCategory());}session.commit();session.close();}}步驟 9 : 可運(yùn)行的項(xiàng)目
在下載區(qū)(點(diǎn)擊進(jìn)入)有本知識(shí)點(diǎn)對(duì)應(yīng)的可運(yùn)行項(xiàng)目下載
更多內(nèi)容,點(diǎn)擊了解: https://how2j.cn/k/mybatis/mybatis-many-to-one/1090.html
總結(jié)
以上是生活随笔為你收集整理的mybatis 取list第一个_Mybatis(五)- 多对一的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 永劫无间手游武器耐久度恢复道具介绍
- 下一篇: 三维点云可以导航吗_基于视觉高精定位的“