Springboot Data JPA ใช้แบบสอบถามตารางสหสัมพันธ์แบบหนึ่งต่อหลาย ๆ
สภาพแวดล้อมการพัฒนา
ข้อกำหนดการทำงาน
ผ่านความสัมพันธ์ของสมาคมร้านค้าผลิตภัณฑ์ทั้งหมดในร้านจะถูกค้นหา ร้านค้าเป็นหนึ่งในหลาย ๆ ผลิตภัณฑ์และผลิตภัณฑ์มีมากมายสำหรับร้านค้า ร้านค้าคีย์ต่างประเทศมีอยู่หลายฝั่ง ใช้คำสั่งการเชื่อมต่อภายในของฐานข้อมูล
โครงสร้างตาราง
tb_shop
tb_store
ระดับเอนทิตีดำเนินการโดยคำอธิบายประกอบ
1. ร้านค้าชั้นเรียน java
แพ็คเกจ com.gaolei.entity; นำเข้า javax.persistence.*; นำเข้า java.util.hashset; นำเข้า java.util.set;/*** สร้างโดย Gaolei เมื่อปี 2018/6/25 */ @entity @table (name = "tb_store") ร้านค้าชั้นเรียนสาธารณะ {@id @GeneratedValue (กลยุทธ์ = GenerationType.identity) ID INTEGER ส่วนตัว; // หมายเลขร้านค้าชื่อสตริงส่วนตัว; // ร้านค้าชื่อสตริงส่วนตัว; // ร้านค้าที่อยู่ส่วนตัว ร้านค้า = ใหม่ hashset <hop> (); // ละเว้นวิธีการตั้งค่า () และรับ ();} หมวดหมู่ผลิตภัณฑ์ร้านค้า. java
แพ็คเกจ com.gaolei.entity; นำเข้า javax.persistence.*; นำเข้า java.util.hashset; นำเข้า java.util.set;/*** สร้างโดย Gaolei เมื่อปี 2018/6/25 */ @entity @table (name = "tb_shop") ร้านค้าชั้นเรียนสาธารณะ {@id @GeneratedValue (Strategy = GenerationType.identity) ID จำนวนเต็มส่วนตัว; // รหัสผลิตภัณฑ์ชื่อสตริงส่วนตัว; // ชื่อผลิตภัณฑ์ส่วนตัวราคา int; // ราคาสินค้าส่วนตัว int จำนวน int num; // ปริมาณสินค้าสตริงส่วนตัวข้อมูล; // ข้อมูลผลิตภัณฑ์ @ManytoOne @Joincolumn (name = "store_id") // ร้านค้าส่วนตัวคีย์ // omit set () และรับ () วิธีการ;} storedao.java
อินเทอร์เฟซ crudrepository สืบทอดมาจากส่วนต่อประสานที่เก็บและได้เพิ่มวิธีการง่าย ๆ เช่นการเพิ่มการลบและการตรวจสอบ มีหลายวิธีที่ได้รับการห่อหุ้ม ฉันจะไม่ร่างที่นี่ ฉันจะใช้ Baidu เพื่อดำเนินการที่ซับซ้อนที่นี่ผ่านคำสั่ง HQL ที่กำหนดเอง
แพ็คเกจ com.gaolei.dao; นำเข้า com.gaolei.entity.store; นำเข้า org.springframework.data.jpa.repository.query; นำเข้า org.springframework.data.Repository.Repository; java.util.list;/*** สร้างโดย Gaolei เมื่อปี 2018/6/25 */@repositoryPublic Interface storedao ขยาย crudrepository <store, integer> {// วิธีการค้นหาผลิตภัณฑ์ทั้งหมดใน store id =? ผ่านการเชื่อมต่อแบบอินไลน์ @Query ("เลือกที่แตกต่าง S จากร้านค้าภายใน S.Shops ที่ s.id =? 1") รายการ <store> findByShopList (ID จำนวนเต็ม);} storeservice.java
ใช้วิธีการโดยการฉีด storedao โดย @autowired
แพ็คเกจ com.gaolei.service; นำเข้า com.gaolei.dao.storedao; นำเข้า com.gaolei.entity.shop; นำเข้า com.gaolei.entity.store; นำเข้า org.springframework.beans.factory.annotation.Autowired; org.springframework.transaction.annotation.transactional; นำเข้า java.util.list;/*** สร้างโดย Gaolei เมื่อปี 2018/6/25 */@controller@transactionalpublic storeservice {@autowired ส่วนตัว storedao storedao; / *** Display Store Products**/ Public List <Sore> FindByShopList (ID จำนวนเต็ม) {return storedao.findbyshoplist (ID); - storeAction.java
ใช้การดำเนินการข้อมูลเฉพาะ
แพ็คเกจ com.gaolei.action; นำเข้า com.gaolei.entity.shop; นำเข้า com.gaolei.entity.store; นำเข้า com.gaolei.service.shopservice; นำเข้า com.gaolei.service.storeservice; นำเข้า org.springframework.beans.beans. org.springframework.stereotype.controller; นำเข้า org.springframework.ui.model; นำเข้า org.springframework.web.bind.annotation.requestmapping; นำเข้า java.util.arraylist; นำเข้า java.util.list;/*** สร้างโดย Gaolei เมื่อปี 2018/6/26 */@Controller@RequestMapping ("/store") ชั้นเรียนสาธารณะ storeAction {@AutoWired Storeservice Storeservice; / *** store_shop_menu แสดงผลิตภัณฑ์ร้านค้า**/ @requestmapping ("showshop") สตริงสาธารณะ showshop (httpservletResponse response, httpservletRequest คำขอโมเดล) {string id = request.getParameter ("store_id"); // รับร้านค้าด้วย id =? ผ่านคำสั่ง HQL และรับผลิตภัณฑ์ทั้งหมดภายใต้รายการร้านค้า <store> list = storeservice.findbyshoplist (integer.valueof (id)); // The Returned เป็นคอลเล็กชั่นร้านค้าชั้นเรียนร้านค้าและชั้นเรียนร้านค้าเป็นแบบหนึ่งต่อหลายคนและร้านค้าภายใต้ร้านค้าคือรายการ <hop> รายการ <hop> shoplist = new ArrayList <CHOP> (); // Cycling Traversal เพื่อรับแต่ละร้านเพิ่มลงในรายการใหม่ <Shop> ซึ่งใช้เพื่อแสดงข้อมูลในเบื้องหน้า สำหรับ (ร้านค้าร้านค้า: รายการ) {system.out.println (store.getName ()); สำหรับ (ร้านค้าร้านค้า: store.getShops ()) {system.out.println (shop.getName ()); Shoplist.add (ร้านค้า); }} model.addattribute ("list", Shoplist); return "admin/showshop"; -หน้าการเปลี่ยนเส้นทาง
ร้านค้าดู
จัดเก็บสินค้า
รหัสส่วนหน้าถูกละไว้และสิ่งสำคัญคือคำสั่งใน @Query ("******************") สามารถใช้เพื่อให้บรรลุการดำเนินการที่ซับซ้อนด้วยการเชื่อมต่อที่หลากหลายกับฐานข้อมูล
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น