各位好!请帮忙看看如下这种表结构在MySQL如何设置:
学生类(Student)"
int id;
String name;
Class class;班级类(Class):
int id;
String name;请问在MySQL中,如何设计Student表,可以存储Class对象?
谢谢!
   

解决方案 »

  1.   

    班级跟学生的关系是多对一,这个随便你怎么做都可以存储呀。。
    table 班级
    id,name,codestudent 学生
    id,stuname,班级ID
      

  2.   

    1.用hibernate自动生成,用到注解,这种略过吧,反正你以后也可以会遇到。
    2.student{
    id int;
    name varchar();
    class_id int;
    }
    然后建Class表,建议名字不要叫class,换个名字,接着加外键关联就可以了。你懂的
      

  3.   

    比如我要查询学生对应的班级,只要在Sql中这样使用就行了:
    select t.class.name from Student t 
      

  4.   


    你sql中怎么可能这样写呢?应该是hql才对。
      

  5.   

    class的id 放在student 里面,作为外键
      

  6.   

    对,就是hql。
    只能把Classes的ID作为外键吗?只能这样吗?
    student 学生
    id,stuname,class_id(而不能直接Class?)。
    本人是菜鸟,还望各位指教!
    谢谢!
      

  7.   

    直接class?class是个对象,在数据库中是不能这样滴,不过在java中可以中
    //给个实例吧,不过这个讲就涉及到很多细节了,建议你google,或者看视频,有些代码省略@Entity
    @Table(name="t_student")
    public class Student {
    private int id;
    private String name;
    private Teacher teacher;

    @Id
    @GeneratedValue //设置主键,并且自动增长
    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;
    }

    @ManyToOne
    @JoinColumn(name="teacherId")
    public Teacher getTeacher() {
    return teacher;
    }


    public void setTeacher(Teacher teacher) {
    this.teacher = teacher;
    }
    }//Teacher.java 这里本来不是一对多的关系,为了写实例方便,表示一个学生只有拥有一个老师
    @Entity
    @Table(name="t_teacher")
    public class Teacher {
    private int id;
    private String name;

    @Id
    @GeneratedValue
    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;
    }
    }
    //import省略,即使我写上,你也不能直接运行,要导jar包的
    //如果是只用到hibernate,没用到spring的话,还要单独一个hibernate的配置文件,祝你好运