ΌI O/R}bp[ vs. IuWFNgwDB

��2��@Hibernate��Caché�AJava�Ƃ̍D�����͂ǂ�����

�l�N�X�g�f�U�C��
���R �O
2006/1/13
�I�u�W�F�N�g�w���v���O���~���O�ƃ����[�V���i���E�f�[�^�x�[�X�̑����̈����́A�A�v���P�[�V�����J���҂̔Y�݂̎킾�B������������2�‚̕��@�A���Ȃ킿O/R�}�b�s���O�c�[���ƃI�u�W�F�N�g�w���f�[�^�x�[�X�����グ�AJava�̉i�����������r����̂��{�A�ڂ̑_���ł���B�i�ҏW���j

���͂��߂�

��ȓ��e
--Page 1--
�͂��߂�
Hibernate���g����Java�I�u�W�F�N�g�̉i����
�@�@�X�e�b�v1�@�h���C�����f�����쐬����
�@�@�X�e�b�v2�@�i���N���X�ƃ}�b�s���O�����쐬����
--Page 2--
�@�@�X�e�b�v3�@�e�[�u�����쐬����
�@�@�X�e�b�v4�@�A�v���P�[�V�����R�[�h������
�@�@�X�e�b�v5�@���s����
--Page 3--
Caché���g����Java�I�u�W�F�N�g�̉i����
�@�@�X�e�b�v1�@�h���C�����f�����쐬����
�@�@�X�e�b�v2�@�i���N���X���`����
�@�@�X�e�b�v3�@�e�[�u�����쐬����
�@�@�X�e�b�v4�@�A�v���P�[�V�����R�[�h������
�@�@�X�e�b�v5�@���s����

�@�O��uJava�̃I�u�W�F�N�g�i�����ɉ���I�ԁH�v�ł́A�i�����̈Ӗ���A�i�����������̃A�v���P�[�V�����E�V�X�e���ɂƂ��ċ��ʂ̖��ł���A�������@��1�ʂ�ł͂Ȃ����Ƃ��q�ׂ܂����B����́AO/R�}�b�s���O�c�[���́uHibernate�v�ƁA�I�u�W�F�N�g�w���f�[�^�x�[�X�Ƃ��ẮuCaché�v�A���ꂼ��̎g�p���@����̓I�ɏЉ�A���̎g�����̈Ⴂ��ގ��_���m�F���Ă݂����Ǝv���܂��B

��Hibernate���g����Java�I�u�W�F�N�g�̉i����

�@�܂��AHibernate���g���ĉi����������@�����Ă݂܂��傤�BHibernate�͂��낢��Ȏg�p�󋵂��z�肳��Ă��āA���ꂼ��̏󋵂ɍ������g�������ł���悤�ɂȂ��Ă��܂��B�Ⴆ�΁A�u���łɉ^�p����RDBMS�����݂��Ă��āA���̃f�[�^���g�p���Ȃ���΂Ȃ�Ȃ��v��A�u�e�[�u���͎����Ő݌v�������v�i�}1�@�g�p��B�j�Ƃ������󋵂��l�����Ă��܂��B

�@�{�e�őz�肷��󋵂́A�V�K�̃V�X�e���J���ł��B�����āA�e�[�u���݌v�͍s���܂���B�i���X�g���[�W�ɂ�RDBMS���g�p���A�݌v�����I�u�W�F�N�g�E���f�����ł��邾���V���v���ɁA�e�[�u���Ȃǂ��ӎ������ɉi�����������A�Ƃ����󋵂�z�肵�܂��i�}1�@�g�p��A�j�B

�@�Ȃ��A����g�p����Hibernate�̃o�[�W������2.1.6�i�{�e���M���_�̍ŐV�o�[�W������3.1 beta2�j�ARDBMS�́uFirebird 1.5.1�v�ł��B

�@�}1�@Hibernate�̑z�肷��g�p��

�X�e�b�v1�@�h���C�����f�����쐬����

�@�{������1�ł̓h���C���E�I�u�W�F�N�g�Ƃ��āA�u�A�N�^�[�v�u���[�X�P�[�X�v�u�V�i���I�v�Ƃ��������O�̃I�u�W�F�N�g���o�ꂵ�܂��B�������A�����ł͖����ȑf�����邽�߂ɁA�ŏ���1�‚̃N���X�uCaObject�v�̉i�����������l���邱�Ƃɂ��܂��傤�B���l�ɁA�i������������Ԃ�String�^�̑����uname�v����1�‚Ƃ��܂��BCaObject�́A�u���[�X�P�[�X�v��u�V�i���I�v�̃X�[�p�[�N���X�Ƃ��āA�{����̒��œ��������N���X�ł��i�}2�j�B

��1�F �M�҂��{�e�����M������ƂƂȂ����J������u���[�X�P�[�X�L�q���쐬���邽�߂̃c�[���v�̂��ƁB�ڍׂ͑�1��uJava�̃I�u�W�F�N�g�i�����ɉ���I�ԁH�v���Q�ƁB

�}2�@�h���C�����f���̈ꕔ

�X�e�b�v2�@�i���N���X�ƃ}�b�s���O�����쐬����

�@CaObject���i�������邽�߂̒�`���Ƃ��āA2�‚�XML�t�@�C���ƁuCaObject.java�v���쐬���܂��B�e�t�@�C���̖ړI�͎��̂Ƃ���ł��B

�t�@�C���� �ړI
hibernate.cfg.xml
�i���X�g1�j
RDBMS�ւ̐ڑ����ƁA�}�b�s���O�t�@�C�����iCaObject.hbm.xml�j���w�肷��
CaObject.hbm.xml
�i���X�g2�j
�i���N���X�̃}�b�s���O�t�@�C���B�i��������N���X�̖��O�A��������^�Ȃǂ��w�肷��BHibernate�́A���̃}�b�s���O������Ƀe�[�u������񖼁A�^�Ȃǂ����肷��
CaObject.java
�i���X�g3�j
�i���N���X��Java�\�[�X�R�[�h�B�����ɂ́A�f�t�H���g�R���X�g���N�^�ƁA�e�i���t�B�[���h��setter�^getter���\�b�h���L�q����K�v������B���̗�ł́AHibernate���g�������ŕK�v�ŏ����̃R�[�h�����������Ă���
�\1�@Hibernate�ŕK�v�ƂȂ��`���

�@�e�t�@�C���̖ړI����A���̓��e�������悻�����ł���Ǝv���܂��B�����A1�’��ڂ��Ăق����_������܂��B�uid�v�Ƃ��������i���X�g2�A���X�g3�j�ł��B���̑����́A�}2�̃N���X�}�ɂ͂���܂���B����́A�e�[�u���iCaObject�e�[�u���j�̎�L�[�Ƃ���Hibernate���K�v�Ƃ��鑮���ł��B�������A���X�g2�A���X�g3�ɑ��݂��Ȃ��ꍇ�ɂ́AHibernate�ɂ���Ď����I�ɒlj�����܂���2�B

��2�F���Ƃ��ƃI�u�W�F�N�g�w���̐��E�ł́A�C���X�^���X����ӂɓ��肷�邽�߂̎��ʎq�́A���s�‹���I�u�W�F�N�g�w���f�[�^�x�[�X�ɂ���ĈÖٓI�ɒ񋟂���܂��B�A�v���P�[�V�������ł́A�K�{�̑����ł͂���܂���B�Ⴆ�΁u���[�X�P�[�X�v��u�A�N�^�[�v�Ȃǂ́A��L�[�ɑ������鑮���������܂��񂪁A�e�C���X�^���X�͐��������ʂ���܂��B�C���X�^���X����肷�鎯�ʎq�́A�C���X�^���X�̐������Ɏ����I�Ɋ��蓖�Ă���̂ł��B�‚܂�A�����ɒlj������uid�v�́ARDBMS���g�����߂ɕK�v�ȑ����Ȃ̂ł��B�������A���[�U�[���环�ʂł���悤�Ƀ��[�X�P�[�XID��A�N�^�[ID�Ȃǂ𓱓��������f���������Ǝv���܂��B

<?xml version="1.0" ?>
<!DOCTYPE hibernate-configuration PUBLIC 
"-//Hibernate/Hibernate Configuration DTD//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-2.0.dtd" >
<hibernate-configuration>
<session-factory>
    <!--Firebird JDBC Driver connection -->
    <property name="connection.driver_class">
      org.firebirdsql.jdbc.FBDriver
    </property>
    <property name="connection.url">
      jdbc:firebirdsql://localhost/C:/compass.fdb
    </property>
    <property name="connection.username">sysdba</property>
    <property name="connection.password">masterkey</property>
    <property name="dialect">
      net.sf.hibernate.dialect.FirebirdDialect
    </property>
    <property name="show_sql">false</property>
    <property name="use_outer_join">true</property>
    <!-- Mapping files -->
    <mapping resource="CaObject.hbm.xml"/>
</session-factory>
</hibernate-configuration>
���X�g1�@hibernate.cfg.xml

<?xml version="1.0" encoding="Shift_JIS"?> 
<!DOCTYPE hibernate-mapping PUBLIC 
"-//Hibernate/Hibernate Mapping DTD//EN" 
"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">
<hibernate-mapping> 
    <class name="CaObject" > 
        <id name="id" column="id" type="java.lang.Long"> 
            <generator class="sequence"/> 
        </id> 
        <property name="name" type="java.lang.String"/> 
    </class> 
</hibernate-mapping>
���X�g2�@CaObject.hbm.xml

public class CaObject  {
    private Long id;
    private String name;
    public CaObject() {
    }
    public Long getId() {
        return this.id;
    }
    public void setId(Long id) {
        this.id = id;
    }
    public String getName() {
        return this.name;
    }
    public void setName(String name) {
        this.name = name;
    }
}
���X�g3�@CaObject.java

�@ 1/3

�@Index
�Ό��I O/R�}�b�p�[ vs. �I�u�W�F�N�g�w��DB�i2�j
Hibernate��Caché�AJava�Ƃ̍D�����͂ǂ�����
Page 1
�E�͂��߂�
�EHibernate���g����Java�I�u�W�F�N�g�̉i����
�@ �X�e�b�v1�@�h���C�����f�����쐬����
�@ �X�e�b�v2�@�i���N���X�ƃ}�b�s���O�����쐬����
  Page 2
�@ �X�e�b�v3�@�e�[�u�����쐬����
�@ �X�e�b�v4�@�A�v���P�[�V�����R�[�h������
�@ �X�e�b�v5�@���s����
  Page 3
�ECaché���g����Java�I�u�W�F�N�g�̉i����
�@ �X�e�b�v1�@�h���C�����f�����쐬����
�@ �X�e�b�v2�@�i���N���X���`����
�@ �X�e�b�v3�@�e�[�u�����쐬����
�@ �X�e�b�v4�@�A�v���P�[�V�����R�[�h������
�@ �X�e�b�v5�@���s����


�Ό��I O/R�}�b�p�[ vs. �I�u�W�F�N�g�w��DB


Database Expert �t�H�[���� �V���L��
��IT���[���}�K�W���@�V������X�^�b�t�̃R���������[���œ͂��܂��i�����j

���ڂ̃e�[�}

Database Expert �L�������L���O

�{������