JPA 시작하기 (1)
Employee.java
package pojo;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name="T_EMPLOYEE")
public class Employee {
@Id
private String id;
private String name;
private double salary;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getSalary() {
return salary;
}
public void setSalary(double salary) {
this.salary = salary;
}
@Override
public String toString() {
return "Employee [id=" + id + ", name=" + name + ", salary=" + salary
+ "]";
}
}
2.Dao
EmployeeDao.java
package dao;
import javax.persistence.EntityManager;
import pojo.Employee;
public class EmployeeDao {
private EntityManager em=null;
public EmployeeDao(EntityManager em) {
this.em = em;
}
public Employee createEmployee(String id,String name,double salary){
Employee emp = new Employee();
emp.setId(id);
emp.setName(name);
emp.setSalary(salary);
em.persist(emp);
return emp;
}
public void removeEmployee(String id){
Employee emp = findEmployee(id);
if(emp==null){
throw new RuntimeException("The employee whose id is "+ id+" is not existed");
}
em.remove(emp);
}
public Employee findEmployee(String id){
return em.find(Employee.class,id);
}
public Employee updateEmployee(String id,String name,double salary){
Employee emp=findEmployee(id);
if(emp==null){
throw new RuntimeException("The employee whose id is "+ id+" is not existed");
}
emp.setName(name);
emp.setSalary(salary);
return emp;
}
}
3.Configuration file
persistence.xml
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0"
xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
<persistence-unit name="emp" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<properties>
<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" />
<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8" />
<property name="javax.persistence.jdbc.user" value="root" />
<property name="javax.persistence.jdbc.password" value="root" />
</properties>
</persistence-unit>
</persistence>
4. Test class
Main.java
package test;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import pojo.Employee;
import dao.EmployeeDao;
public class Main {
public static void main(String[] args) {
EntityManagerFactory emf=Persistence.createEntityManagerFactory("emp");
EntityManager em=emf.createEntityManager();
EmployeeDao employeeDao = new EmployeeDao(em);
// create employee
em.getTransaction().begin();
employeeDao.createEmployee("1", "xiao", 100);
em.getTransaction().commit();
// update employee
em.getTransaction().begin();
employeeDao.updateEmployee("1", "xiao", 1000);
em.getTransaction().commit();
// select employee
Employee e=employeeDao.findEmployee("1");
System.out.println(e);
// remove employee
em.getTransaction().begin();
employeeDao.removeEmployee("1");
em.getTransaction().commit();
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Spring에서 DAO가 순환 호출될 때 데이터가 실시간으로 업데이트되지 않는 해결 방법문제를 설명하기 전에 몇 가지 전제 사항을 설명하십시오. Spring의 구성 파일에서 다음과 같은 방식으로 데이터베이스 트랜잭션을 구성했다고 가정하십시오. 현재 UserDao 및 Security Service가 있습...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.