创建多对多关系

时间:2015-09-02 09:57:58

标签: java database jdbc many-to-many

我需要在userproject个实体之间建立多对多关系。目前,它们之间的关系是多对一的。我试着在JDBC中搜索如何做多对多,但找不到任何有用的东西。我知道我需要一个用于连接它们的第三个表,但是不知道如何对它进行查询,以及我需要哪些其他类。欢迎任何形式的帮助。到目前为止的代码是:

package com.TO;

public class User {
private String login;
private String password;
private String fullName;
private String role;

private String projectKey;

//constructor, setters and getters
}
package com.DAO;

import com.TO.User;
import com.Utills.JDBCUtil;

public class UserDAO {

  public static String getTableString(){
     String projectTable =  "create table user_db ( " +
                            "login varchar(20) not null, " +
                            "password varchar(20), " +
                            "full_name varchar(80), " +
                            "role varchar(2), " +
                            "project_key varchar(50), " +
                            "primary key(login))";
     return projectTable;
  } 
}
package com.TO;

public class Project {
  private String key;
  private String title;

  //constructor, setters and getters
}
package com.DAO;

public class ProjectDAO {

  public static String getTableString(){
    String projectTable =   "create table project ( " +
                            "project_key varchar(50) not null, " +
                            "title varchar(50), " +
                            "primary key(project_key))";
    return projectTable;        
  } 
}

PS:getTableString方法在另一个类中用于创建表。

2 个答案:

答案 0 :(得分:3)

JDBC不会在表之间创建关系,它允许您对数据库执行查询。您的问题与JDBC或从Java代码访问关系数据库的任何其他方式无关。这只是创建数据库模型的问题。

关系数据库中多对多关系所需要的是您要链接的两个表之间的关系表。

有关详细信息,请参阅there

答案 1 :(得分:2)

创建两个数组列表怎么样: 在用户和数组列表中实现以保存其所有项目:

 ArrayList<Project> elements = new ArrayList<>();

在Project和数组列表中保存所有用户:

 ArrayList<User> elements = new ArrayList<>();

您必须在分配或从项目中删除用户时更新这些内容。