传智播客hibernate学习,开发环境配置

2024-04-26 07:32

本文主要是介绍传智播客hibernate学习,开发环境配置,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

      今天学习Heribernate 是汤阳光老师讲的,汤老师先讲一个Heribernate实际应用中的例子,通过例子讲解了Heribernate的实现原理,如何使用和使用它带来的好处。还有具体的如何配置环境,编写配置文件,Hibernate对象实例的三种状态。并对一般这三种状态的命名进行了修正。下面来介绍一下主要内容。

 

    配置环境,可以把Heribernate/lib中的jar包全部导入,也可以只导入其中必须的一部分。
    1.导入jar包,这些最基本的包有:
      hibernate3.jar
      antlr-2.7.6.jar
      asm.jar
      asm-attrs.jar
      cglib-2.1.3.jar
      commons-collections-2.1.1.jar
      commons-logging-1.0.4.jar
      dom4j-1.6.1.jar
      jta.jar
      所用的数据库的JDBC驱动
     可以选择加入log4j-1.2.11.jar。

   2,拷贝配置文件hibernate.cfg.xml到classpath的根中,并修改其中的数据库连接信息。选择拷贝log4j.properties文件。这里使用mysql5.0版本的数据库,更改配置文件如下:
<!--配置方言-->
<property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql:///hibernate_demo</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">1234</property>
<!-- 显示sql语句 -->
<property name="show_sql">true</property>
<!-- 自动更新表结构 -->
<property name="hbm2ddl.auto">update</property>

 

一个Heribernate实体对应一个数据库中的表,Heribernate对实体的要求:  1,有默认的构造方法;
    2,推荐提供一个标识属性(与业务无关的id);
    3,推荐此类不是final的(对懒加载有影响);
    4,推荐重写hashCode与equals方法。

 

    每个实体类要编写一个.hbm.xml文件,将类映射为数据库中的一个表,并添加和其他表间的关系,表的属性映射有name,colum,type,length,not-null.  id映射与主键生成策略;unsaved-value:一个特定的标识属性值,用来标专该实例是刚刚创建的,尚未保存。默认是由hibernate选择一个合理的值。在id或property中指定column信息或使用<column>子元素。来指定数据库表中的列名。
主键生成策略:identity, increment, ehilo, native.
  常用的映射类型:integer,string,date,timestamp,text,byte[].
  时间类型映射:  生日(date);
  大文本类型映射:描述(text);
  二进制类型映射:文件(byte[]);

 

   对象实例的三种状态:自由(瞬时)、持久、游离;
    自由(瞬时)状态:从未与任何Session关联过,一般指新创建的对象实例。
    持久状态:目前正与Session有关联,拥有持久化标识(相当于主键值), 并且相关联的session没有关闭,事务没有提交。持久对象状态发生改变,在事务提交时会更新到数据库。
    游离状态:曾经与Session关联过,不过那个Session已经关闭了。
持久状态的对象和游离状态的对象在数据库表中都不能肯定有一条记录相对应。

这篇关于传智播客hibernate学习,开发环境配置的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/936953

相关文章

python常见环境管理工具超全解析

《python常见环境管理工具超全解析》在Python开发中,管理多个项目及其依赖项通常是一个挑战,下面:本文主要介绍python常见环境管理工具的相关资料,文中通过代码介绍的非常详细,需要的朋友... 目录1. conda2. pip3. uvuv 工具自动创建和管理环境的特点4. setup.py5.

Redis Cluster模式配置

《RedisCluster模式配置》:本文主要介绍RedisCluster模式配置,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录分片 一、分片的本质与核心价值二、分片实现方案对比 ‌三、分片算法详解1. ‌范围分片(顺序分片)‌2. ‌哈希分片3. ‌虚

Python实例题之pygame开发打飞机游戏实例代码

《Python实例题之pygame开发打飞机游戏实例代码》对于python的学习者,能够写出一个飞机大战的程序代码,是不是感觉到非常的开心,:本文主要介绍Python实例题之pygame开发打飞机... 目录题目pygame-aircraft-game使用 Pygame 开发的打飞机游戏脚本代码解释初始化部

SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志

《SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志》在SpringBoot项目中,使用logback-spring.xml配置屏蔽特定路径的日志有两种常用方式,文中的... 目录方案一:基础配置(直接关闭目标路径日志)方案二:结合 Spring Profile 按环境屏蔽关

Python中使用uv创建环境及原理举例详解

《Python中使用uv创建环境及原理举例详解》uv是Astral团队开发的高性能Python工具,整合包管理、虚拟环境、Python版本控制等功能,:本文主要介绍Python中使用uv创建环境及... 目录一、uv工具简介核心特点:二、安装uv1. 通过pip安装2. 通过脚本安装验证安装:配置镜像源(可

使用Python开发一个现代化屏幕取色器

《使用Python开发一个现代化屏幕取色器》在UI设计、网页开发等场景中,颜色拾取是高频需求,:本文主要介绍如何使用Python开发一个现代化屏幕取色器,有需要的小伙伴可以参考一下... 目录一、项目概述二、核心功能解析2.1 实时颜色追踪2.2 智能颜色显示三、效果展示四、实现步骤详解4.1 环境配置4.

Maven 配置中的 <mirror>绕过 HTTP 阻断机制的方法

《Maven配置中的<mirror>绕过HTTP阻断机制的方法》:本文主要介绍Maven配置中的<mirror>绕过HTTP阻断机制的方法,本文给大家分享问题原因及解决方案,感兴趣的朋友一... 目录一、问题场景:升级 Maven 后构建失败二、解决方案:通过 <mirror> 配置覆盖默认行为1. 配置示

Springboot3+将ID转为JSON字符串的详细配置方案

《Springboot3+将ID转为JSON字符串的详细配置方案》:本文主要介绍纯后端实现Long/BigIntegerID转为JSON字符串的详细配置方案,s基于SpringBoot3+和Spr... 目录1. 添加依赖2. 全局 Jackson 配置3. 精准控制(可选)4. OpenAPI (Spri

maven私服配置全过程

《maven私服配置全过程》:本文主要介绍maven私服配置全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录使用Nexus作为 公司maven私服maven 私服setttings配置maven项目 pom配置测试效果总结使用Nexus作为 公司maven私

Go学习记录之runtime包深入解析

《Go学习记录之runtime包深入解析》Go语言runtime包管理运行时环境,涵盖goroutine调度、内存分配、垃圾回收、类型信息等核心功能,:本文主要介绍Go学习记录之runtime包的... 目录前言:一、runtime包内容学习1、作用:① Goroutine和并发控制:② 垃圾回收:③ 栈和