美文网首页
Hibernate学习笔记(一)-项目的基本搭建与认识

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

作者: G__yuan | 来源:发表于2019-07-09 18:32 被阅读0次

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(把对象变成持久对象,但不会同步对象的状态,相当于查一条数据出来,并给此数据加上锁)。

介绍对象的状态:

相关文章

网友评论

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

      本文链接:https://www.haomeiwen.com/subject/huufkctx.html