麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

hibernate的hello word(國內高手撰寫)

2019-11-18 13:55:34
字體:
來源:轉載
供稿:網友

  終于有點對hibernate入門的感覺。方便門外的學習者,給一個簡單的入門例子。
假如你有用過其他持久架構 轉到hibernate其實很簡單。一些原理方面就不講了,
robbin講的肯定比我好的多,自己去精華版看看。
我所給的只是我當初剛開始接觸hibernate時候很想要的一個簡單例子和設置方法。
一直沒有找到,所以現在放到這里給大家看看,(只給想要入門的一個直觀的感應,呵呵)

首先當然要新建一個項目

然后在PRoject Properties->Paths->Required Libraries->add->new 這里定義hibernate的類庫 把hibernate的lib下面的所有jar包進去 當然還有hibernate2.jar也要
然后一路ok下去就可以了。

再來就是hibernate.properties
從hibernate的src下面找到
把它拷到你項目的src目錄下
(什么,你的項目沒有src目錄,新建一個隨便的類就有src目錄了)

這樣一個JB下面的hibernate的開發環境就好了

然后在hibernate.properties里面設置你的數據庫連接
默認是HypersonicSQL

嗯 接下來的是你最想要做的事情了 其實很簡單
新建一個類Message.java
代碼如下

代碼:
package hello;

import java.io.Serializable;

/**
* @author getdown
* @version 1.0
*/

public class Message implements Serializable {
private Long id;
private String text;
//定義一個簡單鏈表 指向另外的一個Message
private Message nextMessage;
public Message() {}

public Message(Long id) {
this.id = id;
}

public Message(String text) {
this.text = text;
}

public Message(Long id, String text) {
this.id = id;
this.text = text;
}

public Long getId() {
return id;
}

private void setId(Long id) {
this.id = id;
}

public String getText() {
return text;
}

public void setText(String text) {
this.text = text;
}

public Message getNextMessage() {
return nextMessage;
}

public void setNextMessage(Message nextMessage) {
this.nextMessage = nextMessage;
}

}

接下來是這個類對應的hibernate的配置文件 Message.hbm.xml

代碼:
<?xml version="1.0"?>

<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 2.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">
<hibernate-mapping>
<!--定義類和表的對應-->
<class
name="hello.Message"
table="Messages"
>
<!--定義ID字段和生成ID的策略 這里采用identity-->
<id name="id"
column="MESSAGE_ID"
>
<generator class="identity"/>
</id>
<!--定義里面的text字段-->
<property
name="text"
type="string">
<!--定義text字段在數據庫里面生成的方法-->
<column
name="TEXT"
length="100"
not-null="true"
/>
</property>
<!--定義對象關聯之間的對應關系和關聯的字段-->
<many-to-one
name="nextMessage"
cascade="all"
column="NEXT_MESSAGE_ID"
/>
</class>
</hibernate-mapping>

然后就是測試類

代碼:
package hello;

import net.sf.hibernate.cfg.Configuration;
import net.sf.hibernate.sessionFactory;
import net.sf.hibernate.tool.hbm2ddl.SchemaEXPort;
import net.sf.hibernate.Session;
import net.sf.hibernate.Query;
import net.sf.hibernate.Hibernate;
import net.sf.hibernate.type.LongType;
import net.sf.hibernate.Transaction;



/**
* @author getdown
* @version 1.0
*/

public class Hello {
public Hello() {
}

public static void main(String[] args) throws Exception {
Configuration cfg = new Configuration().addClass(Message.class);

/** 顧名思義 構建表。。。第一次運行的時候運行下面語句可以在數據庫生成表
* 之后可以把下面這句去掉
* */
// new SchemaExport(cfg).create(true, true);

//先生成sessionFactory
SessionFactory sessions = cfg.buildSessionFactory();
//再從sessionFactory得到一個session
Session session = sessions.openSession();
//開始對數據庫的操作



/*----對數據庫的創建操作--------*/
Message message = new Message("helloWorld");
//創建一條記錄
session.save(message);
//存入記錄
session.flush();


/*---對數據庫的查詢操作---------------*/
// Message message = new Message();
// Query q = session.createQuery("from Message as message where message.id=1");
// message = (Message) q.list().get(0);
// message.getNextMessage().setText("helloNext");
// session.flush();
// session.close();
// Long id = new Long(1);
// Message message = (Message) session.find("from Message as message where message.id=?", id, Hibernate.LONG).get(0);
// System.out.println(message.getText());


// /*-------事務的處理----------------*/
// Transaction tx = session.beginTransaction();
// try {
// Message message = new Message("hello");
// session.save(message);
// session.flush();
// message = new Message("hello");
// session.save(message);
// session.flush();
// tx.commit();
// }
// catch (HibernateException ex) {
// tx.rollback();
// }

/*-------添加1000條記錄時間--------------*/
// Message message;
// long start = System.currentTimeMillis();
// for(int i = 0; i < 1000; i ++) {
// message = new Message("hello");
// session.save(message);
// session.flush();
// }
// long end = System.currentTimeMillis();
// System.out.println("添加1000條記錄時間---" + (end-start)/1000 + "s");



session.close();


}

}

ok了 運行一下Hello看看出來什么吧
怎么樣 比起CMP的持久 hibernate的持久是不是顯得很輕量級。。
還可以試試看hibernate的性能 把Hello.java的最后一段注釋去掉運行看看

當然hibernate最重要的還是它的原理,還有很多很好的,很有趣的功能和O/RM設計思想等著你自己發掘。
多看看它自己的文檔,可以學到很多東西,它的文檔真的非常好。


呵呵 我是剛剛接觸hibernate不久 和所有hibernate的學習者共同學習
MSN : [email protected]

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 黄色男女视频 | 亚洲射吧 | 强伦女教师视频 | 成人精品一区二区 | 久草在线手机视频 | xxxxxx打针视频vk | 国产成人小视频在线观看 | 人成免费a级毛片 | 一区二区精品视频 | 国产精品hd免费观看 | 亚洲一区二区三区四区精品 | 久久精品一二三区 | 国产一级毛片a | 一级黄色国产视频 | 黄色av网站免费看 | 久久精品国产一区二区 | 在线亚洲播放 | 亚洲热线99精品视频 | 毛毛片在线看 | 精品国产一区二区三区天美传媒 | 成人黄色短视频在线观看 | 国产精选电影免费在线观看网站 | 欧美黄色免费视频 | 日韩每日更新 | 欧美精品一区二区久久 | 毛片在线免费观看视频 | 久草在线公开视频 | www.91成人| 日韩黄色av网站 | 羞羞视频| 欧美成人一级片 | 久久成年人视频 | 国产精品一区在线观看 | www.91sese| 成人在线视频免费观看 | 日本中文一级片 | 男女无套免费视频 | 黄色片免费看看 | 精品国产91久久久久久久妲己 | 成人午夜免费在线视频 | 黄色一级片在线免费观看 |