好吧,今天一天都在研究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();
}
}
五、测试结果
上图!!!
让我们再来看看数据库~
如我所料哈哈哈!
好了接下来我要深入研究一下了!
来得及可能还有第二弹~