JAVA

JavaEEではデータベースとの設定情報はpersistence.xmlに記述します。

前提条件

  • JDK 1.7.0_07
  • Glassfish 3.1.2.2
  • PostgreSQL 9.1(JDBC:postgresql-9.1-901.jdbc4.jar)

データベースの永続化

JPA2.0によるデータの取得する例

persistence.xml設定サンプル:
場所:src/META-INF/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設定サンプル:
場所:src/META-INF/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ディレクトリで複数のポータルサイトにディレクトリ登録

コメント:



(画像の文字列を入力して下さい)

トップ   編集 凍結 差分 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019/12/02 (月) 12:34:19 (1627d)

yVoC[UNLIMITȂ1~] ECirŃ|C Yahoo yV LINEf[^[Ōz500~`I


z[y[W ̃NWbgJ[h COiq 萔O~ył񂫁z COsیI COze