传智播客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

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

Zookeeper安装和配置说明

一、Zookeeper的搭建方式 Zookeeper安装方式有三种,单机模式和集群模式以及伪集群模式。 ■ 单机模式:Zookeeper只运行在一台服务器上,适合测试环境; ■ 伪集群模式:就是在一台物理机上运行多个Zookeeper 实例; ■ 集群模式:Zookeeper运行于一个集群上,适合生产环境,这个计算机集群被称为一个“集合体”(ensemble) Zookeeper通过复制来实现

这15个Vue指令,让你的项目开发爽到爆

1. V-Hotkey 仓库地址: github.com/Dafrok/v-ho… Demo: 戳这里 https://dafrok.github.io/v-hotkey 安装: npm install --save v-hotkey 这个指令可以给组件绑定一个或多个快捷键。你想要通过按下 Escape 键后隐藏某个组件,按住 Control 和回车键再显示它吗?小菜一碟: <template

CentOS7安装配置mysql5.7 tar免安装版

一、CentOS7.4系统自带mariadb # 查看系统自带的Mariadb[root@localhost~]# rpm -qa|grep mariadbmariadb-libs-5.5.44-2.el7.centos.x86_64# 卸载系统自带的Mariadb[root@localhost ~]# rpm -e --nodeps mariadb-libs-5.5.44-2.el7

Hadoop企业开发案例调优场景

需求 (1)需求:从1G数据中,统计每个单词出现次数。服务器3台,每台配置4G内存,4核CPU,4线程。 (2)需求分析: 1G / 128m = 8个MapTask;1个ReduceTask;1个mrAppMaster 平均每个节点运行10个 / 3台 ≈ 3个任务(4    3    3) HDFS参数调优 (1)修改:hadoop-env.sh export HDFS_NAMENOD

hadoop开启回收站配置

开启回收站功能,可以将删除的文件在不超时的情况下,恢复原数据,起到防止误删除、备份等作用。 开启回收站功能参数说明 (1)默认值fs.trash.interval = 0,0表示禁用回收站;其他值表示设置文件的存活时间。 (2)默认值fs.trash.checkpoint.interval = 0,检查回收站的间隔时间。如果该值为0,则该值设置和fs.trash.interval的参数值相等。

NameNode内存生产配置

Hadoop2.x 系列,配置 NameNode 内存 NameNode 内存默认 2000m ,如果服务器内存 4G , NameNode 内存可以配置 3g 。在 hadoop-env.sh 文件中配置如下。 HADOOP_NAMENODE_OPTS=-Xmx3072m Hadoop3.x 系列,配置 Nam

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;