Có một số công việc bạn phải làm để có thể làm điều đó nhưng không hề nhiều. Giả sử, bạn sẽ sử dụng JPA để chọn nhà cung cấp của riêng bạn, ví dụ: Hibernate. Sau đó, bạn cần phải đặt persistence.xml định nghĩa các đơn vị bền vững trong thư mục META-INF:
<?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="YourDatabasePersistenceUnitName" transaction-type="RESOURCE_LOCAL"/>
</persistence>
Tiếp theo, xác định tất cả mọi thứ cần thiết cho việc kết nối cơ sở dữ liệu trong bối cảnh ứng dụng Spring bạn sử dụng, tối thiểu nó nên chứa sau đây:
<bean id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>/WEB-INF/jdbc.properties</value>
</property>
</bean>
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close" scope="singleton">
<property name="driverClassName" value="org.postgresql.Driver"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</bean>
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="persistenceUnitName" value="YourDatabasePersistenceUnitName"/>
<property name="dataSource" ref="dataSource"/>
<property name="jpaVendorAdapter">
<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
<property name="database" value="POSTGRESQL" />
<property name="databasePlatform" value="org.hibernate.dialect.PostgreSQLDialect"/>
<property name="showSql" value="true"/>
<property name="generateDdl" value="false"/>
</bean>
</property>
</bean>
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory"/>
<property name="dataSource" ref="dataSource"/>
</bean>
<tx:annotation-driven transaction-manager="transactionManager" />
<bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" />
<bean class="org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor"/>
Một số thuộc tính ở trên có thể được thay đổi hoặc bổ sung tùy theo nhu cầu của bạn. Ví dụ này dành cho JPA với cơ sở dữ liệu Hibernate và PostgreSQL như bạn có thể đoán.
Bây giờ bạn chỉ có thể xác định phương pháp truy cập dữ liệu của bạn như thế này:
@Repository
@Transactional
public class UserJpaDAO {
protected EntityManager entityManager;
@PersistenceContext
public void setEntityManager(EntityManager entityManager) {
this.entityManager = entityManager;
}
public void save(User theUser) {
entityManager.persist(theUser);
}
public User update(User theUser) {
return entityManager.merge(theUser);
}
}
nơi tài là một thực thể JPA xác định bởi ứng dụng của bạn. Bạn có thể quản lý các giao dịch tại tầng quản lý/điều khiển gọi các DAO của bạn - thực ra tôi làm theo cách đó - nhưng tôi đã đặt nó lại với nhau ở đây không để làm ví dụ lộn xộn quá nhiều.
Tài liệu tham khảo hay mà bạn có thể muốn chuyển thẳng đến thay vì ví dụ của tôi là http://icoloma.blogspot.com/2006/11/jpa-and-spring-fucking-cooltm_26.html 3 liên kết hàng đầu mà tài liệu tham chiếu của tài liệu tham khảo cũng đáng giá.
Cảm ơn câu trả lời, tôi sẽ chơi với ngày mai này tại nơi làm việc. Tuy nhiên, cả hai liên kết của bạn ở cuối đều giống nhau. –
xin lỗi, nhưng liên kết tôi đã cung cấp chứa 3 liên kết khác bao gồm cả liên kết khác mà tôi đã lưu ý ... – topchef
Liên kết này hiện xuống ... –