Hibernate的基础知识点介绍

Hibernate技术深度解析 Hibernate 支持 HQL(Hibernate Query Language)和 Criteria API 两种查询方式,允许开发者编写更灵活、更复杂的查询语句。 阅读详情

1.1什么是hibernate

Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。简单说,hibernate它是一个轻量级的jdbc封装,也就是说,我们可以使用hibernate来完成原来我们使用jdbc完成的操作,就是与数据库的交互操作.它是在dao层去使用的.

1.2什么是orm

对象关系映射(英语:(Object Relational Mapping,简称ORM,或O/RM,或O/R mapping),是一种程序技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换.

ORM模型的简单性简化了数据库查询的过程.使用ORM查询工具,用户可以访问期望数据,而不必理解数据库的底层结构.

简单说,我么使用orm可以将我们的对象和我们的类去进行映射,是的我们可以去操作类/对象就可以完成对表的操作.

1.3为什么使用hibernate

Hibernate对jdbc访问数据库的代码进行了封装,大大简化了数据访问层繁琐的重复性代码.

Hibernate是一个基于jdbc的主流持久化框架,是一个优秀的orm实现,它很大程度的简化了dao层的编码工作

Hibernate是企业级开发中主流框架.映射的灵活性非常出色.它支持很多关系型数据库.

 

2.1hibernate下载的文件结构

Documentation目录:存放的就是hibernate相关的文件与api

Lib目录:存放的是hibernate编译和运行所依赖的jar包,其中required子目录下包含了运行hibernate项目必须的jar包

Project目录:存放的是hibernate各种相关的源代码与资源

在lib/required目录中,包含hibernate运行必须的jar包

 

2.2创建数据库与表

DROP DATABASE IF EXISTS hibernate;

CREATE DATABASE hibernate;

USE hibernate;

CREATE TABLE t_customer(

    id INT PRIMARY KEY AUTO_INCREMENT,

    name VARCHAR(20),

    address VARCHAR(50)

)

 

2.3创建实体类

2.4导入hibernate依赖jar包

导入lib/required下所有的9个jar包

 

导入mysql数据库的驱动jar包

日志相关jar包

2.5hibernate相关配置文件

有两种:

  1. xxx.hbm.xml     它主要是用来描述类与数据库中的表的映射关系
  2. hibernate.cfg.xml      它是hibernate框架的核心配置文件

2.5.1映射配置文件

位置:它要与我们的实体类在同一个包下

名称:类名.hbm.xml

约束:

约束位置:

 

;

3.5.2核心配置文件

它主要是hibernate框架所使用的,它主要包含了链接数据库的相关信息,hibernate的相关配置等.

位置:在src目录下创建一个hibernate.cfg.xml

约束:

约束文件位置所在:hibernate核心jar包下的org.hibernate包下

可以参考\hibernate-release-5.0.7.Final\project\etc\hibernate.properties文件,来进行配置

 

2.6.快速入门开发测试

2.7hibernate工作原理总结

1、通过Configuration().configure();读取并解析hibernate.cfg.xml配置文件。

2、由hibernate.cfg.xml中的<mapping resource="com/xx/User.hbm.xml"/>读取解析映射信息。

3、通过config.buildSessionFactory();//得到sessionFactory。

4、sessionFactory.openSession();//得到session。

5、session.beginTransaction();//开启事务。

6、persistent operate;

7、session.getTransaction().commit();//提交事务

8、关闭session;

9、关闭sessionFactory;

3.hibernate配置详解

3.1核心配置文件的配置

对于hibernate的核心配置文件它有两种方式

  1. Hibernate.cfg.xml
  2. Hibernate.properties

我们在开发中使用比较多的是hibernate.cfg.xml这种方式,原因是它的配置能力更强,易于修改

我们主要讲解的是hibernate.cfg.xml配置

  1. 可以加载数据库相关信息

  1. 可以加载hibernate的相关配置

  1. 加载映射配置文件

对于hibernate.cfg.xml配置文件中的内容,可以参考/hibernate/project/etc/hibernate.properties的配置

配置这个属性后,我们可以进行表的自动创建

Create-drop   每次都会创建一个新的表,执行完成之后会删除,一般在测试中使用

Create 每次都会创建一个新的表,一般也是在测试中使用.

Update 如果数据库中有表,不创建,如果没有表就会创建,如果映射不匹配,会自动更新表结构(只能够添加)

Validate   只会使用存在的表,并且会对映射关系进行校验

 

3.2映射文件配置

映射配置文件它的名称是,类名.hbm.xml,它一般放置在实体类所在的包下.

这个配置文件的主要作用是简历表与类的映射关系.

1.可以统一声明包名,这样在<class>中就不需要写类的全路径类名

  1. 关于<class>标签的配置

name属性:类的全路径类名

table属性:表的名称,可以省略,这时表的名称和类名一致

catelog属性:数据库的名称,可以省略,如果省略,参考核心配置文件中url路径中的库名称

  1. 关于<id>标签

首先它必须存在.<id>是用于建立类中的属性与表中的主键映射的.

name   类中的属性名称

column 表中的主键名称 column它也可以省略,这是列名和类中属性名称一致

length 表示字段长度

type属性  指定类型

 

<generator>它是主要描述主键生成策略

  1. <property>标签

它主要是描述类中其他属性与表中非主键的映射关系

 

关于hibernate的映射文件中类型的问题

对于type属性的取值,可以有三种

  1. java中的数据类型
  2. hibernate中的数据类型
  3. Sql语句中的数据类型

默认是hibernate中数据类型

4.hibernate常用API

Hibernate的API一共有6个,分别为:Session、SessionFactory、Transaction、Query、Criteria和Configuration.这6个核心类和接口在任何开发中都会用到.

4.1configuration

它的主要作用是用于加载hibernate配置

Configuration configure = new Configuration().configure();主要加载src下的hibernate.cfg.xml核心配置文件

Configuration configure = new Configuation(); 主要是加载src下的hibernate.properties

Configuration configure = new Configuration().configure(核心配置文件名称);可以通过configure方法的参数形式传递核心配置文件名称,加载制定配置文件

问题:我们是在hibernate.cfg.xml文件中有xxx.hbm.xml映射文件配置.如果我们使用的是hibernate.properties这种核心配置文件,它如何加载映射配置?

4.2sessionFactory

首先sessionFactory它的获取是通过configuration得到.

 

SessionFactory接口负责初始化Hibernate。它充当数据存储源的代理,并负责创建Session对象。这里用到了工厂模式。需要注意的是SessionFactory并不是轻量级的,因为一般情况下,一个项目通常只需要一个SessionFactory就够,当需要操作多个数据库时,可以为每个数据库指定一个SessionFactory。

 

通过sessionFactory可以得到session.

它其实是从连接池中获取一个连接

获取一个与线程绑定的session

sessionFactory它不是轻量级的,不要频繁的创建关闭它.在一个项目中有一个sessionFactory就可以,通过sessionFactory来获取session进行操作.

问题:怎样可以保证在一个项目中所使用的sessionFactory是同一个了?

 

sessionFactory内部维护了一个数据库连接池,如果我们要想使用c3p0连接池,应该怎么处理?

  1. 我们要导入c3p0的相关jar包

在hibernate/lib/optional下有关于c3p0连接池jar包

  1. 在hibernate.cfg.xml文件中配置c3p0连接

可以查看etc/hibernate.properties中关于c3p0的配置

4.3session

Session接口负责执行被持久化对象的CRUD操作(CRUD的任务是完成与数据库的交流,包含了很多常见的SQL语句)。但需要注意的是Session对象是非线程安全的。

 

问题:我们如何解决session的安全问题?

我们只需要在方法内部来使用session就可以.

问题:session如何获取到?

sessionFactory.openSession();相当于直接通过sessionFactory创建一个新的session对象,使用完成后要手动调用close来关闭.

sessionFactory.getCurrentSession();获取一个与线程绑定的session,当我们提交或事物回滚之后,session对象会自动关闭.

Session对象中常用的方法:

save:         保存对象

update:           修改操作

delete:           删除操作

get/load:         根据id进行查询

saveOrUpdate: 执行save操作或者update操作

createQuery:      获取一个query对象(hql)

createSQLQuery:   获取一个可以操作sql的SQLQuery对象

createCriteria:      获取一个criteria对象,它可以完成条件查询

4.4transaction

transaction接口主要用于事物管理,它是hibernate的事物接口,对底层的事物进行了封装.使用它可以进行事物的操作.

Commit 事物的提交

Rollback   事物的回滚

 

问题:如何获取一个transaction对象?

通过session.beginTransaction()得到

 

问题:如果我们在程序中没有开启事物,是否存在事物了?

有事物的,session的每一个操作就会开启一个事物.

 

默认情况下,事物是不会自动提交的

默认不自动提交

设置事物自动提交

4.5query

Query接口让你方便地对数据库及持久对象进行查询,它可以有两种表达方式:HQL语言或本地数据库的SQL语句。Query经常被用来绑定查询参数、限制查询记录数量,并最终执行查询操作。

通过query对象主要完成查询操作

Query query = Session.createQuery(hql);

下面sqlQuery 可以执行sql语句

SQLQuery sqlQuery = session.creteSQLQuery(sql);

sqlQuery是query的子类

4.5.1查询所有操作---使用hql

4.5.2分页查询---使用hql

4.5.3查询指定列信息---使用hql

 

Select name,address from customer; 得到的是list<obj[]>结果

要想得到list<customer>结果

1.在customer类中生成以name,address为参数的构造.注意:无参构造也要有

2.select new customer(name,address) form customer;

4.5.4条件查询---使用hql

可以使用where关键字

 

无名称参数  from customer where name = ?

对其进行赋值 query.setParameter(0,”张三”);

 

有名称参数  from customer where name = :myname;

对其进行赋值 query.setParameter(“myname”,”李四”);

 

如果能够保证查询结果是唯一的,我们可以使用query.uniqueResult()来得到一个单独对象.

4.5.5执行本地sql

要想执行本地的sql

SQLQuery SQLQuery = Session.createSQLQuery(String sql);

使用addEntity方法来将结果封装到指定的对象中,如果不封装,得到的是list<object[]>

如果sql有参数,我们使用setParameter方法来完成参数的赋值

如果结果只有一个,我们可以使用uniqueResult方法来的到一个单独对象

4.6criteria

Criteria接口与Query接口非常类似,允许创建并执行面向对象的标准化查询。值得注意的是Criteria接口也是轻量级的,它不能在Session之外使用。

首先我们想要使用criteria,必须得到criteria

Criteria criteria = Session.createCriteria();

 

查询所有操作

Session.createCriteria(实体类.class)得到一个criteria对象,调用list方法查询所有

分页方法与query的方法一致  setFirstResult()起始位置 setMaxResults()返回结果条数

 

查询指定列信息

通过projections(映射)对象来完成 如果不指定别名和结果转换条件,返回list<obj[]>

要想返回list<customer>,需要通过指定alias别名,加上调用setResultTransfomer方法指定结果转换类,setResultTransfomer方法的参数为transformers对象的aliasToBean(target.class)方法的返回值

 

条件查询

criteria.add(Restrictions.eq(“name”,”xxxx”));

criteria.add(Restrictions.or(Restricitons.eq(),Restrictions.list()…..))

我们使用Criteria可以更加面向对象去操作,它非常适合进行多条件组合查询。

 

5.1hibernate持久化类

什么是持久化类了?Persistent object PO

PO = POJO + hbm映射配置

  对于hibernate中的PO类的编写规则:

  1. 必须提供一个无参数的public构造方法
  2. 所有属性必须为private,对外提供public的get/set方法
  3. 在PO类中必须提供一个标识属性,让它与数据库中的主键对应,我们管这个属性叫做OID.
  4. PO类中的属性尽量使用基本数据类型的包装类
  5. PO类它不能使用final修饰

OID作用:OID指的是与数据库中表的主键对应的属性

Hibernate框架它是通过OID来区分不同的PO对象,如果在内存中有两个相同的OID对象,那么hibernate会认为他们是同一个对象

为什么要使用包装类型?

使用基本数据类型它没有办法去描述不存在的概念,如果使用包装类型,它就是一个对象,对于对象它的默认值为null。

PO类不能使用final修饰?(get/load方法的区别)

Get/load方法都是根据id,去数据库查询对象

  1. get直接得到了一个持久化类型的对象,它就是立即进行查询操作

     load它得到的是持久化类型对象的代理对象(子类对象),它采用了一种延迟策略来查询数据.

  1. get方法查询的时候,如果不存在返回null

     load方法在查询的时候,如果不存在,会产生异常ObjectNotFoundException

5.2Hibernate主键生成策略

Hibernate中定义的主键类型包括:自然主键和代理主键:

       自然主键:具有业务含义 字段 作为主键,比如:学号、身份证号

       代理主键:不具有业务含义 字段作为主键(例如 自增id),比如:mysql自增主键,oracle序列生成的主键、uuid()方法生成的唯一序列串

       建议:企业开发中使用代理主键!

       在hbm.xml中可以设置的主键生成策略如下:

 

主键生成器

描述

increment

代理主键。由hibernate维护一个变量,每次生成主键时自动以递增。

问题:如果有多个应用访问一个数据库,由于每个应用维护自己的主键,所以此时主键可能冲突。建议不采用。

优点:可以方便跨平台

缺点:不适合高并发访问

identity

代理主键。由底层数据库生成标识符。条件是数据库支持自动增长数据类型。比如:mysql的自增主键,oracle不支持主键自动生成。

如果数据库支持自增建议采用。

优点:由底层数据库维护,和hibernate无关

缺点:只能对支持自动增长的数据库有效,例如mysql

sequence

代理主键。Hibernate根据底层数据库序列生成标识符。条件是数据库支持序列。比如oracle的序列。

如果数据库支持序列建议采用。

优点:由底层数据库维护,和hibernate无关

缺点:数据库必须支持sequence方案 例如: oracle

native

代理主键。根据底层数据库对自动来选择identity、sequence、hilo

由于生成主键策略的控制权由hibernate控制,所以不建议采用。

优点:在项目中如果存在多个数据库时使用方便

缺点:效率比较低

uuid

代理主键。Hibernate采用128(二级制)位的UUID算法来生成标识符。该算法能够在网络环境中生成唯一的字符串标识符。

此策略可以保证生成主键的唯一性,并且提供了最好的数据库插入性能和数据库平台的无关性。建议采用。

优点:与数据库无关,方便数据库移植,效率高,不访问数据库就可以直接生成主键值,并且它能保证唯一性.

缺点:uuid长度大(32位),占用的空间较大,对应数据库类型char varchar

assigned

自然主键。由java程序负责生成标识符。

不建议采用。

尽量在操作中避免手动对主键操作.

 

6.1持久化对象的三种状态


有三种:

  1. 瞬时态:     也叫做临时态或自由态,它一般指我们new出来的对象,它不存在oid,与hibernate session无关联,在数据库中无记录.它使用完成后,会被jvm直接回收掉,它只是用于信息携带.

简单说:        无oid, 与数据库中的信息无关联,     不在session的管理范围内

 

  1. 持久态:     在hibernate session管理范围内,它具有持久化标识oid     在事物未提交之前一直是持久态,当它发生改变的时候,hibernate是可以检测到的.

简单说:        有oid    由session管理   在数据库中可能有,也有可能没有

 

  1. 托管态:     也叫做游离态或者离线态,它是指持久态对象失去了与session的关联,托管对象它存在oid,在数据库中有可能存在,也有可能不存在

对于托管态独享,它发生改变时,hibernate不能检测到.

6.2持久化对象三种状态切换

判断持久化类对象的三种状态:

  1. 是有oid
  2. 判断是否与session有关联

 

  1. 瞬时态(new出来的对象)

瞬时---------------->持久    save      saveOrUpdate

瞬时---------------->托管(游离)        手动设置oid

 

  1. 持久态  它是由session管理

持久---------------->瞬时    delete() 被删除后持久化对象不再建议使用

持久---------------->托管    注意:session它是有缓存的,叫做一级缓存

evict(清除一级缓存中指定的一个对象)

clear(清空一级缓存)

close(关闭,清空一级缓存)

  1. 托管态  (它是无法直接获取)

托管---------------->瞬时    直接将oid删除

托管---------------->持久    update   saveOrUpdate     lock(过时)

  

7Hibernate的一级缓存

Hibernate的一级缓存就是指session缓存

 

actionQueue它是一个行动队列,它主要记录的是crud操作的相关信息

PersistenceContext它是持久化上下文,它其实是真正的缓存

在session中它定义了一系列的集合来存储数据,它们构成了session缓存

只要我们的session没有关闭,它就会一直存在.

当我们通过hibernate中的session提供的一些api进行操作的时候,例如save get update等进行操作,就会将持久化对象保存到session中,当下一次再去查询缓存中具有的对象(oid来判断),就不会再去数据库中查询,而是直接从缓存中获取.

Hibernate的一级缓存存在的目的就是为了减少数据库的访问.

在hibernate中还有一个二级缓存,它是sessionFactory级别的缓存.

7.1示例-------------->演示一级缓存的存在

7.2持久化对象具有自动更新数据库的能力

为什么持久化对象具有自动更新数据库的能力?

 

8.3一级缓存常用api

一级缓存的特点:

  1. 当我们通过session的save,update,saveOrUpdate进行操作的时候,如果一级缓存中没有对象,会将这些对象从数据库中查询得到,存储到一级缓存.
  2. 当我们通过session的load,get,query的list等方法进行操作时,会先判断一级缓存中是否存在,如果没有才会从数据库获取,并且将查询到的数据存储到一级缓存中.
  3. 当调用session的close方法时,session缓存会清空.

 

Clear会清空一级缓存

Evict会从一级缓存中删除一个指定的对象

Refresh会重新查询数据库,用数据库中信息来更新一级缓存与快照

 

8.4hibernate的二级缓存

二级缓存是一种名称的定义,指在已有缓存的基础上,再增设一种缓存,二级缓存只为一级缓存服务,它实现了让同一个sessionFactory造成的session之间数据实现共享sessionFactory,它弥补了一级缓存单词存储数据量小、生命周期短、不同Session间数据无法共享的 缺陷,二级缓存可以实现多次请求操作间的数据共享,可以有效减少访问永久介质的次数。

    hibernate本身不支持二级缓存,只是提供了二级缓存的接口,由不同的缓存供应商提供缓存,目前hibernate支持的二级缓存主要有四种:

    *ehcache

    *OpenSymphony

    *SwarmCache

    *JbossCache

2.二级缓存中对数据的要求

    1)  适合加入二级缓存的数据

        *很少被修改的数据(因为存在数据更新不及时或更新失败的问题)

        *不是很重要的数据

    2)  不适合加入二级缓存的数据

        *经常被修改的数据

        *财务数据,绝对不允许出现并发

