您现在的位置是:首页 >技术交流 >【Spring Data Jpa】原生Jpa的使用网站首页技术交流
【Spring Data Jpa】原生Jpa的使用
简介【Spring Data Jpa】原生Jpa的使用
【Spring Data Jpa】原生Jpa的使用
1. Dependency
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>5.0.7.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.0.7.Final</version>
</dependency>
2. Config
1.1 persistence.xml
- 配置文件路徑
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="2.0">
<!--持久化单元配置,在配置文件中至少有一个
name:持久化单元名称
transaction-type:事务模式。RESOURCE_LOCAL:本地事务,单数据库的事务 JTA:分布式事务,多个数据库的事务
-->
<persistence-unit name="xxxx" transaction-type="RESOURCE_LOCAL">
<!--配置JPA提供商-->
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
<properties>
<!--数据库的方言,告诉JPA当前应用使用的数据库-->
<property name="hibernate.dialect" value="org.hibernate.dialect.SQLServerDialect"/>
<!--连接数据库配置-->
<property name="javax.persistence.jdbc.user" value="root"/>
<property name="javax.persistence.jdbc.password" value="root"/>
<property name="javax.persistence.jdbc.driver" value="xxxx"/>
<property name="javax.persistence.jdbc.url" value="xxx"/>
<!--Hibernate的属性配置-->
<!--是否打印sql语句-->
<property name="hibernate.show_sql" value="true"/>
<!--是否格式化sql语句-->
<property name="hibernate.format_sql" value="true"/>
<!--是否自动创建数据库表
可选值:create、update、none
create:程序自动创建数据库表,如果表存在则先删除后创建
update:程序自动创建数据库表,如果表存在则不创建。
none:不会创建表
-->
<property name="hibernate.hbm2ddl.auto" value="create"/>
</properties>
</persistence-unit>
</persistence>
1.2 Entity
1.3 application.properties
3. Test
public class JpaTest {
@Test
public void firstTest(){
// 1. 创建一个`EntityManagerFactory`对象。在系统中一般都是单例的。
EntityManagerFactory factory = Persistence.createEntityManagerFactory("xxxx");
// 2. 使用工厂对象创建一个`EntityManager`对象。一个`EntityManager`就是一个连接。是一个多例对象。使用完毕之后就关闭。
EntityManager entityManager = factory.createEntityManager();
// 3. 开启事务。
EntityTransaction transaction = entityManager.getTransaction();
transaction.begin();
// 4. 创建一个`Customer`对象。
Customer customer = new Customer();
customer.setCustName("小王");
customer.setCustLevel("VIP");
customer.setCustSource("电话");
customer.setCustPhone("12345678910");
customer.setCustAddress("浙江绍兴");
// 5. 使用`Entitymanager`对象的`persist`方法向数据库插入数据。
entityManager.persist(customer);
// 6. 事务提交
transaction.commit();
// 7. 关闭连接
entityManager.close();
//系统关闭之前关闭工厂对象
factory.close();
}
}
4. 原生JdbcTemplate
5. Awakening
在一秒钟内看到本质的人和花半辈子也看不清一件事本质的人,自然是不一样的命运。
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。