数据表与简单java类——多对多映射

给定一张Meber和Product表,得到如下信息:

1.获取一个用户访问的所有商品信息

2.获取一个商品被哪些用户浏览过的信息

package Mapping_transformation;

class Meber
{
    private String name ;
    private int age ;
    private Product products[] ;           //一个人浏览多个商品
    public Meber(String name , int age)
    {
        this.name = name ;
        this.age = age ;
    }
    public void setProducts(Product products[] )
    {
        this.products = products ;
    }
    public Product[] getProducts()
    {
        return products ;
    }
    public String getInfo()
    {
        return "【用户信息】姓名:"+this.name + "年龄:"+this.age ;
    }
}
class Product
{
    private String name ;
    private double price ;
    private Meber mebers[] ;                    //一个商品被多个人浏览
    public Product(String name ,double price)
    {
        this.name = name ;
        this.price = price ;
    }
    public String getInfo()
    {
        return "【商品信息】名称:"+this.name + "价格:"+this.price ;
    }

    public void setMebers(Meber[] mebers) {
        this.mebers = mebers;
    }

    public Meber[] getMebers() {
        return mebers;
    }
}
public class Many_to_many {
    public static void main(String[] args) {
        //设置关系
        Meber meberA = new Meber("小兔子",35);                    //设置两个用户
        Meber meberB = new Meber("小白喵",20);
        Product proA = new Product("c++从入门到放弃",50.00);         //设置三个商品
        Product proB = new Product("java从入门到放弃",49.00);
        Product proC = new Product("C语言从入门到放弃",46.00);
        meberA.setProducts(new Product[]{proA,proB});            //设置用户浏览过的商品
        meberB.setProducts(new Product[]{proA,proC});
        proA.setMebers(new Meber[]{meberA});
        proB.setMebers(new  Meber[]{meberA,meberB});               //设置商品被浏览的用户
        proC.setMebers(new Meber[]{meberB});
     //获取数据
        System.out.println("-----------------根据用户查看浏览商品信息--------------------");
        System.out.println(meberA.getInfo());
        for(int i = 0 ; i<meberA.getProducts().length ;i++)
        {
            System.out.println("\t|-"+meberA.getProducts()[i].getInfo());
        }
        System.out.println("-----------------根据被浏览的商品查看用户--------------------");
        System.out.println(proA.getInfo());
        for(int i = 0 ; i< proA.getMebers().length ; i++)
        {
            System.out.println("\t|-"+proA.getMebers()[i].getInfo());
        }

    }
}
result:-----------------根据用户查看浏览商品信息--------------------
【用户信息】姓名:小兔子年龄:35
    |-【商品信息】名称:c++从入门到放弃价格:50.0
    |-【商品信息】名称:java从入门到放弃价格:49.0
-----------------根据被浏览的商品查看用户--------------------
【商品信息】名称:c++从入门到放弃价格:50.0
    |-【用户信息】姓名:小兔子年龄:35

原文地址:https://www.cnblogs.com/fairy-land/p/11965290.html

时间: 2024-09-29 08:24:52

数据表与简单java类——多对多映射的相关文章

数据表与简单java类——一对多映射

例如:给定一个分类表和子分类表 得到如下信息: 1.一个分类的完整信息: 2.根据分类获取其对应的子分类 package Mapping_transformation; class item { private long id ; private String title ; private subitem subitems[] ; //一个分类有多个子分类 public item(long id , String title) { this.id = id ; this.title = tit

数据表与简单java类映射

简单的Java类的定义来源于数据表的结构, 例如:雇员信息表.部门信息表描述的就是雇员或部门的信息, 在实际的开发之中,数据表和简单java类之间的映射关系如下: 1. 数据实体表设计 = 类的定义: 2.表中的字段 = 类的成员属性 : 3.表的一行记录 = 类的一个实例化对象 : 4.表的多行记录 = 对象数组 : 5.表的外键关联 = 引用关联 : 假设一个部门和雇员的表: 一个部门有多个雇员: 一个雇员属于一个部门: 一个雇员有一个领导: 下面将以上的数据表转为简单Java类的形式, 一

Java基础_3.5:简单Java类

简单Java类 简单Java类是一种在实际开发之中使用最多的类的定义形式,在简单Java类中包含有类.对象.构造方法.private封装等核心概念的使用,而对于简单Java类首先给出如下的基本开发要求: 类名称必须存在有意义,例如:Book.Emp: 类之中所有的属性必须private封装,封装后的属性必须提供有setter.getter: 类之中可以提供有任意多个构造方法,但是必须保留有一个无参构造方法: 类之中不允许出现任何的输出语句,所有信息输出必须交给被调用处输出: 类之中需要提供有一个

JAVA基础学习之路(四)定义简单java类

简单java类开发一般原则: 类名称必须有意义,再怎么说,要让人家看的明白吧 类之中所有属性必须使用private封装,并提供setter,getter方法 类之中可以有多个构造方法,但是必须保留有一个无参数构造方法 类之中不允许出现任何输出语句,所有输出必须交给被调用处 类之中需要有一个可以取得对象完整信息的方法,一般叫做getInfo(),返回String型数据 class Book { private String name; private int price; private int

java反射(四)--反射与简单java类

一.传统简单java类 简单的java类主要是由属性所组成,并且提供有相应的setter以及getter的处理方法,同时简单java类最大的特征就是通过对象保存相应的类的属性内容,但是如果使用传统的简单java类的开发,那么也会面临非常麻烦的困难: 1 class Emp{ 2 private String ename; 3 private String job; 4 5 public void setEname(String ename) { 6 this.ename = ename; 7 }

yii框架之gii创建数据表对应的model类

一.首先是在数据库中建立工程需要的表: 二.然后,配置对应文件: 在工程目录下yiiProject\protected\config\main.php.在50行定义了db应用组件,下面后一段注释掉了的mysql的链接配置项,我们将未注释的db注释掉,然后打开mysql链接代码并填写相关信息即可完成mysql链接配置项. 即,把下面代码         'db'=>array(             'connectionString' => 'sqlite:'.dirname(__FILE_

使用Sql语句快速将数据表转换成实体类

开发过程中经常需要根据数据表编写对应的实体类,下面是使用sql语句快速将数据表转换成对应实体类的代码,使用时只需要将第一行'TableName'引号里面的字母换成具体的表名称就行了: declare @TableName sysname = 'TableName' declare @Result varchar(max) = 'public class ' + @TableName + ' {' select @Result = @Result + ' public ' + ColumnType

hibernate中.hbm.xml和注解方式自动生成数据表的简单实例(由新手小白编写,仅适用新手小白)

绝逼新手小白,so 请大神指点! 如果真的错的太多,错的太离谱,错的误导了其他小伙伴,还望大神请勿喷,大神请担待,大神请高抬贵嘴......谢谢. 好了,正题 刚接触ssh,今天在搞使用.hbm.xml文件 和 注解方式 来自动生成数据表 其中只是整了spring.hibernate,struts部分没有整.也就是说我只是测试了能够自动生成数据表(自动生成为"标准",自认为是对的......) 下面是配置和代码: 使用工具:myeclipse 2014 ,其中web project项目

Angular JS如何将数据发送至后台 java 类

AngularJS与后端联系实质上就是javascript与后端的联系,传送的就是json对象,只是AngularJS的双向数据绑定非常实用,它可以帮助我们少写很多javascript代码,它的强大之处不用再多介绍.. 首先导入项目所需jar包,这里有DWR的jar包和JSON的jar包: 这里还需要配置DWR框架,省略.... jsp页面代码: <%@ page language="java" import="java.util.*" pageEncodin