日本免费精品_最新日韩一区_亚洲视频一区在线_a在线视频观看_天天射夜夜骑_粉嫩av一区二区三区_欧美中日韩免费视频_综合图区欧美_国内精品美女在线观看_午夜精品久久久久久久男人的天堂

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

Hibernate入門

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

  本文配置環境:
JBuilder X
jdk 1.4.2
MySQL 4.0.11 驅動:mm.mysql-2.0.4-bin.jar(org.gjt.mm.mysql.Driver)
Hibernate 2.1

解壓Hibernate

打開JB,新建工程,名為:hibernate 
加入Hibernate需要的包與MYSQL驅動
步驟:file->new PRoject->name中輸入hibernate,Directory選擇你要存放本工程的路徑->next

->required libraries->add->new->name中輸入你要設置的hibernate包名/r

->add->選擇你hibernate解壓到的目錄,選中該目錄下的hibernate2.jar與lib目錄下的所有jar包,再把你的MYSQL驅動包也加進去

然后一直按OK,next。

新建一個類,名為Hello_Bean.java,代碼如下:

 

package hibernate;

import java.io.Serializable;

/**
* @author geezer
QQ:9986986 MSN:geezer_hot@hotmail.com
*/

public class Hello_Bean implements Serializable {

private String name;//這里name與address和id的名字可以自己定,不會有什么影響.但get與set方法不可以。因為那得跟數據庫與配置文件對應。

private String address;

private int id;



public Hello_Bean() {

}

public Hello_Bean(String name, String address) {//構造函數,看完本章以后相信你會明白的了
this.name = name;
this.address = address;
}

public String getName() {//此方法名必須與Hello_Bean.hbm.xml文件里的對應的名字一樣,下面會具體講
return name;
}

public void setName(String name) {
this.name = name;
}

public String getAddress() {
return address;
}

public void setAddress(String address) {
this.address = address;
}

public int getId() {//必須的方法
return id;
}

public void setId(int id)//必須的方法
{
this.id = id;
}


}

 

完成這一步以后編譯/r

將hibernate解壓后的目錄下的src文件夾里的hibernate.properties與log4j.properties文件復制到你的工程目錄的classes目錄下

(例如hibernate/classes/目錄下),

打開hibernate.properties文件,找到

## HypersonicSQL

hibernate.dialect net.sf.hibernate.dialect.HSQLDialect
hibernate.connection.driver_class org.hsqldb.jdbcDriver
hibernate.connection.username sa
hibernate.connection.passWord
hibernate.connection.url jdbc:hsqldb:hsql://localhost
hibernate.connection.url jdbc:hsqldb:test
hibernate.connection.url jdbc:hsqldb:.

改為

## HypersonicSQL

#hibernate.dialect net.sf.hibernate.dialect.HSQLDialect
#hibernate.connection.driver_class org.hsqldb.jdbcDriver
#hibernate.connection.username sa
#hibernate.connection.password
#hibernate.connection.url jdbc:hsqldb:hsql://localhost
#hibernate.connection.url jdbc:hsqldb:test
#hibernate.connection.url jdbc:hsqldb:.

再找到

## MySQL

#hibernate.dialect net.sf.hibernate.dialect.MySQLDialect
#hibernate.connection.driver_class org.gjt.mm.mysql.Driver
#hibernate.connection.driver_class com.mysql.jdbc.Driver
#hibernate.connection.url jdbc:mysql:///test
#hibernate.connection.username root
#hibernate.connection.password 

改為


## MySQL

hibernate.dialect net.sf.hibernate.dialect.MySQLDialect
hibernate.connection.driver_class org.gjt.mm.mysql.Driver
hibernate.connection.url jdbc:mysql://localhost:3306/test
hibernate.connection.username root
hibernate.connection.password 

上面的URL請改為你自己的

完成以后創建一個空的文件,保存在你工程的類文件同個文件夾里(例如hibernate/classes/hibernate/目錄下),文件名為:Hello_Bean.hbm.xml

