首頁 資料庫 mysql教程 hibernate实战笔记1---初探

hibernate实战笔记1---初探

Jun 07, 2016 pm 03:58 PM
hibernate 初探 學習 實戰 筆記

由于在学习Spring的时候学到有关数据库的章节的时候,提及到了hibernate的集成,但是我对hibernate技术几乎是一点不了解,只是知道它是一个orm对象映射框架,所以在初探的章节做一下hibernate的简单了解,以及应用。顺便提一句,我用的是maven添加的hibernat

由于在学习Spring的时候学到有关数据库的章节的时候,提及到了hibernate的集成,但是我对hibernate技术几乎是一点不了解,只是知道它是一个orm对象映射框架,所以在初探的章节做一下hibernate的简单了解,以及应用。顺便提一句,我用的是maven添加的hibernate开发包

简单使用hibernate的一般步骤

*创建并且编辑hibernate配置文件

该配置文件主要是用于链接数据库所用,定义了数据库的驱动程序和映射文件的位置,如下是一个简单的配置

<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE hibernate-configuration
    PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN"
    "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<hibernate-configuration>

	<session-factory >

		<property name="show_sql">true</property>
		<property name="connection.driver_class">
			org.gjt.mm.mysql.Driver
		</property>
		<property name="connection.url">
			jdbc:mysql://localhost:3306/pgwt
		</property>
		<property name="connection.username">
			root
		</property>
		<property name="connection.password">
			1234
		</property>
		<property name="dialect">
			org.hibernate.dialect.MySQLDialect 
		</property>

		<mapping resource="com/springframework/hibernate/test.hbm.xml" />

	</session-factory>

</hibernate-configuration>
登入後複製

根据这个配置文件可以看出,所有的配置信息都是包含在标签之中,该配置文件和Spring的装配bean差不多,对应一个SessionFactory对象,期中配置的是对象中的属性,name代表属性的名称标签的内容就是属性值了,逐一了解一下

show_sql属性是一个boolean值,代表的是在进行数据库操作的时候是否在控制台输出sql语句,在调试的时候非常有用

connection.driver_class代表的是数据库的jdbc驱动程序,我这里使用的是mysql所以就是org.gjt.mm.mysql.Driver

connection.url代表的是访问数据库的url

connection.username 代表的是登录数据库时候的用户名

connection.password 代表的是登录数据库时候的密码

dialect代表的是一种数据库的方言,可以为数据库中的属性设置一些默认值(我目前是这么理解的,以后再深入研究一下)我知道了一个网页内容是数据库对应的方言的类,可以参考一下百度文库地址

标签是用来引用映射文件地址的,至于映射文件的内容,下文会做简单的介绍

*创建数据库表

简单的创建一个user的数据库表分别有userid,name,password字段

*创建和数据库表对应的javaBean类

如下是一个简单的javaBean

package com.springframework.hibernate;

public class User {

	private String userid;
	private String name;
	private String password;

	public String getUserid() {
		return userid;
	}

	public void setUserid(String userid) {
		this.userid = userid;
	}

	public String getName() {
		return name;
	}

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

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

}
登入後複製
*创建映射文件

映射文件中包括了一些配置信息,代码之后会逐一介绍一下配置信息的含义,配置文件如下

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
    "-//Hibernate/Hibernate Mapping DTD//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping>
	<class name="com.springframework.hibernate.User" table="user">
		<id name="userid" column="userid">
			<generator class="assigned" />
		</id>
		<property name="name" column="name" />
		<property name="password" column="password" />
	</class>
</hibernate-mapping>
登入後複製
在上边的数据库表中包括三个字段,期中userid是主键,然后我来逐一说一下配置文件的含义

所有的配置信息都是写在标签中,期中可以包含多个标签,目的是为了配置javaBean与数据库表之间的映射关系

标签中name属性代表的是该class标签对应的javaBean,table属性代表该class标签对应的数据库表

标签是用于映射主键的,user表的主键是userid ,name属性是代表javaBean中属性的名称,column属性代表的是数据库表中的字段

标签定义了生成主键的方式,叫做生成器,我选择的方式是assigned,是由程序自由生成主键,相对还有其他集中方式,我找了一篇blog里面说的还挺详细blog地址

也是像Spring注入javaBean一样,定义属性所对应的数据库表字段的引用column属性代表的是数据库表中的字段

*创建一个场景类(主函数)

代码如下

package com.springframework.hibernate;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;

public class Client {