3. 二级缓存的内部结构供程序使用的共4个部分(内部结构还有其他的部分)

二级缓存执行原理

        先将数据加载进入一级缓存,再加载进入二级缓存,再由一级缓存返回给客户端,拿数据会先找一级缓存,有则返回,没有则接着找二级缓存,找到则返回给一级缓存,由一级缓存返回给客户端,如果一级、二级缓存中都没有数据查找数据库,二级缓存不直接与客户端打交道,只跟一级缓存打交道,如果是HQL语句则直接查找数据库

 

8.5hibernate的一级缓存跟二级缓存

二级缓存因为是sessionFatory级别,所以可以解决不同的session不会共享缓存数据的缺点。

一级缓存的list和iterator的区别?

list会 一次性把所有的记录都查询出来了;会放入缓存,不会从缓存中取数据;

iterate(N+1次查询) N表示所有的记录总数,即会发送一条语句查询所有的记录的主键,这是第一条查询语句,再根据每一个主键取数据库查询,这是根据第一次查询的条数进行N次查询操作;会放入缓存,也会从缓存中取出数据。

这个时候就可以用使用二级缓存, 二级缓存的应用将不怕1+N 问题,因为即使第一次查询很慢(未命中),以后查询直接缓存命中也是很快的。刚好又利用了1+N 。但是此问题只存在于第一次查询时,在后面执行相同查询时性能会得到极大的改善。此方法适合于查询数据量较大的业务数据。