內容如下:

 

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

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

<class name="hibernate.Hello_Bean" table="test_hibernate" >

<id name="id" column="id">

<generator class="identity"/>

</id>

<property name="name" type="string" update="true" insert="true" column="name" />
<property name="address" type="string" update="true" insert="true" column="address" />

</class>

</hibernate-mapping>

 

稍微解釋一下,<class name="hibernate.Hello_Bean" table="test_hibernate" >里的name指你的生成表的類,

table則指定你要創建的數據庫表的名字,可以自由修改,沒有影響.

<id name="id" column="id">設置主鍵ID,這里name的值id跟Hello_Bean.java里的方法getId與setId對應,不用管這個,hibernate會自動調用,配置好就可以了,column的值為要生成的字段名,可以自由修改,沒有影響。

<generator class="identity"/>屬性讓主鍵的ID自增(插入數據的時候自動加1)

<property name="name" type="string" update="true" insert="true" column="name" />這里的name值"name"跟Hello_Bean.java里的getName方法對應,column為要生成的字段名/r
<property name="address" type="string" update="true" insert="true" column="address" />

分別添加一個字段name與address,注重這里的type屬性類型為string,假如這里的類型與Hello_Bean.java里設置的類型不一樣會出錯。

修改完以后保存。

最后在JB里新建一個類,名字為Hello.java,我會一步步解釋,代碼如下:

 

package hibernate;

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;
import net.sf.hibernate.ScrollableResults;
import java.util.*;

/**
* @author geezer
* QQ:9986986 MSN:geezer_hot@hotmail.com
*/


public class Hello {


public Hello() {


}

public static void main(String[] args) throws Exception {

Configuration cfg = new Configuration().addClass(Hello_Bean.class);//用Hello_Bean.class類初始化

SessionFactory sessions = cfg.buildSessionFactory();//用buildSessionFactory方法得到一個SessionFactory對象/r

Session session = sessions.openSession();//再用SessionFactory的openSession方法得到一個session

 

new SchemaExport(cfg).create(true, true);//這句意思是創建表,第一次運行以后,就是創建完表以后再把這行加上注釋。假如建表以后不把這一句注釋掉的話會刪掉以前創建的表再重新建一個。


 

Hello_Bean my_hibernate = new Hello_Bean();//得到一個Hello_Bean對象/r

my_hibernate.setName("my_name");//設置Hello_Bean對象的name值為my_name,這里其實就是說把字符串my_name當作數據庫字段name的值.數據庫字段name與Hello_Bean類里的getName,setName方法是對應的。形成一個映射關系。

my_hibernate.setAddress("my_address");//如上

session.save(my_hibernate);//這句很重要,將my_hibernate對象寫進數據庫(my_hibernate對象里的name與address我們剛剛已經設置了值了,會直接把name,address的值寫進數據庫去)

session.flush();
session.close();


//上面是一個簡單的插入數據與第一次運行建表的介紹,下面我再介紹刪除與修改的方法,下面的代碼我都加了注釋,自己需要什么方法(刪除,修改,循環數據庫的值)就把注釋去掉就可以了
HSQL比較簡單,大家看一下例子就應該明白了,這里就不講了。
遍歷數據庫的方法有三種,分別是Query,find,iterate,Query和find返回一個List接口,iterate返回一個Iterator,具體方法可以查看這些類得知。

//刪除數據
/*
int a=session.delete("from Hello_Bean where id=1");//假如沒有找到id為1的數據那么返回0,假如找到返回1,這里的Hello_Bean是我們的Hello_Bean類,他跟數據庫表對應,所以我們在這里是直接用Hello_Bean來代碼數據庫表的。
System.out.println(a);
session.flush();
session.close();

*/

//Query方法查詢數據
/*
Hello_Bean my_hibernate = null;
Query q = session.createQuery("from Hello_Bean");
// Query q = session.createQuery("from Hello_Bean where name=?");//這里的?跟JDBC的PreparedStatement方法的差不多,只不過這里的是以0開始,jdbc的是1開始。
// q.setString(0,"my_name");
// q.setFirstResult(0);//這句話的意思是說查詢結果從第幾行開始列出數據
// q.setMaxResults(3);//這句話的意思是取多少條數據,就跟SQL SERVER的TOP方法和MYSQL的LIMIT方法一樣的意思。
// ScrollableResults sc=q.scroll();//得到一個ScrollableResults,可滾動的,假如你的數據庫支持游標自由移動的話可以加上,也就是說可以判定查詢結果有沒有值,或者移動到下一行記錄等等。

// if(!sc.next())
// {
// System.out.println("沒有找到你需要的數據");
// }

session.flush();//假如使用了ScrollableResults的話請把這行注釋掉/r
session.close();//假如使用了ScrollableResults的話請把這行注釋掉/r

List l=q.list();//返回一個List接口,用來遍歷結果集

for(int i=0;i<l.size();i++){
my_hibernate = (Hello_Bean) l.get(i);//從List中取得一個my_hibernate對象/r
System.out.println(my_hibernate.getName());//調用my_hibernate對象的getName方法取得數據庫name字段的值

}

*/

//find方法查詢數據
/*
Hello_Bean my_hibernate = null;
List q = session.find("from Hello_Bean");
session.flush();
session.close();

for(int i=0;i<q.size();i++)
{
my_hibernate = (Hello_Bean) q.get(i);
System.out.println(my_hibernate.getName());
}
*/

//iterate方法查詢數據
/*
Hello_Bean my_hibernate = null;
Iterator q = session.iterate("from Hello_Bean");

while(q.hasNext())
{
my_hibernate = (Hello_Bean) q.next();
System.out.println(my_hibernate.getName());
}

*/

//修改數據
/*
Query qq=session.createQuery("from Hello_Bean");

Hello_Bean my_hibernate=(Hello_Bean)session.load(Hello_Bean.class,new Integer(2));
//這里的new Integer(2)意思是修改表中id為2的那一行數據,必須是一個包裝類的對象,假如使用int的話會出錯。
my_hibernate.setName("geezer");//把id為2的那一行數據的name字段值改為"geezer"
session.flush();
session.close();

*/

}

}

最后運行就可以了。

假如大家有什么不清楚的,可以下載這篇文章的例子看看,運行一下。

下載完以后用JB打開hibernate.jpx就可以了。用之前把hibernate和MYSQL的驅動加進去,方法假如不知道再看看本章開頭部分。


常見錯誤:
Caused by: org.dom4j.DocumentException: Invalid byte 2 of 2-byte UTF-8 sequence. Nested exception: Invalid byte 2 of 2-byte UTF-8 sequence.
假如出現這行錯誤說明你的xml配置文件有不規范的字符,檢查下。

net.sf.hibernate.MappingException: Error reading resource: hibernate/Hello_Bean.hbm.xml


假如出現這行錯誤說明你的hibernate的XML配置文件有錯/r

net.sf.hibernate.MappingException: Resource: hibernate/Hello_Bean.hbm.xml not found


假如出現這行錯誤說明hibernate的XML配置文件沒有找到,你應該把XML文件放在與你的類文件同個目錄下,本文中是放在hibernate/classes/hibernate/目錄下,也就是跟Hello_Bean.class類文件一起。

net.sf.hibernate.PropertyNotFoundException: Could not find a setter for property name in class hibernate.Hello_Bean


假如出現這行錯誤說明你的xml文件里設置的字段名name的值與Hello_Bean.java類里的getXXX或setXXX方法不一致。

