您的位置:首页 > 数据库

Hibernate映射文件反向生成数据库表

2017-08-23 09:25 309 查看
    注意:类里的属性是boolean类型,生成表到数据库,oracle是number类型,mysql是char类型,而且只识别1/0,插入的数据为true,默认转为1;为false默认转为0;

每个实体的mapping里写的那个类,做增删改查写sql时操纵那个类,哪怕这个类全是方法实现

实例内容()

1:eg:CampusPO.XML(一方)

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping package="com.sudytech.base.asset.server.om">
<class name="CampusPO" table="T_XQ">



<id column="Code" name="code" type="string" length="20">
<generator class="assigned"></generator>
</id>

<property column="Name" name="name" type="string" length="90" />
<property column="Sort" name="sort" type="string" />
<property column="Valid" name="valid" type="java.lang.Boolean" />
<bag name="building2" cascade="all" inverse="true" lazy="false">
<key column="T_XQid"></key>
<one-to-many class="BuildingPO" />
</bag>
<bag name="site2" cascade="all" inverse="true" lazy="false">
<key column="T_XQid"></key>
<one-to-many class="SitePO" />
</bag>

</class>

</hibernate-mapping>



<!--创建xml文件根据工具自动设置的-->


<?xml version="1.0" encoding="UTF-8"?      

<!--表示mapping映射遵循的3.0规范是有效文档,其符合其文档类型定义(DTD)的文档,dtd看作编写xml文件的模板。对于同行业之间的xml数据交,有一个固定的dtd将会方便很多,--
>          

<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<!--  映射文件对应的实体类所在的包路径,加了它可以省去每个class都要写全name,如果不写这一项则<class
…>中的name=”CampusPO” 则要在User之前加上具体的包路径-->
                                     -->

<hibernate-mapping package="com.sudytech.base.asset.server.om">

<!--table,表名,必须跟数据库一致-->

<class name="CampusPO" table="t_cdsq_campus">

<!--主键必须有-->

<id column="Code" name="code" type="string" length="20">

<!--主键生成策略-->

<generator class="assigned"></generator>
</id>
<!--所有实体类属性和列名可以不一样-->

<property name="code" column="code" />

<property name="name" column="name" />

<property name="sort" column="sort" />

<property name="valid" column="valid" />

<!--关联外键,指的是在关联表里的外键,不是当前类所对应表里的关联键

<bag name="building2" cascade="all" inverse="true" lazy="false">
<key column="T_XQid"></key>

<one-to-many class="BuildingPO" />

</bag>

<!--当前类与set集合的一对多关系-->

<one-to-many class="BuildingPO" />

</bag>

</class>

</hibernate-mapping>

2:eg:BuildingPO.xml(多方)

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping package="com.sudytech.base.asset.server.om">
<class name="BuildingPO" table="T_JZW">
<id column="Code" name="code" type="string" length="20">
<generator class="assigned"></generator>
</id>

<property column="Name" name="name" type="string" length="90" />
<property column="Sort" name="sort" type="string" />
<property column="Valid" name="valid" type="java.lang.Boolean" />            
<bag name="dorm2" cascade="all" inverse="true" >
<key column="T_buildingid"></key>
<one-to-many class="DormPO" />
</bag>
<many-to-one name="campus2" column="T_XQid" lazy="proxy"
class="CampusPO" ></many-to-one>
<many-to-one name="sitePo" column="siteid" lazy="proxy"
class="SitePO"></many-to-one>
</class>

</hibernate-mapping>

3:eg:Hibernate.cfg.xml

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<hibernate-configuration>

  <session-factory>

    <property name="proxool.pool_alias">proxoolPool</property>

    <property name="proxool.xml">proxool-ora.xml</property>

    <property name="connection.provider_class">org.hibernate.connection.ProxoolConnectionProvider

    </property>

    <property name="dialect">org.hibernate.dialect.OracleDialect</property>

    <property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property>

    <property name="show_sql">true</property>

    <property name="format_sql">false</property>

    <property name="hibernate.connection.SetBigStringTryClob">true</property>

<!-- base-Asset -->

 <mapping resource="com/sudytech/base/asset/server/om/xml/BuildingPO.hbm.xml"/>

 <mapping resource="com/sudytech/base/asset/server/om/xml/CampusPO.hbm.xml"/>

 <mapping resource="com/sudytech/base/asset/server/om/xml/DormPO.hbm.xml"/>

 <mapping resource="com/sudytech/base/asset/server/om/xml/EquipmentPO.hbm.xml"/>

 <mapping resource="com/sudytech/base/asset/server/om/xml/SitePO.hbm.xml"/>

 <mapping resource="com/sudytech/base/asset/server/om/xml/SiteTypePO.hbm.xml"/>

  </session-factory>

</hibernate-configuration>

<!--必须加这一句 creata -->
    <property name="hbm2ddl.auto">update</property>

4:eg:proxool-ora.xml(oracle数据库用)

<?xml version="1.0" encoding="utf-8"?>

<something-else-entirely>

    <proxool>

        <alias>proxoolPool</alias>

        <driver-url>jdbc:oracle:thin:@127.0.0.1:1521:orcl</driver-url>

        <driver-class>oracle.jdbc.OracleDriver</driver-class>

        <driver-properties>

            <property name="user" value="scott"/>

            <property name="password" value="tiger"/>

        </driver-properties> 

        <maximum-connection-count>300</maximum-connection-count>

        <minimum-connection-count>10</minimum-connection-count>

        <house-keeping-sleep-time>120000</house-keeping-sleep-time>

        <simultaneous-build-throttle>30</simultaneous-build-throttle>

        <prototype-count>10</prototype-count>

        <maximum-active-time>25200000</maximum-active-time>

        <maximum-connection-lifetime>27000000</maximum-connection-lifetime>

    </proxool> 

</something-else-entirely>

 

  </session-factory>

</hibernate-configuration>

5:eg:proxool.xml(mysql数据库用)

<?xml version="1.0" encoding="utf-8"?>

<something-else-entirely>

    <proxool>

        <alias>proxoolPool</alias>

        <driver-url>jdbc:mysql://127.0.0.1:3306/CorePlus3?characterEncoding=UTF-8</driver-url>

        <driver-class>com.mysql.jdbc.Driver</driver-class>

        <driver-properties>

            <property name="user" value="root"/>

            <property name="password" value="12344"/>

        </driver-properties>     

        <!--  <driver-url>jdbc:oracle:thin:@localhost:1521:orcl</driver-url>

        <driver-class>oracle.jdbc.OracleDriver</driver-class>

        <driver-properties>

            <property name="user" value="scott"/>

            <property name="password" value="password"/>

        </driver-properties>-->

        <maximum-connection-count>300</maximum-connection-count>

        <minimum-connection-count>10</minimum-connection-count>

        <house-keeping-sleep-time>120000</house-keeping-sleep-time>

        <simultaneous-build-throttle>30</simultaneous-build-throttle>

        <prototype-count>10</prototype-count>

        <maximum-active-time>25200000</maximum-active-time>

        <maximum-connection-lifetime>27000000</maximum-connection-lifetime>

     

    </proxool>

</something-else-entirely>:

6:eg:test

public class test extends HiberSession{

public  static void main(String a[]){

Configuration conf=new Configuration();  
   conf.configure("hibernate.cfg.xml");  

        //创建工厂  

        SessionFactory sf=conf.buildSessionFactory();

运行就行;


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  反向生成数据库
相关文章推荐