hibernate Xml 方式

A 标签解析:

 (1) dynamic-insert="false" 和 dynamic-update="false"

            1.这两者的意思为,动态发送语句,如果为flase,session.get()查询得到后,进行update的话,那么所有的字段都将update(没有改变的不会动)

update
        NEWS
    set
        TITLE=?,
       AUTHOR=?,
        DATE=?
    where
        ID=?

            2.如果为true的话,将会动态发送sql 

    update
        NEWS
    set
        AUTHOR=?
    where
        ID=?

           两者的区别在sql语句中的set下面将会有体现,这个标签配置要和 update="true" 区别开

 (2) outer-join="true" 和 fetch="join/select"

            1.antype.class的外键是被引入的,设置了outer-join="true" lazy 的设置就失效,在查询antype的时候,就算session关闭了,dog.class也就被查出来了,并封装成了对象;

            2.fetch定义的是两个关联对象的抓取策略,得到一个对象时怎么去得到另外一个对象,是通过连接查询(join)还是另外发起一条sql(select).

            3.outer-join和fetch这两个是不冲突的.

            4.如果设置了fetch="join",及时取出了另一个对象.如果设置了fetch="select",没有及时取出,session关闭,报错.

 (3) cascade="all" 和 inverse="true"

             1.cascade设置级联关系,如果设置了级联关系,当保存一个对象时,关联对象就被增删改查.

                在删除时,如果没有断开级联的关系,所相关的所有数据就会被全部删除,改数据时,如果使用load get itartor 这些方法时,就会自动检查级联关系,如果用hql语句的话,是没有级                   联关系的.

              2. inverse 相当于在注解方法中的 mappedBy = "引入名" ,意义为反向管理,不会生成两个引入键的情况,表结构变为双向关联.

 (4) composite-id 用于生成联合主键的标签,内部标签有两个,如果引入别的表的键,要用<many-to-one>配置类,如果单纯的联合主键,用<key-property>配置.

 (5) component 分割表时用的标签.

B 源代码:

 (1) one-to-one 主键依赖外表的主键

idcard.class

package com.bean;
public class idcard {
private String pid;
private String iname;
private person person;

public String getPid() {

	return pid;
}
public void setPid(String pid) {
	this.pid = pid;
}
public String getIname() {
	return iname;
}
public void setIname(String iname) {
	this.iname = iname;
}
public person getPerson() {
	return person;
}
public void setPerson(person person) {
	this.person = person;
}
public idcard() {
}
}
person.class
package com.bean;

public class person {
private String pid;
private String pname;
private idcard idcard;

public idcard getIdcard() {
	return idcard;
}
public void setIdcard(idcard idcard) {
	this.idcard = idcard;
}
public String getPid() {
	return pid;
}
public void setPid(String pid) {
	this.pid = pid;
}
public String getPname() {
	return pname;
}
public void setPname(String pname) {
	this.pname = pname;
}
public person() {
}
}
idcard.hbm.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">
<!-- 
    Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
<class name="com.bean.idcard" table="new.idcard" >
<id column="pid" name="pid" type="string">
 <generator class="foreign">
 <param name="property">person</param><!--这种情况是该表的主键是引用了person的主键生成的-->
 </generator>
</id>
<property name="iname" column="iname" type="string"></property>
<one-to-one name="person" class="com.bean.person" ></one-to-one>
</class>
</hibernate-mapping>
person.hbm.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">
<!-- 
    Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
<class name="com.bean.person" table="new.person" >
<id column="pid" name="pid" type="string">
 <generator class="uuid"></generator>
</id>
<property name="pname" column="pname" type="string"></property>
<one-to-one name="idcard" class="com.bean.idcard" ></one-to-one>
</class>

</hibernate-mapping>

 (2) many-to-one

package com.bean;

import java.util.Set;

public class antype {
private String aid;
private String aname;
private Set<dog> dog;

public Set<dog> getDog() {
	return dog;
}
public void setDog(Set<dog> dog) {
	this.dog = dog;
}
public String getAid() {
	return aid;
}
public void setAid(String aid) {
	this.aid = aid;
}
public String getAname() {
	return aname;
}
public void setAname(String aname) {
	this.aname = aname;
}
public antype() {
	
}
public antype(String aid, String aname) {

	this.aid = aid;
	this.aname = aname;
}

}
package com.bean;

public class dog {
private String did;
private String dname;
private antype antype;
public String getDid() {
	return did;
}
public void setDid(String did) {
	this.did = did;
}
public String getDname() {
	return dname;
}
public void setDname(String dname) {
	this.dname = dname;
}
public antype getAntype() {
	return antype;
}
public void setAntype(antype antype) {
	this.antype = antype;
}
public dog() {
	// TODO Auto-generated constructor stub
}
public dog(String did, String dname, antype antype) {
	
	this.did = did;
	this.dname = dname;
	this.antype = antype;
}

}
<?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">
<!-- 
    Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
<class name="com.bean.antype" table="new.antype" >
<id column="aid" name="aid" type="string">
 <generator class="uuid"></generator>
</id>
<property name="aname" column="aname" type="string" ></property>
<set name="dog" table="new.dog" lazy="true" inverse="true">
<key column="aid"></key>
<one-to-many class="com.bean.dog" />
</set>
</class>

</hibernate-mapping>
dog.hbm.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">
<!-- 
    Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
<class name="com.bean.dog" table="new.dog" lazy="false">
<cache usage="read-write"/>
<id column="did" name="did" type="string">
 <generator class="uuid"></generator>
</id>
<property name="dname" column="dname" type="string"></property>
<many-to-one name="antype" fetch="join" outer-join="true" class="com.bean.antype" column="aid" cascade="all" ></many-to-one>
</class>

</hibernate-mapping>

 (3) many-to-many

package com.bean;

import java.util.Set;

public class biaozi {
private String bid;
private String bname;
private Set<nanren> nanren;
public Set<nanren> getNanren() {
	return nanren;
}
public void setNanren(Set<nanren> nanren) {
	this.nanren = nanren;
}
public String getBid() {
	return bid;
}
public void setBid(String bid) {
	this.bid = bid;
}
public String getBname() {
	return bname;
}
public void setBname(String bname) {
	this.bname = bname;
}
public biaozi() {
	// TODO Auto-generated constructor stub
}
}
package com.bean;

import java.util.Set;

public class nanren {
private String nid;
private String nname;
private Set<biaozi> biaozi;

public Set<biaozi> getBiaozi() {
	return biaozi;
}
public void setBiaozi(Set<biaozi> biaozi) {
	this.biaozi = biaozi;
}
public String getNid() {
	return nid;
}
public void setNid(String nid) {
	this.nid = nid;
}
public String getNname() {
	return nname;
}
public void setNname(String nname) {
	this.nname = nname;
}
public nanren() {
	// TODO Auto-generated constructor stub
}
}

<?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">
<!-- 
    Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
<class name="com.bean.biaozi" table="new.biaozi" >
<id column="bid" name="bid" type="string">
 <generator class="uuid"></generator>
</id>
<property name="bname" column="bname" type="string"></property>
<set name="nanren" table="new.jiaopei">
<key column="bid"></key>
<many-to-many column="nid" class="com.bean.nanren"></many-to-many>
</set>
</class>

</hibernate-mapping>

<?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">
<!-- 
    Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
<class name="com.bean.nanren" table="new.nanren" >
<id column="nid" name="nid" type="string">
 <generator class="uuid"></generator>
</id>
<property name="nname" column="nname" type="string"></property>
<set name="biaozi" table="new.jiaopei">
<key column="nid"></key>
<many-to-many class="com.bean.biaozi" column="bid"></many-to-many>
</set>
</class>

</hibernate-mapping>

 (4) 联合主键,联合主键引用了别的表的主键,联合主键并被别的表作为外键

package com.bean;

public class yumi {
private yid corid;
private String yname;
public yid getCorid() {
	return corid;
}
public void setCorid(yid corid) {
	this.corid = corid;
}

public String getYname() {
	return yname;
}
public void setYname(String yname) {
	this.yname = yname;
}
public yumi() {
	
}
}

package com.bean;

import java.io.Serializable;

public class yid implements Serializable{
private writer writer;
private sun sun;

public writer getWriter() {
	return writer;
}

public void setWriter(writer writer) {
	this.writer = writer;
}

public sun getSun() {
	return sun;
}

public void setSun(sun sun) {
	this.sun = sun;
}

public yid() {
	// TODO Auto-generated constructor stub
}
}

package com.bean;

public class writer {
private String wid;
private String wname;
public String getWid() {
	return wid;
}
public void setWid(String wid) {
	this.wid = wid;
}
public String getWname() {
	return wname;
}
public void setWname(String wname) {
	this.wname = wname;
}
public writer() {
	// TODO Auto-generated constructor stub
}
public writer(String wid, String wname) {

	this.wid = wid;
	this.wname = wname;
}

}

package com.bean;

public class sun {
private String sid;
private String sname;
public String getSid() {
	return sid;
}
public void setSid(String sid) {
	this.sid = sid;
}
public String getSname() {
	return sname;
}
public void setSname(String sname) {
	this.sname = sname;
}
public sun() {
	// TODO Auto-generated constructor stub
}
public sun(String sid, String sname) {
	
	this.sid = sid;
	this.sname = sname;
}

}

package com.bean;

import java.util.Set;

public class Zhiwu {
private int id;
private String name;
private yumi yumi;
public int getId() {
	return id;
}
public void setId(int id) {
	this.id = id;
}
public String getName() {
	return name;
}
public void setName(String name) {
	this.name = name;
}
public yumi getYumi() {
	return yumi;
}
public void setYumi(yumi yumi) {
	this.yumi = yumi;
}

}

