布料市場做哪個網站好代寫軟文
JPA教程 - JPA ID自動生成器示例
我們可以將id字段標記為自動生成的主鍵列。 數(shù)據(jù)庫將在插入時自動為id字段生成一個值數(shù)據(jù)到表。
例子
下面的代碼來自Person.java。
package cn.w3cschool.common;import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id;@Entity public class Person {@Id@GeneratedValueprivate Long id;private String name;private String surname;public Person() {}public Person(String name, String surname) {this.name = name;this.surname = surname;}public Long getId() {return id;}public void setId(Long id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getSurname() {return surname;}public void setSurname(String surname) {this.surname = surname;}@Overridepublic String toString() {return "Person [id=" + id + ", name=" + name + ", surname=" + surname + "]";} }
以下代碼來自App.java。
從代碼中我們可以看到,我們沒有設置對象的id值。
package cn.w3cschool.common;import java.util.List;import org.springframework.context.support.ClassPathXmlApplicationContext;public class App {public static void main(String[] args) {ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");PersonDaoImpl dao = (PersonDaoImpl) context.getBean("personDao");Person peter = new Person("XML", "HTML");Person nasta = new Person("Java", "SQL");dao.save(peter);dao.save(nasta);List<Person> persons = dao.getAll();for (Person person : persons) {System.out.println(person);}context.close();} }
下面的代碼來自PersonDaoImpl.java。
package cn.w3cschool.common;import java.util.List;import javax.persistence.EntityManager; import javax.persistence.PersistenceContext;import org.springframework.transaction.annotation.Transactional;@Transactional public class PersonDaoImpl {@PersistenceContextprivate EntityManager em;public Long save(Person person) {em.persist(person);return person.getId();}public List<Person>getAll() {return em.createQuery("SELECT p FROM Person p", Person.class).getResultList();}}
上面的代碼生成以下結果。
JPA教程 - JPA ID生成策略示例
當使用id字段的自動生成值時,我們可以選擇生成策略。我們使用的一個常見策略是IDENTITY。
例子
以下代碼來自Professor.java。
package cn.w3cschool.common;import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id;@Entity public class Professor {@Id @GeneratedValue(strategy=GenerationType.IDENTITY)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();} }
以下代碼來自App.java。
package cn.w3cschool.common;import org.springframework.context.support.ClassPathXmlApplicationContext;public class App {public static void main(String[] args) {ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");PersonDaoImpl dao = (PersonDaoImpl) context.getBean("personDao");dao.test();context.close();Helper.checkData();} }
下面的代碼來自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.setName("name");emp.setSalary(12345);em.persist(emp);}@PersistenceContextprivate EntityManager em; }
這里是數(shù)據(jù)庫表轉儲。
Table Name: PROFESSORRow:Column Name: ID,Column Type: INTEGER:Column Value: 1Column Name: NAME,Column Type: VARCHAR:Column Value: nameColumn Name: SALARY,Column Type: BIGINT:Column Value: 12345
?
以