但是注意:当数据量特别大时(比如流水线数据等)需要针对此持久化对象配置其具体的缓存策略,比如设置其存在于缓存中的最大记录数、缓存存在的时间等参数,以避免系统将大量的数据同时装载入内存中引起内存资源的迅速耗尽,反而降低系统的性能!!!

8.6hibernate常用api-session补充

Update

Update操作它主要是针对于托管对象,持久对象具有自动更新能力.

问题1:如果我们直接操作的对象是一个托管对象,执行update会出现什么情况?

Update操作时,如果对象是一个托管对象,可以操作,它会将托管对象转换成一个持久化对象再操作

如果session中出现相同oid的两个对象,会产生异常

问题2:托管对象的oid如果再数据库表中不存在,会不会报异常?

所以,在实际开发操作中,建议我们通过持久化对象来直接修改其操作.

 

SaveOrUpdate

如果对象是一个瞬时对象---------->执行save操作

如果对象是一个托管对象---------->执行update操作

如果对象是一个持久对象---------->直接返回

Delete

删除一个托管对象,先与session关联,然后再进行删除.

注意:如果执行delete操作,先删除一级缓存,再删除数据库中的数据.

 

Scrapy爬虫之热门网站数据爬取--------第2关 第2关:小说网站玄幻分类第一页小说爬取 任务描述 本关任务:爬目标网页的3本小说保存到本地MySQL数据库,目标网页为全书网玄幻分类首页。 注:考虑到单机(非分布式)爬虫的爬取时间和测试平台的压力,我们不爬更多页数的小说了,可以作为课下作业自己完善。 xpath匹配:循环获取相同标签下的内容 通过网页分析,我们在获取小说的章节名时,发现他们都在标签<DIV class="clearfix dirconone">下的li的a中: 这时,我们可以先把其中所有的li标签先获取到: titles = r 阅读详情