<?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">
<!-- 
    Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
<class name="com.bean.sun" table="new.sun" >
<id column="sid" name="sid" type="string">
 <generator class="uuid"></generator>
</id>
<property name="sname" column="sname" type="string"></property>

</class>

</hibernate-mapping>

<?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">
<!-- 
    Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
<class name="com.bean.writer" table="new.writer" >
<id column="wid" name="wid" type="string">
 <generator class="uuid"></generator>
</id>
<property name="wname" column="wname" type="string"></property>

</class>

</hibernate-mapping>

<?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">
<!-- 
    Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
<class name="com.bean.yumi" table="new.yumi">
<composite-id class="com.bean.yid" name="corid">
<key-many-to-one name="sun" column="sid" class="com.bean.sun"></key-many-to-one>
<key-many-to-one name="writer" column="wid" class="com.bean.writer"></key-many-to-one>
</composite-id>
<property name="yname" column="yname" type="string"></property>
</class>

</hibernate-mapping>

<?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">
<!-- 
    Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
<class name="com.bean.Zhiwu" table="new.zhiwu" >
<id column="id" name="id" type="big_decimal">
 <generator class="assigned"></generator>
</id>
<property name="name" column="name" type="string"></property>
<many-to-one name="yumi" class="com.bean.yumi" >
<column name="Z_ID"></column>
<column name="Z_NAME"></column>
</many-to-one>
</class>

</hibernate-mapping>

(5) 分割表 将一张表的数据分为多各类

package com.bean;

public class Company {
private int id;
private String name;
private CompanyTel companyTel;
public int getId() {
	return id;
}
public void setId(int id) {
	this.id = id;
}
public String getName() {
	return name;
}
public void setName(String name) {
	this.name = name;
}
public CompanyTel getCompanyTel() {
	return companyTel;
}
public void setCompanyTel(CompanyTel companyTel) {
	this.companyTel = companyTel;
}

}

package com.bean;

import java.io.Serializable;

public class CompanyTel implements Serializable{
private int id;
private String num;
public int getId() {
	return id;
}
public void setId(int id) {
	this.id = id;
}
public String getNum() {
	return num;
}
public void setNum(String num) {
	this.num = num;
}

}

<?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">
<!-- 
    Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
<class name="com.bean.Company" table="new.Company" >
<id column="C_ID" name="id" type="big_decimal">
 <generator class="native"></generator>
</id>
<property name="name" column="C_NAME" type="string"></property>
<component name="companyTel" class="com.bean.CompanyTel" lazy="false">
<property name="num" column="C_NUM" ></property>
</component>
</class>

</hibernate-mapping>

(6) hibernage.cgf.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">

	<!-- Generated by MyEclipse Hibernate Tools.                   -->
<hibernate-configuration>
<session-factory>
	<property name="connection.driver_class">
		oracle.jdbc.OracleDriver
	</property>
	<property name="connection.url">
		jdbc:oracle:thin:@127.0.0.1:1521:orcl
	</property>
	<property name="connection.username">new</property>
	<property name="connection.password">sa</property>
	<property name="connection.provider_class">
		org.hibernate.connection.C3P0ConnectionProvider
	</property>
	<property name="c3p0.max_size">100</property>
	<property name="c3p0.min_size">20</property>
	<property name="c3p0.timeout">1000</property>
	<property name="hibernate.cache.provider_class">
		org.hibernate.cache.HashtableCacheProvider
	</property>
	<property name="hibernate.show_sql">true</property>
	<property name="hibernate.cache.use_second_level_cache">
		true
	</property>
	<property name="hibernate.cache.use_query_cache">true</property>
	<property name="dialect">
		org.hibernate.dialect.Oracle9Dialect
	</property>
	<!-- <property name="hbm2ddl.auto">create</property>   -->
	<property name="hbm2ddl.auto">update</property>
	<!-- <mapping resource="com/bean/big.hbm.xml" />
	<mapping resource="com/bean/sun.hbm.xml" />
	<mapping resource="com/bean/writer.hbm.xml" />
	<mapping resource="com/bean/yumi.hbm.xml" />
	<mapping resource="com/bean/dog.hbm.xml" />
	<mapping resource="com/bean/antype.hbm.xml" />
	<mapping resource="com/bean/person.hbm.xml" />
	<mapping resource="com/bean/idcard.hbm.xml" />
	<mapping resource="com/bean/biaozi.hbm.xml" />
	<mapping resource="com/bean/nanren.hbm.xml" />
	<mapping resource="com/bean/Zhiwu.hbm.xml" />
	<mapping resource="com/bean/Company.hbm.xml" />-->
	<!-- <mapping class="com.bean.T_Auto_Test"/> --> 
    <mapping resource="com/bean/dog.hbm.xml" />
	<mapping resource="com/bean/antype.hbm.xml" />
</session-factory>
</hibernate-configuration>






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值