注意:类里的属性是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();
运行就行;