相关推荐

ROS2 DDS中间件(图文并茂+超详细)

DDS 的目标场景在端上,致力于使端上的应用可以更容易的进行通信,由于它的完全分布式架构,可以方便的将端上的应用拆分为多进程架构,从而提高端的容错能力。从产品定位角度来讲,它和 Chromium 中的 mojo 都是端上的通信中间件,只不过 mojo 不强调分布式,内部集成了更多的特定于端上的机制,比如句柄的传输,消息的缓存等。但由于 mojo 生于 Chromium,目前官方并没有把它独立出来,所以用起来比较不方便。而 DDS 或许可以在简单的场景下作为 mojo 的替代品。

weixin_39939185的博客 5281

Hibernate框架【一】——HIbernate框架介绍

Hibernate是一个开源的Java对象关系映射(ORM)框架,它提供了一种方便的方式将Java对象与关系型数据库进行映射和交互。通过Hibernate,开发人员可以使用面向对象的方式操作数据库,而不需要直接编写SQL查询语句。

理想主义的花最终会盛开在浪漫主义的土壤里,我的热情永远不会熄灭在现实的平凡之中,我们终将上岸,阳光万里。 1万+

跨平台烧录实战:RKDevTool在Windows/Linux/MacOS下的统一与差异

本文详细解析了RKDevTool在Windows、Linux和macOS三大操作系统下的固件烧录实践,重点介绍了RK3576开发板的环境配置、工具链选择、烧录模式切换及常见问题解决方案,帮助开发者构建稳定可靠的跨平台烧录工作流。

