W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
當(dāng)將 Java bean 字段映射到數(shù)據(jù)庫列時(shí),我們可以選擇標(biāo)記字段,標(biāo)記 getter 方法并標(biāo)記兩者。
以下代碼來自 Professor.java。
它顯示如何將主鍵列標(biāo)記為 Java bean 字段標(biāo)識(shí)。
package cn.w3cschool.common;
import javax.persistence.Entity;
import javax.persistence.Id;
@Entity
public class Professor {
@Id
private int id;
private String name;
private long salary;
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;
}
public long getSalary() {
return salary;
}
public void setSalary(long salary) {
this.salary = salary;
}
public String toString() {
return "Employee id: " + getId() + " name: " + getName() + " salary: " + getSalary();
}
}
下面的代碼來自 PersonDaoImpl.java。
package cn.w3cschool.common;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import org.springframework.transaction.annotation.Transactional;
@Transactional
public class PersonDaoImpl {
public void test() {
Professor emp = new Professor();
emp.setId(1);
emp.setName("name");
emp.setSalary(12345);
em.persist(emp);
}
@PersistenceContext
private EntityManager em;
}
下載 Access_Field.zip這里是運(yùn)行代碼后的數(shù)據(jù)庫轉(zhuǎn)儲(chǔ)。
Table Name: PROFESSOR
Row:
Column Name: ID,
Column Type: INTEGER:
Column Value: 1
Column Name: NAME,
Column Type: VARCHAR:
Column Value: name
Column Name: SALARY,
Column Type: BIGINT:
Column Value: 12345
以下代碼來自 Professor.java。
用于標(biāo)記要用作數(shù)據(jù)庫表主鍵列的字段的 @Id 注釋將添加到 getter 方法。
package cn.w3cschool.common;
import javax.persistence.Entity;
import javax.persistence.Id;
@Entity
public class Professor {
private int id;
private String name;
private long wage;
@Id
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;
}
public long getSalary() {
return wage;
}
public void setSalary(long salary) {
this.wage = salary;
}
public String toString() {
return "Employee id: " + getId() + " name: " + getName() + " salary: " + getSalary();
}
}
下載 Access_Property.zip以下是在運(yùn)行上面的代碼后的數(shù)據(jù)庫轉(zhuǎn)儲(chǔ)。
Table Name: PROFESSOR
Row:
Column Name: ID,
Column Type: INTEGER:
Column Value: 1
Column Name: NAME,
Column Type: VARCHAR:
Column Value: name
Column Name: SALARY,
Column Type: BIGINT:
Column Value: 12345
使用 JPA,我們可以標(biāo)記字段和 getter 方法。
以下代碼來自 Professor.java。
package cn.w3cschool.common;
import javax.persistence.Access;
import javax.persistence.AccessType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Transient;
@Access(AccessType.FIELD)
@Entity
public class Professor {
public static String LOCAL_AREA_CODE = "999";
@Id
private int id;
@Transient
private String phoneNum;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getPhoneNumber() {
return phoneNum;
}
public void setPhoneNumber(String num) {
this.phoneNum = num;
}
@Access(AccessType.PROPERTY)
@Column(name = "PHONE")
protected String getPhoneNumberForDb() {
if (null != phoneNum && phoneNum.length() == 10)
return phoneNum;
else
return LOCAL_AREA_CODE + phoneNum;
}
protected void setPhoneNumberForDb(String num) {
if (num.startsWith(LOCAL_AREA_CODE))
phoneNum = num.substring(3);
else
phoneNum = num;
}
}
下面的代碼來自 PersonDaoImpl.java。
package cn.w3cschool.common;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import org.springframework.transaction.annotation.Transactional;
@Transactional
public class PersonDaoImpl {
public void test() {
Professor emp = new Professor();
emp.setId(1);
emp.setPhoneNumber("123456789");
em.persist(emp);
}
@PersistenceContext
private EntityManager em;
}
下載 Access_Mixed.zipTable Name: PROFESSOR
Row:
Column Name: ID,
Column Type: INTEGER:
Column Value: 1
Column Name: PHONE,
Column Type: VARCHAR:
Column Value: 999123456789
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: