JPA配置

JPA是ORM规范,hibernate、topLink、jda是ORM框架。JPA类似JDBC,将各个ORM产品规范法,便于移植。
1、引入JAR包
antlr.jar
commons-collections-3.1.jar
dom4j-1.6.1.jar
hibernate-entitymanager.jar
hibernate-jpa-2.0-api-1.0.0.Final.jar
hibernate3.jar
jboss-common.jar
jta-1.1.jar
slf4j-api-1.5.8.jar
slf4j-nop-1.5.8.jar
ojdbc6.jar
 
2、新建JPA配置文件,在src下新建文件夹META-INF,文件夹下新建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/persistence_1_0.xsd" version="1.0">  

	<!--    
		Name属性用于定义持久化单元的名字 (name必选,空值也合法);   
		transaction-type 指定事务类型(可选)    
	--> 
	<persistence-unit name="oracleDB" transaction-type="RESOURCE_LOCAL">  
	   	<properties>  
		    <property name="hibernate.dialect" value="org.hibernate.dialect.OracleDialect" />  
		    <property name="hibernate.connection.driver_class" value="oracle.jdbc.driver.OracleDriver" />  
		    <property name="hibernate.connection.username" value="ky" />  
		    <property name="hibernate.connection.password" value="ky" />  
		    <property name="hibernate.connection.url" value="jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.101)(PORT=1522))(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.100)(PORT=1521))(LOAD_BALANCE=yes)(FAILOVER=on))(CONNECT_DATA=(SERVICE_NAME=orcl)))" />  
		    <property name="hibernate.max_fetch_depth" value="3" />  
		    <property name="hibernate.hbm2ddl.auto" value="validate"/>
		    <property name="hibernate.show_sql" value="true" />  
	   	</properties>
	</persistence-unit>
</persistence>

3、新建实体类

package com.yd4.struts2.entity;

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

/**
 * @author 作者:xiaoZhi
 * @version 创建时间:2013-12-6 下午03:23:36
 * @detail
 **/
@Entity
@Table(name = "td_xiaozhi_test")
public class Test {
	@Id
	private String zuhao;

	@Column
	private String user_name;

	public String getZuhao() {
		return zuhao;
	}

	public void setZuhao(String zuhao) {
		this.zuhao = zuhao;
	}

	public String getUser_name() {
		return user_name;
	}

	public void setUser_name(String user_name) {
		this.user_name = user_name;
	}

}

4、测试JPA配置是否成功
 
package com.yd4.struts2.test;

import java.util.List;

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

import com.yd4.struts2.entity.Test;


/**
 * @author  作者:xiaoZhi
 * @version 创建时间:2013-12-6 下午04:07:05
 * @detail  
 **/
public class Main {
	public static void main(String[] args) {
		EntityManagerFactory emf = Persistence.createEntityManagerFactory("oracleDB");
		EntityManager em = emf.createEntityManager();
		
		Query query = em.createQuery("from Test t");
		@SuppressWarnings("unchecked")
		List<Test> list = query.getResultList();
		
		em.close();
		emf.close();
		
		for (Test test : list) {
			System.out.println(test.getUser_name());
		}
	}
}

若上述成功,则配置JPA成功。
### 如何使用JPA配置数据库连接 在Java Persistence API (JPA) 中,可以通过多种方式来配置数据库连接。以下是基于Spring Boot框架下的JPA数据库连接配置方法。 #### Spring Boot中的JPA数据库连接配置 在Spring Boot项目中,通常通过`application.properties`或`application.yml`文件完成JPA的数据库连接配置。以下是一个典型的配置示例: ```properties spring.datasource.url=jdbc:mysql://localhost:3306/your_database_name?useSSL=false&serverTimezone=UTC spring.datasource.username=root spring.datasource.password=password spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver # JPA 配置选项 spring.jpa.hibernate.ddl-auto=update spring.jpa.show-sql=true spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL8Dialect ``` 上述配置说明如下: - `spring.datasource.url`: 定义了数据源URL,这里以MySQL为例[^1]。 - `spring.datasource.username` 和 `spring.datasource.password`: 数据库用户名和密码。 - `spring.datasource.driver-class-name`: JDBC驱动类名称。 - `spring.jpa.hibernate.ddl-auto`: Hibernate DDL自动执行策略,常见值有`create`, `update`, `none`等[^4]。 - `spring.jpa.show-sql`: 是否显示生成的SQL语句到控制台。 - `spring.jpa.properties.hibernate.dialect`: 指定Hibernate使用的方言,用于处理特定数据库的功能差异。 对于不同的数据库类型(如H2, PostgreSQL, Oracle),只需调整相应的URL、驱动程序以及可能的方言设置即可。 #### 使用接口定义Repository层 为了操作实体对象,在Spring Data JPA中需要创建一个继承自`JpaRepository`或其他相关接口的Repository接口。例如: ```java public interface UserRepository extends JpaRepository<User, Long> { List<User> findByName(String name); } ``` 这里的`UserRepository`扩展了`JpaRepository`,并提供了基本CRUD功能外加额外的方法声明[^2]。 #### 实体管理器EntityManager的应用场景 当标准查询不足以满足需求时,可借助于`@PersistenceContext`注入的`EntityManager`实例手动编写复杂查询逻辑。比如下面展示了一个简单的持久化过程[^3]: ```java @Transactional public class PersonDaoImpl { @PersistenceContext private EntityManager em; public void persistProfessor() { Professor professor = new Professor(); professor.setId(1L); professor.setName("John Doe"); professor.setSalary(BigDecimal.valueOf(90000)); em.persist(professor); } } ``` 以上代码片段展示了如何利用`EntityManager`来进行更精细的数据操控。 --- ####
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值