好吧,今天一天都在研究JPA,剛剛有點結果,就迫不及待過來寫博客了!
老規矩,不廢話了,直接上代碼!
一、搭建環境
這裏用到了maven的properties標籤,主要是爲了確保版本號一致。
<properties>
<jee.version>7.0</jee.version>
<h2.version>1.3.176</h2.version>
<hibernate.version>4.3.8.Final</hibernate.version>
</properties>
<dependencies>
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>${jee.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>${h2.version}</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>${hibernate.version}</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.38</version>
</dependency>
</dependencies>
二、配置persistence.xml
這裏要注意!!!
JPA的配置文件persistence.xml的默認位置是src/main/resources/META-INF下面
META-INF是自己創建的,系統好像不會自動生成~
根據數據庫的不同,配置文件不同。
在這裏我用的數據庫是MySQL。
persistence.xml的配置如下:
<?xml version="1.0" encoding="UTF-8" ?>
<persistence 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_1_0.xsd" version="1.0">
<persistence-unit name="mysqlJPA" transaction-type="RESOURCE_LOCAL">
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect" />
<property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver" />
<property name="hibernate.connection.username" value="root" />
<property name="hibernate.connection.password" value="root123" />
<property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/jpatest" />
<property name="hibernate.max_fetch_depth" value="3" />
<property name="hibernate.hbm2ddl.auto" value="update" />
</properties>
</persistence-unit>
</persistence>
三、實體類
還是代碼最直接~
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
/*
* @author sjia
* @Date 2017年4月14日--下午10:24:45
*/
@Entity
public class Person {
private int id;
private String name;
@Id @GeneratedValue
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
@Column(length=12)
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
四、可以測試啦!
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import org.junit.Test;
/*
* @author sjia
* @Date 2017年4月14日--下午10:26:37
*/
public class TestCase {
@Test
public void createTable(){
//驗證生成表是否正確
EntityManagerFactory factory=Persistence.createEntityManagerFactory("mysqlJPA");
factory.close();
}
}
五、測試結果
上圖!!!
讓我們再來看看數據庫~
如我所料哈哈哈!
好了接下來我要深入研究一下了!
來得及可能還有第二彈~