cnn8visionary的博客 203

Hibernate简单讲解

所谓的ORM就是利用描述对象和数据库表之间映射的元数据,自动把java应用程序中的对象持久化到关系型数据库的表中。通过操作java对象,就可以完成对数据库表的操作。可以把ORM理解为关系型数据和对象的一个纽带,开发人员只需关注纽带一段映射的对象即可。Hibernate框架使用ORM思想对数据库进行crud操作在web阶段学习的javabean,更准确的叫法应该是实体类ORM:Object Relational Mapping,对象关系映射。让实体类和数据库表对应,让实体类属性和表中字段对应。

weixin_42694511的博客 5026

Chapter 4 Ripple-Based Control Technique Part I

本文介绍了DC-DC转换器的纹波控制技术,重点分析了迟滞控制、恒定开通时间控制、恒定关断时间控制等方案的工作原理及优缺点。纹波控制无需补偿网络,具有快速瞬态响应和结构简单的优势,特别适合电池供电应用。其中,恒定开通时间控制在轻载时能自动延长关断时间,实现伪定频工作;而恒定关断时间控制轻载效率较低。文章还讨论了纹波注入技术解决Boost转换器右半平面零点问题,并比较了不同控制方案在负载瞬态下的性能表现。最后指出基于纹波的控制技术在提高调节精度和降低EMI方面的改进方向。

2304_76736886的博客 1300

从CMT2300A实战出发:Sub1G射频匹配电路设计要点与315MHz应用详解

本文从CMT2300A芯片实战出发,详细解析Sub1G射频匹配电路设计要点,特别针对315MHz应用场景。内容涵盖频段划分逻辑、调制方式选择、晶体振荡器设计等基础认知,以及315MHz匹配电路物料选型、巴伦网络处理等实战技巧,并分享PCB布局防干扰设计和实测验证方法,助力开发者优化射频通信性能。

weixin_29238147的博客 163

hibernate框架简介

目录 一、 历史与背景 1. 应用程序的分层体系结构 2. 持久化层(如图1右) (1)什么叫持久化? (2)什么叫持久层? (3)为什么要持久化?增加持久层的作用是什么? (4)目前在持久化层领域,实现模式有以下几种: 3. ORM介绍 二、Hibernate定义 三、Hibernate的作用 四、Hibernate的应用 五、Hibernate API简介 1.Hibernate API中的接口可以分为以下几类: 2. Hibernate的核心接口框图 六 Hib...

renxingzhadan的专栏 7923

【系统分析师】第1章-基础知识:绪论(核心总结)

《系统分析师教程(第二版)绪论》概述了系统分析师的核心角色与知识体系。作为信息系统开发的核心复合型人才,系统分析师需具备技术、业务、管理及道德等多维能力,贯穿需求分析、系统设计、协调沟通和质量保障全流程。知识体系涵盖系统工程方法论(如霍尔三维结构)、信息技术基础(数据库/网络技术)及管理学数学基础。教程梳理了该职业从数据处理专家到现代技术整合者的演变历程,并指出职业发展路径(初级分析师至CTO)。第二版新增大数据/AI等前沿内容,强化案例与实践,是软考官方权威教材,为读者构建系统化的学习框架。

数据知道的博客 6907

Hibernate入门第一讲——Hibernate框架的快速入门

Hibernate框架介绍什么是Hibernate我们可以从度娘上摘抄这样有关Hibernate的介绍: Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。Hibernate可以

李阿昀的博客 12万+

PyQt(Python+Qt)学习随笔:PyQt界面派生类构造方法中super方法的使用

老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 在《第15.7节 PyQt入门学习:PyQt5应用构建详细过程介绍》和订阅专栏《第二章、PyQt5应用构建详细过程介绍》中,老猿介绍界面派生类的构造方法如下: class MediaPlayerWin(QtWidgets.QWidget,Ui_UI_PlayerWin): def __i...

老猿Python 2711

CODESYS数据处理合集(高低字节/ 字/浮点数/位)

VAR_INPUT//字节0//字节1END_VARVAREND_VAR。

RXXW_Dor的博客 354

Hibernate第二章知识点总结——第二章--Hibernate基础

Hibernate概述回顾   1.        持久化概念 why、what、how(序列化/XML/JDBC/ORM) 2.        对象关系映射(ORM) 什么是ORM? ORM组成 ORM优点 ORM主流框架 3.        Hibernate开发步骤 Hibernate项目构建 Hibernate应用组成 API应用步骤 4.        Hibe

DBA@Robin 2467

诊断测试工具CANoe.DiVa从入门到精通系列——开门见山

### 工具主要用于测试ECU的诊断功能。关于自动化诊断测试可以分为如下内容: ### -> 1、根据诊断需求规范进行cdd文件的编辑(现阶段主要是诊断问卷调查表); ### -> 2、新建Diva工程,导入对应的诊断数据库文件生成测试用例; ### -> 3、新建CANoe工程,导入CANoe.DiVa生成的Diva工程; ### -> 4、根据测试报告进行错误处理。

Soly_kun的博客 3547

Hibernate 的知识点学习

Hibernate 的知识点学习

weixin_45428910的博客 763

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Hibernate

