举报投诉联系我们 手机版 热门标签 鳄鱼CMS
您的位置:鳄鱼CMS > jpa例子 JPA 列定义示例

jpa例子 JPA 列定义示例

2023-03-15 22:31 Java教程

jpa例子 JPA 列定义示例

jpa例子

JPA(Java Persistence API)是一种用于持久化Java对象的标准技术。它使用ORM(对象关系映射)来将Java对象映射到关系数据库中的表。它可以帮助开发人员在不需要编写SQL语句的情况下实现数据库操作。

下面是一个使用JPA进行CRUD操作的例子:

@Entity 
public class Employee { 

    @Id 
    @GeneratedValue(strategy = GenerationType.AUTO) 
    private Long id; 

    private String name; 

    // getters and setters, constructors, etc. 
} 


public class EmployeeService { 

    @PersistenceContext 
    EntityManager em; 

    public void createEmployee(Employee employee) { 
        em.persist(employee); 
    } 

    public Employee findEmployeeById(Long id) { 
        return em.find(Employee.class, id);  
    }  

    public void updateEmployee(Employee employee) {  
        em.merge(employee);  
    }  

    public void deleteEmployee(Long id) {  
        Employee employee = em.find(Employee.class, id);  
        em.remove(employee);  
     }  														}

JPA 列定义示例

JPA教程 - JPA列定义示例


当将Java bean映射到实体时,我们可以在映射注释中设置数据库表列定义。

以下代码将列定义设置为 VARCHAR(40)

@Column(columnDefinition = "VARCHAR(40)")
private String name;

@Column注释表示物理数据库列的特定特征。

例子

下面的代码来自Person.java。

package cn..common;
import static javax.persistence.FetchType.LAZY;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Lob;
import javax.persistence.Table;

@Entity
@Table(name="EMP")
public class Person {
  @Id
  @Column(name = "EMP_ID")
  private long id;
  
  @Column(columnDefinition = "VARCHAR(40)")
  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;
  }

  @Override
  public String toString() {
    return "Person [id=" + id + ", name=" + name + ", surname=" + surname + "]";
  }
}

这里是显示如何使用Person实体的代码。

package cn..common;

import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

import org.springframework.transaction.annotation.Transactional;

@Transactional
public class PersonDaoImpl {
  public void test(){
    Person p1 = new Person("Tom", "Smith");
    p1.setId(1L);

    Person p2 = new Person("Jack", "Kook");
    p2.setId(2L);
    
    save(p1);
    save(p2);

    listAll();
    
  }
  private void listAll(){
    List<Person> persons = getAll();
    for (Person person : persons) {
      System.out.println(person);
    }

  }
  @PersistenceContext
  private 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();
  }
  
}
下载 Column_Definition.zip

这里是运行上面的代码的结果。

以下是数据库表转储。

Table Name: EMP
 Row:
    Column Name: EMP_ID,
    Column Type: BIGINT:
    Column Value: 1
    Column Name: NAME,
    Column Type: VARCHAR:
    Column Value: Tom

    Column Name: SURNAME,
    Column Type: VARCHAR:
    Column Value: Smith

 Row:
    Column Name: EMP_ID,
    Column Type: BIGINT:
    Column Value: 2

    Column Name: NAME,
    Column Type: VARCHAR:
    Column Value: Jack

    Column Name: SURNAME,
    Column Type: VARCHAR:
    Column Value: Kook


阅读全文
以上是鳄鱼CMS为你收集整理的jpa例子 JPA 列定义示例全部内容。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
相关文章
© 2024 鳄鱼CMS eyucms.com 版权所有 联系我们