网站开发脚本语言,wordpress的模板目录在哪里设置,大淘客wordpress,WordPress多用户商城插件JPA教程 - JPA ID自动生成器示例 我们可以将id字段标记为自动生成的主键列。 数据库将在插入时自动为id字段生成一个值数据到表。
例子
下面的代码来自Person.java。
package cn.w3cschool.common;import javax.persistence.Entity;
import javax.persistence.GeneratedValu…JPA教程 - JPA ID自动生成器示例 我们可以将id字段标记为自动生成的主键列。 数据库将在插入时自动为id字段生成一个值数据到表。
例子
下面的代码来自Person.java。
package cn.w3cschool.common;import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;Entity
public class Person {IdGeneratedValueprivate 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);ListPerson 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 ListPersongetAll() {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(strategyGenerationType.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;
}这里是数据库表转储。
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以