net.sf.hibernate.HibernateException: JDBC Driver class not found: org.gjt.mm.mysql.Driver
假如出現這行錯誤說明你的MYSQL驅動沒有加進JB庫里或者不在CLASSPATH里。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
人妻一区二区三区免费| 欧美日韩中文字幕在线观看| 日本不卡视频一区| 成人a在线视频免费观看| 国产天堂素人系列在线视频| 日韩欧美中文字幕在线观看| 国产亚洲一区字幕| 亚洲一区视频在线观看视频| 一区二区三区在线免费| 欧美日韩综合在线| 亚洲国产一区自拍| 免费精品国产自产拍观看| 欧美 日韩 国产 在线观看| 精品调教chinesegay| 91精品国产91久久久久久三级| 九七久久人人| av午夜在线| 国产日韩亚洲欧美| 日韩视频一区在线观看| 欧美日韩性视频在线| 在线观看中文字幕一区| 日韩欧美在线网址| 久久99精品久久久久子伦| 91精品久久久久| 欧美日韩高清| 国产欧美日韩在线视频| 欧美精品一区二区三区在线播放| 一区二区精品| 中文精品在线观看| 日韩视频 中文字幕| а√天堂8资源中文在线| 欧美三级日韩三级国产三级| 黄色一区二区在线观看| 欧美高清一级片在线| 国产区视频在线观看| 日韩欧美中文字幕精品| 亚洲免费在线观看av| 中文字幕亚洲一区二区av在线| 国产日韩中文字幕在线| 在线精品日韩| 日韩在线一区二区| 中文字幕日韩欧美在线视频| 午夜影院在线观看欧美| 久久av免费| 亚洲中文字幕一区| 国产91一区| 一区二区中文字幕在线| 中文字幕欧美人妻精品一区蜜臀| 亚洲人线精品午夜| www.精品视频| 精品国产91乱高清在线观看| 久久精品欧美日韩精品| 欧美日韩国产在线播放| 欧美三级中文字幕在线观看| 91精品国产高清91久久久久久| 玖玖在线免费视频| 国产一二三精品| 另类专区欧美| 国产婷婷在线观看| 国产成人精品综合久久久| 精品一性一色一乱农村| 亚洲人成欧美中文字幕| 综合激情一区| 国产欧美日韩在线视频| 国产在线一在线二| 国产一区日韩欧美| 国产在线高清精品| 欧美日韩亚洲国内综合网俺| 精品乱人伦一区二区三区| 91麻豆精品国产91久久久使用方法| 日韩精品一级| 亚洲免费在线视频一区 二区| 日韩免费电影网站| 在线不卡一区二区| 日韩专区中文字幕| 欧美一级搡bbbb搡bbbb| 国产三级免费观看| 日韩精品视频网站| 日韩欧美在线不卡| 日韩黄色在线播放| 一区视频在线播放| 国产wwww| 九色蝌蚪视频在线| 日本黄色一区二区三区| 日韩视频在线一区二区三区| 欧美亚洲免费高清在线观看| 欧美日韩亚州综合| 日韩在线欧美| 免费一级欧美在线观看视频| 日韩视频在线免费播放| 欧美日韩在线观看一区| 国产在线高潮| 99亚洲视频| 国产69精品久久app免费版| 日韩欧美专区在线| 国产高清在线视频| 国产高清精品二区| 亚洲免费福利视频| 黄色欧美日韩| 欧美日韩国产综合视频在线观看| 欧美日韩在线观看首页| 久久中文精品| 久草中文在线观看| 国产一区不卡精品| 精品久久在线观看| 99pao成人国产永久免费视频| 77777_亚洲午夜久久多人| 亚洲福利一区| 日韩视频国产视频| 在线中文免费视频| 亚洲一级特黄| 国产日韩av一区| 亚洲成在线观看| 国产在线第一页| 欧美日本精品在线| 午夜私人影院在线观看| 国产在线不卡一区| 日韩区欧美区| 亚洲福利视频在线| 日韩专区视频网站| 色综合天天性综合| 国产一级片在线| 国产在线二区| 中文官网资源新版中文第二页在线观看| 亚洲美女视频一区| 中文字幕日韩视频| 日本中文字幕在线观看| 国产三级第一页| 日韩免费精品| 福利在线国产| 国产成人精品亚洲| www.久久草| 1区不卡电影| 国产成人中文字幕| 免费看黄资源大全高清| 在线视频一区二区三区在线播放 | 国产日韩av高清| 国产欧美日韩在线播放| 日韩欧美在线1卡| 日韩精品手机在线观看| 日本xxxwww免费视频| 日韩精品在线观| 搞黄在线观看| 亚洲a中文字幕| 日韩欧美字幕| 先锋男人资源站| 精品熟女一区二区三区| 亚洲欧洲日韩精品在线| 天堂在线一区二区三区| av免费网站在线| 日韩久久不卡| 免费一级欧美在线观看视频| 日韩不卡在线播放| 国产在成人精品线拍偷自揄拍| 欧美中日韩在线| 97视频在线| 精品久久香蕉国产线看观看gif| 成人福利一区| 精品一二三区视频| 欧美国产中文| 亚洲乱码一区av黑人高潮| 日韩精品在线免费观看视频| 亚洲二区自拍| 在线视频你懂得一区| 欧美三级中文字幕在线观看| 久久精品免费看| 中文字幕欧美日韩在线| 91精品国产综合久久久久| 亚洲欧美久久234| 国产一卡2卡3卡免费网站| 欧美啪啪一区| 日韩亚洲一区中文字幕| 国产在线第一页| 国产日韩亚洲欧美| 91精品国产综合久久精品| 亚洲小说春色综合另类电影| 一本大道一区二区三区| 日韩久久精品视频| av中文在线资源| 欧美日韩亚洲国内综合网俺| 日韩中文字幕亚洲| 欧美一级搡bbbb搡bbbb| 韩国av一区二区| 精品久久久视频| www.狠狠| 深夜福利一区二区| 欧美中日韩在线| 精品调教chinesegay| 国产欧美日韩不卡| 免费精品国产自产拍观看| 精品极品三级久久久久| 日韩国产在线不卡视频| 国产精久久久久| 欧美日韩激情一区二区三区| 亚洲理论中文字幕| 精品1区2区3区| 国产在线不卡av| 色综合影院在线| 欧美日韩不卡在线视频| 精品亚洲综合| 中文字幕精品亚洲| 国产99在线 | 亚洲| 91精品无人成人www| 成人久久在线| 国产日产一区二区| 精品视频资源站| 欧美日韩视频免费播放| 中文字幕日韩精品在线| 国产欧美日韩在线观看| 日韩欧美在线网址| 亚洲成av人片在线| 欧美日韩国产专区| 精品国产91| 午夜视频在线观看一区| 在线不卡一区二区| 国产在线观看黄色| 精品一性一色一乱农村| a在线观看免费视频| 婷婷中文字幕在线观看| 中文字幕精品视频| 国产三级做爰在线观看| 久久麻豆视频| 欧美1234区| 综合激情一区| 国产日韩免费| 精品一性一色一乱农村| 日韩欧美国产综合| 中文字幕中文字幕精品| 日韩中文在线视频| 一级片免费在线播放| 日韩中文字幕视频在线观看| 日韩精品丝袜在线| 午夜一区二区三区免费| 三级精品视频| 国产视频一二区| 国产午夜在线观看| 欧美久久久精品| 国产免费一级片| 中文字幕在线观看国产| 一区二区不卡久久精品| 欧美日韩三级视频| 日韩视频在线观看视频| 一二三区精品视频| 一级片免费在线| 国产欧美一级| 国产日韩免费| 一级片在线播放| 欧美日韩国产中文精品字幕自在自线 | 亚洲免费福利视频| 国产丝袜一区二区| 亚洲免费福利视频| 欧美日韩在线观看一区| 一级片在线免费看| 国产视频中文字幕| 欧美日韩精品久久久| 在线国产99| 一级国产黄色片| 成人欧美亚洲| 国产成人精品免费网站| 欧美国产中文| 国产福利一区在线观看| 久久久精品网| 一区二区视频在线| 欧美日韩国产91| 99这里有精品视频| 亚洲国产91精品在线观看| 欧美另类久久久品| 日韩精品视频在线| 中文字幕 亚洲一区| 欧美色视频一区二区三区在线观看| 久久精品国产91精品亚洲| 国产日韩中文在线| 91av久久久| 日韩 国产 一区| 天天综合天天综合| 视频一区中文字幕国产| 亚洲永久免费视频| 99久久婷婷| 免费国产h视频在线观看86| 精品久久九九| 国产一卡2卡3卡4卡网站免费| 91精品婷婷国产综合久久竹菊| 亚洲欧美久久久| 韩国av一区二区| 一区在线免费| 欧美日韩中文在线| 国产成人中文字幕| 亚洲最新免费视频| 欧美日韩不卡在线视频| 999精品网| 欧美三级免费观看| eeuss一区| 国产日韩精品在线看| 欧美日韩高清一区二区不卡| 欧美 中文字幕| 91精品国产乱码久久蜜臀| 精品网站999| 欧美黄页在线免费观看| aaa欧美日韩| 中文字幕2020第一页| 国产高清在线视频| 色综合影院在线| 亚洲三级免费看| 欧美xxxx中国| 国产黄在线播放| 亚洲女同中文字幕| 99热最新网址| 狠狠色噜噜狠狠狠狠97| 中文字幕亚洲高清| 国产婷婷在线观看| 欧美日韩精品不卡| 久久久精品国产免费观看同学| 亚洲欧美99| 婷婷综合福利| 国产欧美日韩久久| 精品一二三四区| 亚洲免费精品视频| 国产一级视频在线播放| 日韩一二三四区| 樱花草www在线观看| 久久精品国产视频| 欧美日韩中文在线| 精品色蜜蜜精品视频在线观看| 欧洲精品久久久| 亚洲日本精品视频| 在线欧美日韩精品| 成人久久久久| 日韩中文欧美在线| 精品日韩在线观看| 999精品在线| 一区视频在线播放| 亚洲伊人婷婷| 日本精品二区| 亚洲最新免费视频| 日本精品在线播放| 一级网站免费观看| 欧美日韩国产亚洲一区| 日韩精品午夜| 91精品国产入口| 欧美激情一区二区在线| 九七久久人人| 欧美 中文字幕| 国产欧美日韩最新| 日韩欧美在线视频| 国产成人综合av| 中文欧美日韩| 中文字幕成人乱码在线电影| 国产欧美日韩在线| 韩日中文字幕第一页| 亚洲社区在线| 国产一二三四| 中文字幕久久av| 91精品国产综合久久久久久| 亚洲成av人片一区二区密柚| 国产乱码午夜在线视频| 国产视频一区三区| 欧美日韩一区二区在线视频| 国产性一级片| 精品国产免费观看一区| 亚洲综合日韩中文字幕v在线| 国产一级免费在线观看| 国产一级在线播放| 免费在线亚洲| 91精品国产91久久久久| 日韩中文在线字幕| 中文字幕在线观看欧美| 中文字幕狠狠干| 一区二区三区在线|网站| 日韩精品乱码av一区二区| 国产999在线观看| 伊人www22综合色| 欧美.日韩.国产.一区.二区| 国产亚洲二区| 国产三级精品在线观看| 在线国产99| 久久精品国产2020观看福利| 在线一区免费| 亚洲第一视频| 亚洲一级影院| 日韩网站中文字幕| 日韩亚洲欧美中文字幕| 欧美日韩高清不卡| 黄色一区二区在线| 欧美日韩综合在线免费观看| 国产免费电影网站入口| 蜜桃视频中文字幕| 免费在线播放av| 日韩高清不卡在线| 婷婷中文字幕一区三区| 欧美日韩综合在线免费观看| 国产亚洲二区| 日韩视频一区| 日韩免费视频一区二区视频在线观看| 91精品蜜臀在线一区尤物| 美女免费视频一区| 国产欧美一级| 天天摸日日摸狠狠添| 国产激情在线| 久久久精品欧美| 尤物av一区二区|