JPA之helloWorld

时间:2024-01-18 22:38:38

在 Eclipse 下创建 JPA 工程

1、在eclipse上安装JPA插件(网上自行百度)

2、new 一个Jpa工程

JPA之helloWorld

3:点击下一步,下一步,第一次运行jpa插件会让我们装相关类库如下图,等到再次创建项目就不用安装了

JPA之helloWorld

4:装好类库点击finish进入下图:点开src下的META-INFPEDE的persistence.xml配置文件, 其中source是查看配置信息的,connection是配置数据库连接信息的

JPA之helloWorld

5:单机Connection配置数据库连接信息如下图

JPA之helloWorld

配置好相关信息,点击Source可以看到我们配置的数据库连接信息已经加到配置文件中了!

下面是一个测试小demo

1 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="jpa-2" transaction-type="RESOURCE_LOCAL">
<!-- 配置使用什么ORM产品作为JPA的实现
1.实际配置的是javaX.persistences.spi.PersistenceProvider 接口的实现类
2.JPA项目中只有一个JPA的实现产品,则也可以不配置该产品。
-->
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<!-- 添加持久化类 -->
<class>com.guigu.jpa.helloword.Customer</class>
<properties>
<!-- 连接数据库的基本信息 -->
<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
<!--mysql:/// 第三个斜杠表示本地连接相当于localhost -->
<property name="javax.persistence.jdbc.url" value="jdbc:mysql:///jpa"/>
<property name="javax.persistence.jdbc.user" value="root"/>
<property name="javax.persistence.jdbc.password" value="123456"/>

<!-- 配置JPA实现产品的基本属性也就是配置hibernate的基本属性 -->
<!-- 格式化sql -->
<property name="hibernate.format_sql" value="true"/>
<!-- 显示sql到控制台 -->
<property name="hibernate.show_sql" value="true"/>
<!-- 生成数据表的策略 -->
<property name="hibernate.hbm2ddl.auto" value="update"/>
</properties>
</persistence-unit>
</persistence>

2:实体类

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;

/**
*数据库持久化类
* @author z
*
*/
@Table(name="JPA_CUSTOMERS")//对应的数据库表名JPA_CUSTOMER默认情况下可以不写表名与持久化类名相同
@Entity //表明这是一个持久化类
public class Customer {

private Integer id;
private String lastName;
private String email;
private int age ;
/**
* 定义各数据列必须加在get方法上
* @return
*/
//定义主键,生成主键的策略AUTO自动的根据数据的类型生成主键
@GeneratedValue(strategy=GenerationType.AUTO)
@Id //定义数据列
// @Column(name="ID")//定义数据库的列名如果与字段名一样可以省略
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}

@Column(name="LAST_NAME")
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}

}

3:运行main方法

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.EntityTransaction;
import javax.persistence.Persistence;

public class Main {

public static void main(String[] args) {
//1. 创建EntitymanagerFactory
String persistenceUnitName="jpa-2";
EntityManagerFactory entityManagerFactory= Persistence.createEntityManagerFactory(persistenceUnitName);

//2. 创建EntityManager
EntityManager entityManager=entityManagerFactory.createEntityManager();
//3. 开启事物
EntityTransaction transaction=entityManager.getTransaction();
transaction.begin();
//4. 进行持久化操作
Customer customer=new Customer();
customer.setAge(12);
customer.setEmail("318889659@qq.com");
customer.setLastName("test");

entityManager.persist(customer);
//5. 提交事物
transaction.commit();
//6. 关闭EntityManager
entityManager.close();
//7. 关闭EntitymanagerFactory
entityManagerFactory.close();
}

}

此时我们观察数据库并自动创建一个表,且插入了数据!

JPA之helloWorld

备注:最近工作比较忙,有时间我会把代码上传到gitHub上供大家参考