Hibernate学习笔记(一)-项目的基本搭建与认识

1.下图为项目工程目录



2.具体介绍配置文件与编写的类的内容。

(1).配置文件的说明

hibernate.cfg.xml:

<!DOCTYPE hibernate-configuration PUBLIC

"-//Hibernate/Hibernate Configuration DTD 3.0//EN"

"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<!-- 该配置文件主要是配置hibernate链接数据库的信息-->

<!-- 该标签是hibernate链接数据库的根标签-->

<hibernate-configuration>

<!-- 配置的是具体链接数据库的信息,如果是多个数据库配置 多个session-factory -->

<session-factory>

<!-- 该配置文件中如何编写链接数据库的配置信息 -->

<!-- 配置方言 -->

<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>

<!-- 配置链接数据库的名称 -->

<property name="hibernate.connection.username">root</property>

<!-- 配置链接数据库的密码 -->

<property name="hibernate.connection.password">123456</property>

<!-- 配置链接mysql数据库的驱动-->

<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>

<!-- 配置链接数据库的url地址-->

<property name="hibernate.connection.url">jdbc:mysql://127.0.0.1/test</property>


<property name="hibernate.show_sql">true</property>


<property name="hibernate.format_sql">true</property>


<property name="hbm2ddl.auto">create</property>

<!--

//在程序初始化的时候自动建表,程序结束,删除表

<property name="hbm2ddl.auto">create-drop</property>

//在程序初始化时,会检查表中结构和字段等是否有CRUD

<property name="hbm2ddl.auto">update</property>

//在程序初始化时,会检查表结构或字段是否有变化,如果变将抛出异常

<property name="hbm2ddl.auto">validate</property>

-->


<mapping resource="com/gaoyuan/hibernate/domain/User.hbm.xml" />

<!-- <mapping resource="com/cissst/entity/Emp.hbm.xml"/> -->

</session-factory>


</hibernate-configuration>

User.hbm.xml

<?xml version="1.0"?>

<!DOCTYPE hibernate-mapping PUBLIC 

"-//Hibernate/Hibernate Mapping DTD 3.0//EN"

"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">


<hibernate-mapping>


<class name="com.gaoyuan.hibernate.domain.User" table="User">

<id name="id">

<generator class="native"/>//主键生成器

</id>


<property name="userName"/>

<property name="date"/>

</class>

</hibernate-mapping>

(2).类的说明

Domain类的限制:

<1>.默认的构造函数(必须的)。

<2>.有误意义的标识符id(主键)(可选)

<3>.非final的,对懒加载有影响(可选)

Public class User{

Private int  id;

Private String name;

...

}

HibernateUtils类的介绍:

<1>.此类的作用是创建Session

package com.gaoyuan.hibernate.dao;


import org.hibernate.Session;

import org.hibernate.SessionFactory;

import org.hibernate.cfg.Configuration;


public final class HibernateUtil {

private static SessionFactory sessionFactory = null;

static {

//第一步加载配置文件

Configuration cfg = new Configuration();

/*调用下面语句加载配置文件hibernate.cfg.xml,如果此配置文件命名不是默认的(hibernate.cfg.xml)这个名字的话

下面加载配置文件时需要指定名字。用此方法:cfg.configure(document)*/

cfg.configure();

//创建SessionFactory工厂

sessionFactory = cfg.buildSessionFactory();

}

public static SessionFactory getSessionFactory(){

return sessionFactory;

}

public static Session getSession(){

return sessionFactory.openSession();

}

}


其中session是最重要的,介绍下session的几个主要方法:

[if !supportLists]1.[endif]save,persist 保存数据,persist在事务外不会产生insert语句。

[if !supportLists]2.[endif]Delete,删除对象

[if !supportLists]3.[endif]Update,更新对象,如果数据库中没有记录,会出现异常。

[if !supportLists]4.[endif]Get,根据ID查,会立刻访问数据库。

[if !supportLists]5.[endif]Load,根据ID查,(返回的是代理,不会立即访问数据库)。

[if !supportLists]6.[endif]saveOrUpdate,merge(根据ID和version的值来确定是save或update),调用merge你的对象还是脱管的。

[if !supportLists]7.[endif]Lock(把对象变成持久对象,但不会同步对象的状态,相当于查一条数据出来,并给此数据加上锁)。

介绍对象的状态:


©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,132评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,802评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,566评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,858评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,867评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,695评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,064评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,705评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,915评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,677评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,796评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,432评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,041评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,992评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,223评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,185评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,535评论 2 343

推荐阅读更多精彩内容