亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? 使用hibernate的一個完整例子.txt

?? 不要錯過
?? TXT
?? 第 1 頁 / 共 2 頁
字號:
配置
1、 下載安裝Tomcat,并且下載Hibernate的運(yùn)行環(huán)境(主要包含一些JAR包)。

2、 把要使用的數(shù)據(jù)庫的JDBC驅(qū)動程序拷貝到%TOMCAT_HOME%\common\lib目錄下。筆者使用的是MYSQL,對應(yīng)的驅(qū)動程序的JAR包為mm.mysql-2.0.4-bin.jar。

3、 在Tomcat的Webapps目錄下新建一個Web應(yīng)用,名字為hibernate。

4、 把Hibernate提供的hibernate2.jar和一些第三方的運(yùn)行庫拷貝到hibernate\WEB\INF\lib目錄下。(這些第三方的運(yùn)行庫包含在下載的Hibernate lib目錄下)

5、 在%TOMCAT_HOME%\conf\server.xml中Web應(yīng)用和數(shù)據(jù)源。在server.xml中加入以下的配置描述。
例程1 配置web應(yīng)用


<Context path="/hibernate" docBase="hibernate" debug="0" reloadable="true" crossContext="true"> 
<Resource name="jdbc/hibernate" auth="Container" type="javax.sql.DataSource"/> 
<ResourceParams name="jdbc/hibernate"> 
<parameter> 
<name>factory</name> 
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value> 
</parameter>
<parameter> 
<name>driverClassName</name> 
<value>org.gjt.mm.mysql.Driver</value> 
</parameter> 
<parameter> 
<name>url</name> 
<value>jdbc:mysql:///test</value> 
</parameter> 
<parameter> 
<name>username</name> 
<value>root</value> 
</parameter> 
<parameter> 
<name>password</name> 
<value></value> 
</parameter> 
<parameter> 
<name>maxActive</name> 
<value>20</value> 
</parameter>
<parameter> 
<name>maxIdle</name> 
<value>10</value>
</parameter> 
<parameter> 
<name>maxWait</name> 
<value>-1</value> 
</parameter> 
</ResourceParams> 
</Context>

在這里,配置了一個名為hibernate的Web應(yīng)用,并且配置了一個數(shù)據(jù)源,數(shù)據(jù)源的JNDI名稱為jdbc/hibernate。您需要根據(jù)情況修改數(shù)據(jù)源的鏈接屬性。

6、 下一步就是書寫Hibernate的配置描述符??梢允褂肵ML的配置描述,也可以使用基于屬性的配置描述。在這里使用基于XML的配置描述。在hibernate\WEB-INF\classes目錄下新建一個hibernate.cfg.xml文件。然后加入例程2所示的內(nèi)容。



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

<hibernate-configuration>
<session-factory>
<property name="connection.datasource">java:comp/env/jdbc/hibernate</property>
<property name="show_sql">false</property>
<property name="dialect">net.sf.hibernate.dialect.MySQLDialect</property>

<!-- Mapping files -->

</session-factory>

</hibernate-configuration>

注意connection.datasource屬性必須和server.xml中配置的數(shù)據(jù)源的屬性一樣。如果不是使用MYSQL,那么需要更改dialect屬性。

到現(xiàn)在,配置基本完成,下面我們來開發(fā)一個最簡單的應(yīng)用。

開發(fā)持久對象、編寫映射描述
我們使用hibernate來封裝一個簡單的數(shù)據(jù)表。這個表的名字為Courses,它有兩個字段,一個是ID,它是Courses表的主鍵;另一個是name,表示Courses的名字。在數(shù)據(jù)庫中使用以下的腳本來創(chuàng)建這個表:

create table Courses(CourseId varchar(32) not null, name varchar(32), constraint pk_Courses primary key (CourseId) );

接下來的任務(wù)就是為Courses表書寫持久對象,如例程3所示。

例程3 Courses的持久對象(Courses.java)


package com.hellking.study.hibernate;

import java.util.Set;

/**
*在hibernate中代表了Course表的類。
*/
public class Course 
{
/**每個屬性和表的一個字段對應(yīng)**/
private String id;
private String name;

/**students表示course中的學(xué)生,在后面才會用到,暫時不管**/
private Set students;

/**屬性的訪問方法**/
public void setId(String string) {
id = string;
}

public String getId() {
return id;
}

public void setName(String name)
{
this.name=name;
}
public String getName()
{
return this.name;
}
public void setStudents(Set stud)
{
this.students=stud;
}
public Set getStudents()
{
return this.students;
}
}

可以看出,在Course類中也包含了兩個屬性,id和name,它的屬性和表Courses的字段是一一對應(yīng)的,并且類型一致。
書寫好了持久對象,接下來的任務(wù)就是書寫對象、關(guān)系映射描述。在hibernate\WEB-INF\classes目錄下新建一個Course.hbm.xml描述文件,內(nèi)容如例程4所示。
例程4 Course.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="com.hellking.study.hibernate.Course"
table="Courses"
dynamic-update="false"
>

