JavaEEではデータベースとの設定情報はpersistence.xmlに記述します。 前提条件 †
データベースの永続化 †JPA2.0によるデータの取得する例 persistence.xml設定サンプル: <?xml version="1.0" encoding="UTF-8"?> <persistence version="2.1" 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_1.xsd"> <persistence-unit name="hogehogehoge" transaction-type="JTA"> <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider> <mapping-file>META-INF/orm.xml</mapping-file> <class>cn.dl.xxx.server.entity.UserData</class> <jta-data-source>jdbc/sample</jta-data-source> <exclude-unlisted-classes>false</exclude-unlisted-classes> <shared-cache-mode>NONE</shared-cache-mode> <properties> <property name="javax.persistence.schema-generation.database.action" value="create"/> <property name="eclipselink.logging.parameters" value="true"/> <property name="eclipselink.logging.level.sql" value="FINE"/> <property name="eclipselink.jdbc.driver" value="org.hsqldb.jdbcDriver"/> <property name="eclipselink.jdbc.url" value="jdbc:hsqldb:mem:test"/> <property name="eclipselink.jdbc.user" value="sa"/> <property name="eclipselink.jdbc.password" value=""/> </properties> </persistence-unit> <!- 異なるproviderを配置する -> <persistence-unit name="embeddedeclipselink" transaction-type="RESOURCE_LOCAL"> <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider> <class>org.compass.gps.device.jpa.model.Simple</class> <class>org.compass.gps.device.jpa.model.SimpleBase</class> <class>org.compass.gps.device.jpa.model.SimpleExtend</class> <exclude-unlisted-classes>false</exclude-unlisted-classes> <properties> <property name="eclipselink.jdbc.driver" value="org.hsqldb.jdbcDriver"/> <property name="eclipselink.jdbc.url" value="jdbc:hsqldb:mem:test"/> <property name="eclipselink.jdbc.user" value="sa"/> <property name="eclipselink.jdbc.password" value=""/> <property name="eclipselink.target-database" value="org.eclipse.persistence.platform.database.HSQLPlatform"/> <property name="eclipselink.logging.level" value="OFF"/> <property name="eclipselink.orm.throw.exceptions" value="true"/> <property name="eclipselink.ddl-generation" value="drop-and-create-tables"/> <property name="eclipselink.ddl-generation.output-mode" value="database"/> <property name="eclipselink.session.customizer" value="org.compass.gps.device.jpa.embedded.eclipselink.CompassSessionCustomizer"/> <property name="compass.engine.connection" value="target/test-index"/> <property name="compass.debug" value="true" /> </properties> </persistence-unit> </persistence> orm.xml設定サンプル: <?xml version="1.0" encoding="UTF-8"?> <entity-mappings version="1.0" xmlns="http://java.sun.com/xml/ns/persistence/orm" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/orm http://java.sun.com/xml/ns/persistence/orm_1_0.xsd"> <persistence-unit-metadata> <persistence-unit-defaults> <schema>public</schema> </persistence-unit-defaults> </persistence-unit-metadata> </entity-mappings> Entity クラス import java.io.Serializable; import javax.persistence.*; import java.math.BigDecimal; import java.sql.Timestamp; @Entity @Table(name="UserData") @NamedQuery(name="UserData.findAll", query="SELECT m FROM UserData m") public class UserData implements Serializable { private static final long serialVersionUID = 1L; @Id @Column(name="user_Id") private String userId = null; @Column(name="del_date_time") private String delDateTime = null; …省略… 設定値の取得 import java.util.ArrayList; import java.util.List; import javax.faces.bean.ManagedBean; import javax.faces.bean.RequestScoped; import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.Persistence; import jp.glory.persistence.entity.UserData; public class UserListPage { private List<UserData> userList = null; public UserListPage() { EntityManagerFactory factory = Persistence.createEntityManagerFactory("hogehogehoge"); EntityManager manager = factory.createEntityManager(); userList = new ArrayList<>(); userList.add(manager.find(UserData.class, "USER-0001")); } } #codeprettify{{ iディレクトリで複数のポータルサイトにディレクトリ登録 コメント: |