persistence.xml是Java Persistence API(JPA)中用于配置持久化单元(Persistence Unit)的文件。
在persistence.xml中,可以配置以下内容:
持久化单元的名称(name):用于标识一个持久化单元,可以通过该名称在代码中获取EntityManagerFactory。
持久化提供程序(provider):指定用于实现JPA规范的持久化提供程序的类名。例如,Hibernate、EclipseLink等。
数据源(jta-data-source和non-jta-data-source):指定用于连接数据库的数据源。如果使用Java EE容器进行事务管理,则使用jta-data-source;如果使用JPA实现提供的事务管理,则使用non-jta-data-source。
类映射(class):指定需要持久化的实体类。可以使用
映射文件(mapping-file):指定使用XML文件进行实体类和数据库表之间的映射。
属性(property):指定配置持久化提供程序的属性。例如,数据库连接URL、用户名、密码等。
下面是一个示例的persistence.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence
http://xmlns.jcp.org/xml/ns/persistence/persistence_2_2.xsd"
version="2.2">
<persistence-unit name="myPersistenceUnit" transaction-type="JTA">
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
<jta-data-source>java:/myDataSource</jta-data-source>
<class>com.example.entity.User</class>
<mapping-file>META-INF/orm.xml</mapping-file>
<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/mydb"/>
<property name="javax.persistence.jdbc.user" value="root"/>
<property name="javax.persistence.jdbc.password" value="password"/>
</persistence-unit>
</persistence>
在上述示例中,配置了一个名为"myPersistenceUnit"的持久化单元,使用Hibernate作为持久化提供程序。数据源使用JTA方式连接,并指定了一个实体类和一个映射文件。同时,配置了连接数据库的URL、用户名和密码等属性。