<id
name="id"
column="CourseId"
type="string"
unsaved-value="any"
>
<generator class="assigned"/>
</id>

<property
name="name"
type="string"
update="true"
insert="true"
column="Name"
/> 
</class>
</hibernate-mapping>

在Course.hbm.xml映射文件中,指定了要映射的類和映射的表,并且指定了表的各個字段和Java對象中各個字段的映射關(guān)系,比如Course對象中的id屬性對應(yīng)了Courses表的courseId字段。

接下來的任務(wù)就是在hibernate.cfg.xml中指定這個映射關(guān)系。如下所示:



<session-factory>
<!-- Mapping files --> 
<mapping resource="Course.hbm.xml"/>
</session-factory>

編寫業(yè)務(wù)邏輯
到此,我們已經(jīng)封裝了一個名為Courses的表,并且配置完成。接下來的任務(wù)就是在Web應(yīng)用開發(fā)中使用它們,為了演示在Hibernate中對數(shù)據(jù)庫的不同類型的操作,我們開發(fā)的Web應(yīng)用有以下的功能:


增加一個Course;

刪除一個Course;

按照Course的名字進(jìn)行模糊搜索;

查看系統(tǒng)中所有的Course。


雖然我們可以直接在JSP中使用hibernate,但是往往我們不這樣,而是把這些業(yè)務(wù)邏輯封裝在JavaBean中,然后在JSP中通過調(diào)用JavaBean以訪問Hibernate封裝的對象。

由于訪問通過使用hibernate有一些共性的操作,在這里我們把這些共性的操作封裝在一個專門的類中,這樣其它的類可以繼承它,如例程5所示。

例程5 HibernateBase.java


package com.hellking.study.hibernate;

import net.sf.hibernate.*;
import net.sf.hibernate.cfg.*;
import java.util.*;
import java.io.IOException;
import java.io.PrintWriter;

public abstract class HibernateBase 
{
protected SessionFactory sessionFactory;//會話工廠,用于創(chuàng)建會話
protected Session session;//hibernate會話
protected Transaction transaction; //hiberante事務(wù)

public HibernateBase()throws HibernateException
{
this.initHibernate();
}
// 幫助方法
protected void initHibernate()
throws HibernateException {

// 裝載配置,構(gòu)造SessionFactory對象
sessionFactory = new Configuration().configure().buildSessionFactory();
}

/**
*開始一個hibernate事務(wù)
*/
protected void beginTransaction()
throws HibernateException {

session = sessionFactory.openSession();
transaction = session.beginTransaction();
}

/**
*結(jié)束一個hibernate事務(wù)。
*/
protected void endTransaction(boolean commit)
throws HibernateException {

if (commit) {
transaction.commit();
} else {
//如果是只讀的操作,不需要commit這個事務(wù)。
transaction.rollback();
}
session.close();
}
}

下面編寫業(yè)務(wù)邏輯類,新建一個名為CourseBean的JavaBean,并且CourseBean繼承HibernateBase類,代碼如例程6所示。

例程6 CourseBean.java


package com.hellking.study.hibernate;

import net.sf.hibernate.*;
import net.sf.hibernate.cfg.*;
import java.util.*;

/**
*和course相關(guān)的業(yè)務(wù)邏輯
*/
public class CourseBean extends HibernateBase
{
public CourseBean()throws HibernateException
{
super();
}
/**
*增加一個Course

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久亚洲一区二区三区四区| 国产真实精品久久二三区| 日本不卡高清视频| 99久久精品国产一区| 精品美女被调教视频大全网站| 亚洲综合一区二区精品导航| 国产成人免费在线观看不卡| 91精品国产欧美一区二区18| 一区二区三区在线影院| 国产成人免费在线视频| 欧美一级淫片007| 亚洲综合在线免费观看| 99久久亚洲一区二区三区青草| 久久久天堂av| 国产自产2019最新不卡| 欧美一区二区三级| 亚洲二区在线观看| 一本大道久久精品懂色aⅴ| 国产精品欧美综合在线| 国产综合色在线视频区| 精品国产91久久久久久久妲己 | 日韩成人精品在线| 色综合久久久久| 亚洲精品国产品国语在线app| 国产精品一区二区三区乱码| 国产亚洲人成网站| 国产一区二区主播在线| 久久网站热最新地址| 久久99精品一区二区三区三区| 欧美一区二区三区免费观看视频 | 中文字幕亚洲电影| 北条麻妃国产九九精品视频| 国产精品视频一二三区| www.久久久久久久久| 中文字幕日韩一区| 色综合一区二区三区| 亚洲日本va午夜在线电影| 色婷婷国产精品久久包臀| 亚洲已满18点击进入久久| 欧美日韩免费在线视频| 美日韩一区二区| 亚洲精品一区二区三区福利| 国产精品影音先锋| 国产精品美日韩| 色综合久久综合网| 亚洲第一二三四区| 日韩美女视频在线| 不卡av免费在线观看| 亚洲一区二区三区四区不卡| 欧美人妇做爰xxxⅹ性高电影 | 亚洲精品日日夜夜| 欧美电影一区二区| 精品一区二区三区蜜桃| 国产免费观看久久| 91黄色激情网站| 日本va欧美va精品| 国产精品素人视频| 欧美区视频在线观看| 国模无码大尺度一区二区三区| 欧美国产激情一区二区三区蜜月| 一本一本大道香蕉久在线精品 | 精品蜜桃在线看| 成人性生交大片免费看在线播放| 亚洲精品乱码久久久久久黑人| 欧美日韩一级黄| 国产高清不卡一区二区| 一区二区三区中文字幕电影 | ●精品国产综合乱码久久久久 | 日韩精品一区二区三区四区| 久久99久久99| 一区二区三区在线观看动漫| 日韩欧美国产一二三区| 99精品欧美一区| 琪琪一区二区三区| 欧美日韩1234| 国产乱对白刺激视频不卡| 亚洲欧美激情小说另类| 欧美成人女星排行榜| 在线观看视频91| 国产精品一区2区| 偷拍日韩校园综合在线| 国产精品伦理在线| 精品久久一区二区三区| 在线观看精品一区| 成人免费看片app下载| 蜜桃久久久久久| 亚洲国产日韩一级| 亚洲婷婷综合色高清在线| 国产视频一区二区在线观看| 91精品久久久久久蜜臀| 色偷偷成人一区二区三区91 | 91麻豆国产香蕉久久精品| 久久99在线观看| 天天色天天爱天天射综合| 亚洲欧洲av在线| 国产亚洲成aⅴ人片在线观看| 91精品国产91久久久久久一区二区| 91论坛在线播放| gogogo免费视频观看亚洲一| 国产又粗又猛又爽又黄91精品| 日av在线不卡| 免费观看久久久4p| 奇米色777欧美一区二区| 亚洲午夜精品一区二区三区他趣| 亚洲男人的天堂在线aⅴ视频| 国产精品欧美经典| 欧美国产国产综合| 国产精品色噜噜| 国产精品电影一区二区| 国产精品福利电影一区二区三区四区| 国产三级一区二区| 国产欧美日韩精品一区| 欧美激情一区在线| 国产精品久久久久影院亚瑟| 国产精品色一区二区三区| 亚洲欧洲日产国码二区| 亚洲色图色小说| 亚洲激情六月丁香| 玉米视频成人免费看| 亚洲大片在线观看| 蜜臀91精品一区二区三区| 久久99精品国产91久久来源| 国内外成人在线视频| 成人一级片网址| 色999日韩国产欧美一区二区| 精品视频一区二区三区免费| 欧美一区二区在线看| 精品日产卡一卡二卡麻豆| 久久这里都是精品| 亚洲国产成人一区二区三区| 亚洲免费在线观看| 亚洲国产精品久久久久秋霞影院 | 精品视频在线免费| 51精品秘密在线观看| 日韩精品专区在线影院重磅| 久久久777精品电影网影网| 中文字幕欧美日韩一区| 一区二区高清在线| 久久91精品久久久久久秒播| 国产成人99久久亚洲综合精品| 99国内精品久久| 欧美一区二区在线观看| 欧美激情一区二区三区蜜桃视频 | 亚洲精品久久久蜜桃| 亚洲成人av在线电影| 国产主播一区二区| 91在线免费视频观看| 日韩一区二区三| **性色生活片久久毛片| 视频一区中文字幕| 国产精品一区二区不卡| 欧美色爱综合网| 久久蜜桃一区二区| 亚洲一区中文在线| 国产精品一区二区免费不卡| 欧日韩精品视频| 久久久一区二区三区捆绑**| 亚洲成人激情av| 成人精品鲁一区一区二区| 欧美人妖巨大在线| 亚洲天堂精品在线观看| 久久91精品国产91久久小草| 欧美午夜宅男影院| 国产精品人人做人人爽人人添| 视频一区二区三区中文字幕| 成人av集中营| 日韩免费成人网| 首页综合国产亚洲丝袜| 91欧美一区二区| 中文字幕第一区| 精品一区二区日韩| 欧美老肥妇做.爰bbww视频| 中文字幕国产一区二区| 麻豆国产91在线播放| 欧美性大战久久久久久久| 18涩涩午夜精品.www| 国产91在线看| 欧美xxx久久| 亚洲成a人片在线观看中文| 99re在线精品| 国产拍揄自揄精品视频麻豆| 精品亚洲免费视频| 91精品婷婷国产综合久久性色| 夜夜精品视频一区二区| av中文一区二区三区| 国产婷婷色一区二区三区在线| 久久91精品久久久久久秒播| 日韩欧美成人一区| 男女视频一区二区| 欧美精品乱人伦久久久久久| 樱桃视频在线观看一区| 一本到三区不卡视频| 亚洲色图19p| 色吧成人激情小说| 亚洲永久精品国产| 欧美无砖砖区免费| 五月婷婷综合在线| 在线播放国产精品二区一二区四区| 亚洲国产中文字幕在线视频综合| 在线欧美日韩国产|