分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 软件开发

Hibernate入门

发布时间:2023-09-06 02:34责任编辑:沈小雨关键词:Hibernate

一、什么是Hibernate?

  Hibernate是(Object/relational mapping)对象关系映射的解決方案(框架),它是符合Java习惯的关系数据库持久化框架,为应用程序提供持久化服务,自动化程度更高ORM框架,不是面向SQL的持久层框架,以更加OO方式来编写数据读写代码

Hibernate在应用中的位置

 

Hibernate核心架构

  题外话:

  SSH=Struts(1/2)+Spring+Hibernate
  SSM=Spring MVC+Spring+Mybatis

  Spring Boot+Spring Data JPA(Hibernate) 4.3

 二、Configuration(配置)

1、Configuration 类负责管理Hibernate 的配置信息。它包括如下内容:
2、Hibernate运行的底层信息:数据库的URL、用户名、密码、JDBC驱动类,数据库Dialect,数据库连接池等。
3、Hibernate映射文件(*.hbm.xml)。
4、Configuration cfg = new Configuration();
5、cfg.configure("/hibernate.cfg.xml");

 三、SessionFactory

   会话工厂缓存了生成的SQL语句和Hibernate在运行时使用的映射元数据。
  会话工厂在应用初始化时被创建,是一个重量级的类,它在多个应用线程间进行被共享,通常情况下,整个应用只有唯一的一个会话工厂,然而,如果你使用Hibernate访问多个数据库,你需要对每一个数据库使用一个会话工厂。
  应用程序从会话工厂里获得Session(会话)实例。
  SessionFactory sessionFactory = cfg.buildSessionFactory();

四、Transaction (事务)

  Transaction将应用代码从底层的事务实现中抽象出来——可能是一个JDBC事务或一个JTA事务,这有助于保持Hibernate应用在不同类型的执行环境或容器中的可移植性。
  使用Hibernate进行操作时(增、删、改)必须显示的调用Transaction(默认:autoCommit=false)。
  Transaction tx = session.beginTransaction();

 五、配置详情

 1、hibernate.cfg.xml

<?xml version=‘1.0‘ encoding=‘UTF-8‘?><!DOCTYPE hibernate-configuration PUBLIC"-//Hibernate/Hibernate Configuration DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"><hibernate-configuration><session-factory><!-- jdbc信息连接配置 --> <property name="connection.url">jdbc:jtds:sqlserver://127.0.0.1/newsite</property><property name="connection.username">sa</property><property name="connection.password">sa</property><property name="connection.driver_class">net.sourceforge.jtds.jdbc.Driver</property><!-- SQL方言 --><property name="dialect">org.hibernate.dialect.SQLServerDialect</property><!-- 控制台打印sql语句 , 建议开启--><property name="show_sql">true</property><!-- 创建表方式,详情见下文 --><property name="hibernate.hbm2ddl.auto">create</property><!-- 指定映射文件 --><mapping resource="com/test/hibernate/user/Users.hbm.xml" /></session-factory></hibernate-configuration>

  

hibernate.hbm2ddl.auto属性值(从类自动生成数据库DDL操作)
1、create

如果设置为该值,则每次加载hibernate时(准确说应是创建SessionFactory时)都会删除以前创建的表而根据model重新生成表,即使前后的表没有任何变化,通常会造成数据库数据丢失,需谨慎使用这个取值

2、create-drop

与create差不多,所不同的是每次sessionFactory关闭时,就会删除所有表

3、update(最常用)

这个取值比较常用,需要先建立数据库,在第一次加载hibernate时会自动创建表,以后创建hibernate会自动根据model更新表结构,即使表结构改变了,以前的行不会被删除

4、validate

每次加载hibernate时,验证创建数据库表结构,只会和数据库中的表进行比较,不会创建新表,但是会插入新值

2、*.hbm.xml

<?xml version="1.0" encoding="UTF-8"?><!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.test.hibernate.user.Users" table="CA_USER"><id column="USERID" name="userid" type="string" length="50"><generator class="assigned" /></id><property column="NAME" name="username" type="string" length="50" /><property column="PASSWORD" name="password" type="string" length="50" update="false" /></class></hibernate-mapping>

六、Hibernate基本数据类型

 

 

 OVER

THANKS

Hibernate入门

原文地址:https://www.cnblogs.com/jeat/p/10449360.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved