从NetBenas中的MySQL表制作Java实体类 [英] Making java Entity classes from MySQL tables in netbenas
问题描述
我有一个包含一些数据的MySQL数据库,我希望将其转换为Java Entity类.我有Persistence.xml文件,但是我不确定如何做到这一点.我可以对其进行反向工程,并从MySQL工作台中导出数据,但是在与数据库建立连接之后,可以在Netbeans中使用一个函数来完成此工作吗?
I have a MySQL database, with some data, that I want to be transformed into java Entity classes. I have my Persistence.xml file, but I'm not sure how I can do this. I could reverse engineer it, and make a data export from my MySQL workbench, but after I have made the connection, with the database, can I use a function within Netbeans to accomplish this?
推荐答案
NetBeans有一个向导可以完全执行您想要的操作:
NetBeans has a wizard to do exactly what you want:
- 在项目面板中,在项目中选择包含实体类的包.
-
右键单击并从上下文菜单中选择 New>数据库中的实体类... .
- In the Projects panel, within your project select the package to contain the entity class(es).
Right click and select New > Entity Classes from Database... from the context menu.
数据库中的新实体类向导运行.
在数据库表页面上:
- 从数据库连接下拉列表中选择要使用的连接.
- 从可用表列表中选择要为其生成实体类的表.
- 点击添加> 或全部添加> 按钮,将表格移至 Selected Tables 列表中,然后点击下一步> 按钮.
- Select the connection you want to use from the Database Connection drop list.
- Select the table(s) you want to generate entity classes for from the Available Tables list.
- Click the Add > or Add All > button to move the table(s) to the Selected Tables list, then click the Next > button.
运行向导后,将在您选择的包中创建实体类.例如:
After running the wizard the entity class(es) will be created within the package you selected. For example:
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package mysql8demo;
import java.io.Serializable;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.xml.bind.annotation.XmlRootElement;
/**
*
* @author johndoe
*/
@Entity
@Table(name = "country")
@XmlRootElement
@NamedQueries({
@NamedQuery(name = "Country.findAll", query = "SELECT c FROM Country c")
, @NamedQuery(name = "Country.findById", query = "SELECT c FROM Country c WHERE c.id = :id")
, @NamedQuery(name = "Country.findByCountryCode", query = "SELECT c FROM Country c WHERE c.countryCode = :countryCode")
, @NamedQuery(name = "Country.findByCountryName", query = "SELECT c FROM Country c WHERE c.countryName = :countryName")
, @NamedQuery(name = "Country.findByCurrencyCode", query = "SELECT c FROM Country c WHERE c.currencyCode = :currencyCode")
, @NamedQuery(name = "Country.findByPopulation", query = "SELECT c FROM Country c WHERE c.population = :population")
, @NamedQuery(name = "Country.findByCapital", query = "SELECT c FROM Country c WHERE c.capital = :capital")
, @NamedQuery(name = "Country.findByContinent", query = "SELECT c FROM Country c WHERE c.continent = :continent")
, @NamedQuery(name = "Country.findByAreaInSqKm", query = "SELECT c FROM Country c WHERE c.areaInSqKm = :areaInSqKm")})
public class Country implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = "id")
private Integer id;
@Basic(optional = false)
@Column(name = "countryCode")
private String countryCode;
@Basic(optional = false)
@Column(name = "countryName")
private String countryName;
@Column(name = "currencyCode")
private String currencyCode;
@Column(name = "population")
private String population;
@Column(name = "capital")
private String capital;
@Column(name = "continent")
private String continent;
@Column(name = "areaInSqKm")
private Integer areaInSqKm;
public Country() {
}
public Country(Integer id) {
this.id = id;
}
public Country(Integer id, String countryCode, String countryName) {
this.id = id;
this.countryCode = countryCode;
this.countryName = countryName;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getCountryCode() {
return countryCode;
}
public void setCountryCode(String countryCode) {
this.countryCode = countryCode;
}
public String getCountryName() {
return countryName;
}
public void setCountryName(String countryName) {
this.countryName = countryName;
}
public String getCurrencyCode() {
return currencyCode;
}
public void setCurrencyCode(String currencyCode) {
this.currencyCode = currencyCode;
}
public String getPopulation() {
return population;
}
public void setPopulation(String population) {
this.population = population;
}
public String getCapital() {
return capital;
}
public void setCapital(String capital) {
this.capital = capital;
}
public String getContinent() {
return continent;
}
public void setContinent(String continent) {
this.continent = continent;
}
public Integer getAreaInSqKm() {
return areaInSqKm;
}
public void setAreaInSqKm(Integer areaInSqKm) {
this.areaInSqKm = areaInSqKm;
}
@Override
public int hashCode() {
int hash = 0;
hash += (id != null ? id.hashCode() : 0);
return hash;
}
@Override
public boolean equals(Object object) {
// TODO: Warning - this method won't work in the case the id fields are not set
if (!(object instanceof Country)) {
return false;
}
Country other = (Country) object;
if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
return false;
}
return true;
}
@Override
public String toString() {
return "mysql8demo.Country[ id=" + id + " ]";
}
}
这篇关于从NetBenas中的MySQL表制作Java实体类的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!