java类集移动应用开发专业前景中一对多和多对多的关系的实现

一对多与多对多的问题与建实体类的问题
[问题点数:40分,结帖人lxm_yl]
本版专家分:318
结帖率 100%
CSDN今日推荐
本版专家分:1793
本版专家分:53927
2011年5月 Java大版内专家分月排行榜第二2011年3月 Java大版内专家分月排行榜第二2010年11月 Java大版内专家分月排行榜第二2010年10月 Java大版内专家分月排行榜第二
2012年2月 Java大版内专家分月排行榜第三2011年8月 Java大版内专家分月排行榜第三2011年6月 Java大版内专家分月排行榜第三2011年4月 Java大版内专家分月排行榜第三2010年12月 Java大版内专家分月排行榜第三
匿名用户不能发表回复!|
其他相关推荐java基础笔试题(答案已整理)_百度文库
您的浏览器Javascript被禁用,需开启后体验完整功能,
享专业文档下载特权
&赠共享文档下载特权
&10W篇文档免费专享
&每天抽奖多种福利
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
java基础笔试题(答案已整理)
&&java基础面试题,附答案,基本上都问这些。
阅读已结束,下载本文需要
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,同时保存到云知识,更方便管理
加入VIP
还剩5页未读,
定制HR最喜欢的简历
你可能喜欢我的定位:中高级人才(框架熟练、Java语法精通、数据库会用、Linux会用、中间件会用)...
Java类集 _范例讲解:多对多关系
一个学生可以选多门课程, 门课程可以有多个学生参加,那么这就是一个典型的多对多关系。
要完成本程序,首先应该定义两个类:学生信息类Student、课程信息类Course,在一个学生类中存在一个集合,保存全部的课程,而在课程类中也要存在一个集合,保存全部的学生。
实例主要采用的知识
1、List 集合
2、引用传递
3、Iteratro
import java.util.L
import java.util.ArrayL
public class Student{
private List&Course& allC
public Student(){
this.allCourses = new ArrayList&Course&() ;
public Student(String name,int age){
this.name =
this.age =
public List&Course& getAllCourses(){
return this.allC
public void setName(String name){
this.name =
public void setAge(int age){
this.age =
public String getName(){
return this.
public int getAge(){
return this.
public String toString(){
return "学生姓名:" + this.name + ";年龄:" + this.
};课程类:
import java.util.L
import java.util.ArrayL
public class Course{
private List&Student& allS
public Course(){
this.allStudents = new ArrayList&Student&() ;
public Course(String name,int credit){
this.name =
this.credit =
public List&Student& getAllStudents(){
return this.allS
public void setName(String name){
this.name =
public void setCredit(int credit){
this.credit =
public String getName(){
return this.
public int getCredit(){
return this.
public String toString(){
return "课程名称:" + this.name + ";课程学分:" + this.
};关系测试类:
import java.util.I
public class TestMore{
public static void main(String args[]){
Course c1 = new Course("英语",3 ) ; // 第一门课程
Course c2 = new Course("计算机",5) ; // 第二门课程
Student s1 = new Student("张三",20) ;
Student s2 = new Student("李四",21) ;
Student s3 = new Student("王五",22) ;
Student s4 = new Student("赵六",23) ;
Student s5 = new Student("孙七",24) ;
Student s6 = new Student("钱八",24) ;
// 第一门课程有三个学生参加
c1.getAllStudents().add(s1) ;
c1.getAllStudents().add(s2) ;
c1.getAllStudents().add(s6) ;
s1.getAllCourses().add(c1) ;
s2.getAllCourses().add(c1) ;
s6.getAllCourses().add(c1) ;
// 第二门课程有六个学生参加
c2.getAllStudents().add(s1) ;
c2.getAllStudents().add(s2) ;
c2.getAllStudents().add(s3) ;
c2.getAllStudents().add(s4) ;
c2.getAllStudents().add(s5) ;
c2.getAllStudents().add(s6) ;
s1.getAllCourses().add(c2) ;
s2.getAllCourses().add(c2) ;
s3.getAllCourses().add(c2) ;
s4.getAllCourses().add(c2) ;
s5.getAllCourses().add(c2) ;
s6.getAllCourses().add(c2) ;
// 输出一门课程的信息,观察一门课程有多少个学生参加\
System.out.println(c1) ;
Iterator&Student& iter1 = c1.getAllStudents().iterator() ;
while(iter1.hasNext()){
Student s = iter1.next() ;
System.out.println("\t|- " + s) ;
// 通过学生找到学生参加的课程
System.out.println(s6) ;
Iterator&Course& iter2 = s6.getAllCourses().iterator() ;
while(iter2.hasNext()){
Course c = iter2.next() ;
System.out.println("\t|- " + c) ;
多对多关系只是在这种单独类,这样的类可以表示成实体类。只是在这上面设置的关系。
没有更多推荐了,java中如何在map中实现一对多的关系?_百度知道
java中如何在map中实现一对多的关系?
假设这样定义:Map coll=new HashMap();coll.put(1,&a&);coll.put(1,&b&);比如说1代表学校,a和b分别代表学院,即一个学校可对应多个学院。1、可以使用Map&Integer, List&格式来达到一对多的关系2、key值可以为一个整型数,作为一个类似ID主键来使用,value值可以用List集合来保存多条数据。3、这样就达到了一个key,对应多条记录。
采纳率:100%
为您推荐:
其他类似问题
您可能关注的内容
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。jpa 双向一对多,多对一关联关系
双向一对多
Order.java
package com.morris.
import java.util.S
import javax.persistence.CascadeT
import javax.persistence.C
import javax.persistence.E
import javax.persistence.FetchT
import javax.persistence.Id;
import javax.persistence.OneToM
import javax.persistence.T
@Table(name="orders")
public class Order {
@Column(name="order_id",length=32)
private String orderId;
@Column(name="order_name",length=50)
private String orderN
* OneToMany:一对多的配置
* mappedBy="order":指定由多的一方的order属性维护关联关系
@OneToMany(cascade={CascadeType.REFRESH,CascadeType.MERGE,CascadeType.REMOVE,CascadeType.PERSIST},fetch=FetchType.LAZY,mappedBy="order")
private Set orderI
public Order(String orderId, String orderName, Set orderItems) {
this.orderId = orderId;
this.orderName = orderN
this.orderItems = orderI
public Set getOrderItems() {
return orderI
public void setOrderItems(Set orderItems) {
this.orderItems = orderI
public Order() {
// TODO Auto-generated constructor stub
public Order(String orderId, String orderName) {
this.orderId = orderId;
this.orderName = orderN
public String toString() {
return "Order [orderId=" + orderId + ", orderName=" + orderName + "]";
public String getOrderId() {
return orderId;
public void setOrderId(String orderId) {
this.orderId = orderId;
public String getOrderName() {
return orderN
public void setOrderName(String orderName) {
this.orderName = orderN
双向多对一
OrderItem.java
package com.morris.
import javax.persistence.CascadeT
import javax.persistence.C
import javax.persistence.E
import javax.persistence.FetchT
import javax.persistence.GeneratedV
import javax.persistence.Id;
import javax.persistence.JoinC
import javax.persistence.ManyToO
import javax.persistence.T
@Table(name="order_item")
public class OrderItem {
@GeneratedValue
@Column(name="order_item_id")
private Integer orderItemId;
@Column(name="product_name",length=50,nullable=false)
private String productN
@Column(name="product_price",nullable=false)
private Double productP
* ManyToOne:多对一的配置
* cascade(级联):all(所有),merge(更新),refresh(查询),persistence(保存),remove(删除)
* fetch: eager:立即加载
one的一方默认是立即加载
lazy:懒加载
many的一方默认是懒加载
* optional:是否可选,外键是否允许为空
* JoinColumn:指定外键名
@ManyToOne(cascade={CascadeType.MERGE,CascadeType.REFRESH},fetch=FetchType.EAGER,optional=false)
@JoinColumn(name="order_id")
public OrderItem() {
// TODO Auto-generated constructor stub
public String toString() {
return "OrderItem [orderItemId=" + orderItemId + ", productName="
+ productName + ", productPrice=" + productPrice + ", order="
+ order + "]";
public Integer getOrderItemId() {
return orderItemId;
public void setOrderItemId(Integer orderItemId) {
this.orderItemId = orderItemId;
public String getProductName() {
return productN
public void setProductName(String productName) {
this.productName = productN
public Double getProductPrice() {
return productP
public void setProductPrice(Double productPrice) {
this.productPrice = productP
public Order getOrder() {
public void setOrder(Order order) {
this.order =
public OrderItem(String productName,
Double productPrice) {
this.productName = productN
this.productPrice = productP
One2ManyTest.java
package com.morris.
import java.util.HashS
import java.util.S
import java.util.UUID;
import javax.persistence.EntityM
import javax.persistence.EntityManagerF
import javax.persistence.P
import org.junit.AfterC
import org.junit.BeforeC
import org.junit.T
import com.morris.entity.O
import com.morris.entity.OrderI
public class One2ManyTest {
private static EntityManagerF
private static EntityM
@BeforeClass
public static void setUpBeforeClass() throws Exception {
factory = Persistence.createEntityManagerFactory("jpaDemo");
manager = factory.createEntityManager();
manager.getTransaction().begin();
public void test() {
Order order = new Order(UUID.randomUUID().toString(), "体育商品订单");
OrderItem orderItem1 = new OrderItem("足球",120.0);
OrderItem orderItem2 = new OrderItem("篮球",66.0);
OrderItem orderItem3 = new OrderItem("羽毛球",118.0);
//一定要设置这个,因为orderItem负责维护关联关系
orderItem1.setOrder(order);
orderItem2.setOrder(order);
orderItem3.setOrder(order);
Set set = new HashSet();
set.add(orderItem1);
set.add(orderItem2);
set.add(orderItem3);
order.setOrderItems(set);
manager.persist(order);
@AfterClass
public static void setUpAfterClass() throws Exception {
manager.getTransaction().commit();
manager.close();
factory.close();}

我要回帖

更多关于 java培训班4个月有用吗 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信