创建多对多关系

Create many-to-many relationship

我需要在我的 userproject 实体之间建立多对多关系。现在他们之间的关系是多对一的。我尝试在 JDBC 中搜索如何进行多对多操作,但找不到任何有用的信息。我知道我需要第三个 table 用于连接它们,但我真的不知道如何为它进行查询,以及我需要什么额外的 classes。欢迎任何形式的帮助。到目前为止的代码是:

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 方法在另一个 class 中用于创建 tables。

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

关系数据库中的多对多关系需要的是您想要 link.

的 2 table 之间的关系 table

有关详细信息,请参阅 there

创建两个数组列表如何: 在用户和数组列表中实施以保存其所有项目:

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

在 Project 中,数组列表包含所有用户:

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

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