【Spring Data Jpa】原生Jpa的使用
【Spring Data Jpa】原生Jpa的使用
-
- 1. Dependency
- 2. Config
-
- 1.1 persistence.xml
- 1.2 Entity
- 1.3 application.properties
- 3. Test
- 4. 原生JdbcTemplate
- 5. Awakening
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、nonecreate:程序自动创建数据库表,如果表存在则先删除后创建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 {@Testpublic 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
在一秒钟内看到本质的人和花半辈子也看不清一件事本质的人,自然是不一样的命运。