什么是Hibernate Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用。 什么是ORM 对象关系映射(英语:Object Relation Mappin

TL19970的博客 378

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

如何用Hibernate进行对象的持久化

 如何用Hibernate进行对象的持久化Hibernate作为数据持久化层的一种技术应用很广泛。现在就其中的知识点在读书过程中进行记录和总结。 这里主要考虑的一种数据的解决方案是:通过DAO(Data Accss Object)和ORM(Object Relational Mapping)实现数据的持久化操作。在这种数据持久化实现方案中,通过DAO来实现对Java对象与数据库中数据之

sumongh我们在一起 2673

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Hibernate知识点概述

2.Hibernate 概念理解:Hibernate是一种轻量级对jdbc的封装(dao持久层).Hibernate来完成对jdbc操作.在dao层进行使用.与数据库进行的交互操作     类与表对应,属性与表的字段对应.对象与表中的记录对应 优点:  Hibernate对jdbc访问数据库的代码做了大量的封装.大大简化了数据访问层繁琐的重复性代码 Hiberna

YoungLee16的博客 596

java mysql知识点_java基础知识点汇总

java基础知识点汇总计算机二级考试知识点的掌握对考生来说是比较重要的,下面是百分网小编为各位考生整理的java基础知识点汇总复习,希望堵大家的考试有所帮助!JAVA知识点一1.AOP的概念及优点Aspect Oriented Programming面向方面编程.面对象编程的关注点是对象,面向方面编程以面向对象编程为基础,关注点是切面,切面组件可以作用在若干目标对象的方法上,封装了具有通用性的一些...

weixin_31064353的博客 255

java中hibernate_java中Hibernate的内容详解

对于有些想学习Hibernat的人来说,在下载了框架后就不知道从何入手。这里我们为大家进行了相关学习目标的分解,主要有知识点、核心组件和工作过程。可以说掌握这三大方面,对于使用Hibernat框架就不成问题了。下面我们就来具体分析一些Hibernat框架的一些重点问题,一起来学习一下。1.Hiberate框架主要知识点对于Hiberate框架的学习重点,可以总结为:掌握Hiberate的基本配置—...

weixin_28676983的博客 649

吹牛的资本之Hibernate框架,五分钟搞定Hibernate...

Hibernate框架: 1、什么是Hibernate? Hibernate是一个开放源代码的对象关系映射(ORM)框架,是JPA(Java持久层API)的一个实现类,它对JDBC(Java数据库连接)进行了非常轻量级的对象封装,它将POJO(基本的JavaBean)与数据库表建立映射关系,是一个全自动的ORM框架,Hibernate可以自动生成SQL语句,自动执行,使得Java程序员对数据的

wenqiang612的博客 639

hibernate 理解

转自  yexinzi的专栏 话题一:hibernate的基本使用学习方向:重点理解hibernate是什么,然后牢记其基本的编程步骤 一:hibernate 是什么?1: hibernate 是对JDBC进行了封装,负责对象持久化,位于中间层,在应用程序和数据库之间起到了桥梁作用的一种映射工具。(映射是通过配置文件来维护的)二:为什么使用hibernate?1

hakunamatata2008的专栏 3167

hibernate你必须知道的知识点(敲黑板,划重点)!

ORM,object relation mapping 对象关系映射,底层是对JDBC的封装,来对数据库进行crud操作。 1.hibernate映射配置文件 xxx.hbm.xml <引入dtd约束> <!--配置映射的实体类--> <class name="实体类全路径" table="数据库表名"&gt...

RyeWh1skey的博客 1278

hibernate之SQL查询

https://www.cnblogs.com/sunjf/p/hibernate_SQL.html

GraceAn的博客 290

Hibernate_day1

/******************Hibernate_day1**2011_04_25**/课程安排:    :Hibernate概念和Hibernate编程    :Hibernate的主键生成策略和对象状态    :Hibernate的映射关系    :Hibernate的继承映射,事务    :Hiberante的锁机制知识点:    掌握对象

恋上静 恋上生活 559

Hibernate 简单总结

学习了几天的 Hibernate 框架,今天简单总结一下吧。   一、环境搭建1.要想使用框架,jar 包是绝对少不了的,Hibernate 框架需要13个最基础的 jar 包,分别是:必要包9个 + 日志包3个 +驱动包 1 个,共计13个,如下: required 包: 日志包: 驱动包: 2.新建 JavaBean 类,并在 JavaBean 所在的包下创建配置文件,其

H_Shun的博客 760

Hibernate Validator的使用

前言:最近项目里面用到了hibernate-validator做接口的参数校验,第一感觉很好用,但是返回的提示还不够友好,这里全面了解一下这个项目的用法和功能。 此工具的中文文档我有传到我的下载中 可以在这里下载https://download.youkuaiyun.com/download/zhanjunpeng01/11217481 什么是Hibernate validator呢?它是基于JSR-3...

zhanjunpeng01的博客 1020
下一篇: Hibernate的关系映射以及检索
GoldWashing
博客等级 码龄8年 18粉丝 22原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值