	public static void main(String[] args) {
		try {
			SessionFactory sf = new Configuration().configure()
					.buildSessionFactory();
			Session session = sf.openSession();
			Transaction tx = session.beginTransaction();

			for (int i = 0; i < 100; i++) {
				User newuser = new User();
				newuser.setUserid("userid" + i);
				newuser.setName("name" + i);
				newuser.setPassword("password" + i);
				session.save(newuser);
			}

			tx.commit();
			session.close();

		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}
登入後複製
这类似是一个样板是代码,应该是可以由Spring模板来替换的。

hibernate是通过SessionFactory来启动hibernate(通过配置文件与数据连接),session对象当中包含一些数据库操作的方法

以上是一些使用hibernate的基本方法,了解了以上的知识就可以继续往下学习Spring了,以后再来完善有关hibernate的实战笔记。

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

小紅書筆記怎麼刪除 小紅書筆記怎麼刪除 Mar 21, 2024 pm 08:12 PM

小紅書筆記怎麼刪除?在小紅書APP中是可以編輯筆記的,多數的用戶不知道小紅書筆記如何的刪除,接下來就是小編為用戶帶來的小紅書筆記刪除方法圖文教程,有興趣的用戶快來一起看看吧!小紅書使用教學小紅書筆記怎麼刪除1、先打開小紅書APP進入到主頁面,選擇右下角【我】進入到專區;2、之後在我的專區,點擊下圖所示的筆記頁面,選擇要刪除的筆記;3、進入到筆記頁面,右上角【三個點】;4、最後下方會展開功能欄,點選【刪除】即可完成。

小紅書發布過的筆記不見了怎麼辦?它剛發的筆記搜不到的原因是什麼? 小紅書發布過的筆記不見了怎麼辦?它剛發的筆記搜不到的原因是什麼? Mar 21, 2024 pm 09:30 PM

作為一名小紅書的用戶,我們都曾經遇到過發布過的筆記突然不見了的情況,這無疑讓人感到困惑和擔憂。在這種情況下,我們該怎麼辦呢?本文將圍繞著「小紅書發布過的筆記不見了怎麼辦」這個主題,為你詳細解答。一、小紅書發布過的筆記不見了怎麼辦?首先,不要驚慌。如果你發現筆記不見了,保持冷靜是關鍵,不要慌張。這可能是由於平台系統故障或操作失誤引起的。檢查發布記錄很簡單。只要打開小紅書App,點擊“我”→“發布”→“所有發布”,就可以查看自己的發布記錄。在這裡,你可以輕鬆找到之前發布的筆記。 3.重新發布。如果找到了之

小紅書怎麼在筆記中加入商品連結 小紅書在筆記中加入商品連結教學 小紅書怎麼在筆記中加入商品連結 小紅書在筆記中加入商品連結教學 Mar 12, 2024 am 10:40 AM

小紅書怎麼在筆記中添加商品連結?在小紅書這款app中用戶不僅可以瀏覽各種內容還可以進行購物,所以這款app中關於購物推薦、好物分享的內容是非常多的,如果小夥伴在這款app也是一個達人的話,也可以分享一些購物經驗,找到商家進行合作,在筆記中添加連結之類的,很多人都願意使用這款app購物,因為不僅方便,而且有很多達人會進行一些推薦,可以一邊瀏覽有趣內容,一邊看看有沒有適合自己的衣服商品。一起看看如何在筆記中添加商品連結吧!小紅書筆記添加商品連結方法  在手機桌面上開啟app。  在app首頁點擊

PHP實戰:快速實作斐波那契數列的程式碼範例 PHP實戰:快速實作斐波那契數列的程式碼範例 Mar 20, 2024 pm 02:24 PM

PHP實戰:快速實現斐波那契數列的程式碼範例斐波那契數列是數學中一個非常有趣且常見的數列,其定義如下:第一個和第二個數為0和1,從第三個數開始,每個數都是前兩個數的和。斐波那契數列的前幾個數字依序為0,1,1.2,3,5,8,13,21,...依此類推。在PHP中,我們可以透過遞歸和迭代兩種方式來實現斐波那契數列的生成。下面我們分別來展示這兩

Pygame入門指南:全面安裝與設定教學課程 Pygame入門指南:全面安裝與設定教學課程 Feb 19, 2024 pm 10:10 PM

從零開始學習Pygame:完整的安裝和配置教程,需要具體程式碼範例引言:Pygame是一個使用Python程式語言開發的開源遊戲開發庫,它提供了豐富的功能和工具,使得開發者可以輕鬆創建各種類型的遊戲。本文將帶您從零開始學習Pygame,並提供完整的安裝和配置教程,以及具體的程式碼範例,讓您快速入門。第一部分:安裝Python和Pygame首先,確保您的電腦上已

揭秘C語言的吸引力: 發掘程式設計師的潛質 揭秘C語言的吸引力: 發掘程式設計師的潛質 Feb 24, 2024 pm 11:21 PM

學習C語言的魅力:解鎖程式設計師的潛力隨著科技的不斷發展,電腦程式設計已經成為了一個備受關注的領域。在眾多程式語言中,C語言一直以來都備受程式設計師的喜愛。它的簡單、高效以及廣泛應用的特點,使得學習C語言成為了許多人進入程式設計領域的第一步。本文將討論學習C語言的魅力,以及如何透過學習C語言來解鎖程式設計師的潛力。首先,學習C語言的魅力在於其簡潔性。相較於其他程式語言而言,C語

一起學習word根號輸入方法 一起學習word根號輸入方法 Mar 19, 2024 pm 08:52 PM

在word編輯文字內容時,有時會需要輸入公式符號。有的小夥子們不知道在word根號輸入的方法,小面就讓小編跟小夥伴們一起分享下word根號輸入的方法教學。希望對小夥伴們有幫助。首先,開啟電腦上的Word軟體,然後開啟要編輯的文件,並將遊標移到需要插入根號的位置,參考下方的圖片範例。 2.選擇【插入】,再選擇符號裡的【公式】。如下方圖片紅色圈的部分內容所示:3.接著選擇下方的【插入新公式】。如下方圖片紅色圈的部分內容所示:4.選擇【根式】,再選擇適當的根號。如下方圖片紅色圈的部分內容所示:

從零開始學習Go語言中的main函數 從零開始學習Go語言中的main函數 Mar 27, 2024 pm 05:03 PM

標題:從零開始學習Go語言中的main函數Go語言作為一種簡潔、高效的程式語言,備受開發者青睞。在Go語言中,main函數是一個入口函數,每個Go程式都必須包含main函數作為程式的入口點。本文將從零開始介紹如何學習Go語言中的main函數,並提供具體的程式碼範例。一、首先,我們需要安裝Go語言的開發環境。可前往官方網站(https://golang.org

See all articles