舉例訂單與客戶java
多對一關係模型:mysql
· 首先是導包;這個省略不寫了,sql
· 其次寫domain類數據庫
分爲Client Order兩個類,由於是多對一的關係,因此外鍵應該放在Order這個類裏;session
配置文件:hibernate.cfg.xmlapp
[java]dom
<hibernate-configuration>ide
<session-factory name="foo">函數
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>工具
<property name="connection.url">jdbc:mysql:///test</property>
<property name="connection.username">root</property>
<property name="connection.password">root</property>
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="show_sql">true</property>
<property name="hbm2ddl.auto">update</property>
<mapping resource="com/hbsi/domain/Client.hbm.xml"/>
<mapping resource="com/hbsi/domain/Order.hbm.xml"/>
</session-factory>
</hibernate-configuration>
定義一個Client的變量;
·而後寫配置文件,Client.hbm.xml
<hibernate-mapping package="com.hbsi.domain">
<class name="Client" table="client">//類名和表名
<id name="id" column="id">//變量和字段
<generator class= "native" />//根據數據庫裏的設置自定義
</id>
<property name="name" />
</class>
</hibernate -mapping>
Order.hbm.xml
<hibernate-mapping>
<class name="Order" table="ordershop">
<id name="id">
<generator class="native" />
</id>
<property name="shopname" column="shopname" />
<property name="number" column="number"/>
<property name = "price" column="price" />
<many-to-one name="client" column="client_id" />
<class>
</hibernate-mapping>
配置文件這樣就寫完了,接下來就是添加查找;
Session session=null;
@Test
public void add(Client client,Order order){
try{
session = HibernateUtil.getSession();//獲取工具類
session.beginTransaction();//開啓事務
/*Client client = new Client();
client.setName("劉總");
Order order1 = new Order();
order1.setShopname("航空母艦");
order1.setNumber(2);
order1.setPrice(22);
order1.setCt(client);
Order order2 = new Order();
order2.setShopname("航空母艦");
order2.setNumber(2);
order2.setPrice(22);
order2.setCt(client);*/
session.save(client);
session.save(order);
session.beginTransaction()。commit();
}finally{
if(session!=null){
session.close();
}
}
}
public void find(int id){
try{
session = HibernateUtil.getSession();
session.beginTransaction();
Order order = (Order) session.get(Order.class, id);
System.out.println(order.getCt()。getName());
session.beginTransaction()。commit();
}finally{
if(session!=null){
session.close();
}
}
}
測試:
public static void main(String[] args ){
Client client = new Client();
client.setName("xiao總");
Order order1 = new Order();
order1.setShopname("美國");
order1.setNumber(2);
order1.setPrice(22);
order1.setCt(client);
Order order2 = new Order();
order2.setShopname("日本");
order2.setNumber(2);
order2.setPrice(22);
order2.setCt(client);
Many2one mo = new Many2one();
mo.add(client, order1);
mo.find(2);
}
關係模型一對多:
Client.hbm.xml
<hibernate-mapping package="com.hbsi.domain2">
<class name="Client" table="client">
<id name="id" column="id">
<generator class = "native" />
</id>
<property name="name" />
<set name="order" table="ordershop" cascade="save-update">
<key column="user_id" />
<one-to-many class="Order" />
</set>
</class>
</hibernate-mapping>
Order.hbm.xml
<hibernate-mapping package="com.hbsi.domain2">
<class name="Order" table="ordershop">
<id name="id">
<generator class = "native" />
</id>
<property name="shopname" column="shopname" />
<property name="number" column="number" />
<property name="price" column="price" />
</class>
添加方法:
public void add(Client client,Order order){
try{
session = HibernateUtil.getSession();
session.beginTransaction();
session.save(client);
// session.save(order);
session.beginTransaction()。commit();
}finally{
if(session!=null){
session.close();
}
}
}
public void find(int id){
try{
session = HibernateUtil.getSession();
session.beginTransaction();
Client client = (Client) session.get(Order.class, id);
Set<Order> orders =client.getOrder();
orders.size();
session.beginTransaction()。commit();
}finally{
if(session!=null){
session.close();
}
}
}
----------------------------------------------構造函數和構造代碼塊比較
[java]
class Demo
{
public Demo()//構造函數(方法)
{ int a=90;
System.out.println("構造函數a="+a);
}
{
//構造代碼塊
int a=80;//未建立對象,不會運行。
System.out.println("構造代碼a="+a);
}
public static void main(String []args)
{
System.out.println("運行結果");
new Demo();
}
}