在数据库中持久化java实体

在数据库中持久化java实体,java,oop,Java,Oop,我还没有任何关于ORM、Hibernate、JPA之类的知识,所以这是一种在数据库中映射实体之间关联的有效方法,而不使用它们吗 谢谢 用户可以注册公司。 每个公司都有许多部门。 每个部门都有许多部门,例如办公室、员工等 public class Company{ private String company_name; private int company_registration_number; private String company_address; public Company

我还没有任何关于ORM、Hibernate、JPA之类的知识,所以这是一种在数据库中映射实体之间关联的有效方法,而不使用它们吗

谢谢

用户可以注册公司。 每个公司都有许多部门。 每个部门都有许多部门,例如办公室、员工等

public class Company{

private String company_name;
private int company_registration_number;
private String company_address;

public Company(String company_name, int crn, String company_address) {

    this.company_name = company_name;
    this.company_registration_number = crn;
    this.company_address = company_address;
}

              /*  Getters, Setters, toString */
}
系级

public class Department {

private String dept_name;
private String dept_description;

public Department( String dept_name, String dept_description) {

    this.dept_name = dept_name;
    this.dept_description=dept_description;

}

         /*Getters, Setters, toString*/
}
公司数据库

public class CompanyDB  {

public boolean createCompany(Company company) throws SQLException {

String sql_query = "INSERT INTO " + DB_NAME + ".company VALUES (?, ?, ?   )";

}

       //other crud methods
}
部门数据库

public class DepartmentDB {

public boolean createDepartment(Department department, String company_name) throws SQLException {

    String sql_query = "INSERT INTO " + DB_NAME + 
    ".department(dept_name, dept_description, company_name)" +
    " VALUES(?, ?, ?) " + 
    " WHERE company_name=?";

 }
      //other crud methods
}
SQL:


由于JPA实体映射是通过注释完成的,表也可能由Hibernate插件生成,请阅读相关内容。此链接可能会有所帮助

您可能希望查看Hibernate关系或注释,因为这会使您的生活更加轻松

看 或者是一些基础知识

看起来您已经掌握了基本知识,但是Hibernate/JPA提供了这样的功能,您只需创建数据库表和关系或具有映射的实体,它就会自动为您生成另一半

一个你想做什么的例子

public class Company {

@Id
private Long id;
@Column(name = "company_name")
private String companyName;
@Column(name = "company_registration_number")
private int companyRegistrationNumber;
@Column(name = "company_address")
private String companyAddress;
@OneToMany
private Set<Department> departments;

/*  Getters, Setters, toString */
}
在这种情况下,Hibernate将通过在Department表(公司的主键上)上创建一列,自动将公司与所有部门关联,以便将所有部门与所述公司关联

这个问题属于
public class Company {

@Id
private Long id;
@Column(name = "company_name")
private String companyName;
@Column(name = "company_registration_number")
private int companyRegistrationNumber;
@Column(name = "company_address")
private String companyAddress;
@OneToMany
private Set<Department> departments;

/*  Getters, Setters, toString */
}
public class Department {

@Id
private Long id;
@Column(name = "dept_name")
private String deptName;
@Column(name = "dept_description")
private String deptDescription;
@ManyToOne
private Company company;

/*Getters, Setters, toString*/
}