——【 Hibernate 】
枫眠cc
热爱是所有的理由和答案。
展开
-
Hibernate:入门案例
ORMORM-对象关系映射。O:对象(java中的实体类)R:关系(数据库中的数据表)M:映射(将实体类与数据库表之间的关系说明清楚)持久层Hibernate它是一个轻量级,企业级,开源的ORM持久层框架。是可以操作数据库的框架。通常情况下,软件工程的持久层解决方案,一个为主一个为辅。两者并存(写SQL语句的和不写SQL语句的)。轻量级:指的是使用时依赖的资...原创 2019-08-12 19:00:38 · 150 阅读 · 0 评论 -
Hibernate:核心接口
Hibernate的核心接口Configuration 接口配置Hibernate,根据其启动hibernate,创建 SessionFactory 对象;Configuration用于配置加载类,用于加载主配置,ORM数据加载,直接调用空参构造函数进行创建。使用空参的函数configure()来加载src下名字为hibernate.cfg.xml的主配置文件,配置文件的名字大小写...原创 2019-08-12 19:08:24 · 147 阅读 · 0 评论 -
Hibernate:配置文件和ORM文件
Hibernate的配置文件:hibernate.cfg.xml针对数据库的中文处理<property name="connection.useUnicode">true</property><property name="connection.characterEncoding">UTF-8</property>显示SQL语句...原创 2019-08-12 19:11:44 · 275 阅读 · 0 评论 -
Hibernate:主键生成策略
主键生成策略1、increment:以max() + 1的方式实现主键生成策略。只能用于int、short、long数据类型。2、identity:自动标识列。只能用于MySQL数据库。主键的生成就交由数据库自动生成。3、assigned:手动设置。由程序端控制主键的值。4、sequence:用于Oracle数据库。<generator class="sequence"...原创 2019-08-12 19:15:52 · 124 阅读 · 0 评论 -
Hibernate:对象状态
Hibernate中的OIDHibernate对象状态临时态只存在于内存中,而在数据库中没有相应数据。用new创建的对象,它没有持久化,没有处于Session中,处于此状态的对象叫临时对象没有OID,和Session没有关系持久态与session关联并且在数据库中有相应数据。已经持久化,加入到了Session缓存中,如通过hibernate语句保存的对象,处于此状态的对...原创 2019-08-12 19:22:34 · 121 阅读 · 0 评论 -
Hibernate:线程
线程使Session对象符合使用原则,一个线程只能有一个Session,配置如下:1、首先在Hibernate的配置文件hibernate.cfg.xml,绑定线程<property name="hibernate.current_session_context_class">thread</property>2、线程工具类public class ...原创 2019-08-12 19:28:29 · 269 阅读 · 0 评论 -
Hibernate:查询
Hibernate查询方式一共五种:OID查询、SQL查询、HQL查询、QBC查询、对象导航查询OID查询:根据id查询一个实体get方法public void oidByGet() { int goodsId = 1; Configuration c = new Configuration().configure(); SessionFactory sf = c.buildS...原创 2019-08-16 16:21:17 · 99 阅读 · 0 评论 -
Hibernate:HQL查询
HQL:hibernate query language涉及的对象:Query接口如何获取该对象:Query query = session.createQuery(String hql);方法中参数的含义:使用HQL语句查询数据库SQL:select cust_id from cst_customer(此处是表名与字段名)HQL:select custId from Cust...原创 2019-08-16 16:27:16 · 104 阅读 · 0 评论 -
Hibernate:QBC查询
QBC:Query By Criteria这是一种更加面向对象的查询方式,它把生成语句的过程全都融入到方法之中了(调用方法就生成sql语句,其中自动拼接字符串,自动解析xml文件,效率比HQL查询低)所以在Hibernate官网上,推荐的查询方式是HQL。涉及的对象:Criteria接口如何获取该对象:Criteria criteria = session.createCriteria...原创 2019-08-16 16:35:28 · 436 阅读 · 0 评论 -
Hibernate:一对多级联操作
MySQL数据库中char和vchar区别比如存储"name"字符串char(5):['n','a','m','e',''];vchar(5):['n','a','m','e'];可变长度数据库中表关系:一对一;一对多、多对一;多对多如何实现数据库中的表关系?一对多的表关系在数据库中如何实现?使用外键约束。我们习惯把一的一方称为主表,把多的一方称为从表。什么是外键?从表...原创 2019-08-16 16:43:53 · 209 阅读 · 0 评论 -
Hibernate:多对多级联操作
学习多表映射配置要遵循的步骤第一步:确立两张表之间的关系第二步:在数据库中实现两张表之间的关系建立,在数据库中实现多对多要靠中间表,中间表只能出现两表的主键第三步:在实体类中描述出两个实体之间的关系,建立多对多实体类,两个实体类分别提供对方实体类set集合的引用建立一对多实体类,当中间表有其他字段时以一对多方式建立实体类第四步:在映射配置文件中建立两个实体和两张表之间的关系...原创 2019-08-16 16:50:11 · 176 阅读 · 0 评论 -
Hibernate:缓存
什么是缓存?它就是内存中的临时数据。为什么使用缓存?减少和数据库交互的次数,从而提高查询效率。适用缓存的数据:经常查询的,并且不经常修改的,同时数据一旦出现问题,对最终结果影响不大的。不适用缓存的数据:不管是否经常查询,只要经常修改的,都可以不用缓存;并且如果数据由于使用缓存,产生了异常数据,对最终结果影响很大,则不能使用;例如:股市的牌价、银行的汇率、商品的库存等等一...原创 2019-08-29 11:12:18 · 109 阅读 · 0 评论 -
Hibernate:JPA的CRUD
JPA:它是java persistence api,java持久化规范JPA是一套ORM规范,hibernate实现了JPA规范。 hibernate中有自己的ORM操作数据库方式(JPA没出现时),也有JPA规范实现的操作数据库方式。 在数据库增删改查操作中,我们hibernate和JPA的操作都要会。1、导入jpa支持的jar包2、在src目录下新建META-INF文件夹,...原创 2019-08-29 11:17:13 · 146 阅读 · 0 评论 -
Hibernate:JPA的一对多操作
实体类Cla.java@Entity@Table(name = "cla")public class Cla { @Id @Column(name = "cla_id") @GeneratedValue(strategy = GenerationType.IDENTITY) private Integer claId; @Column(name = "cla_name") ...原创 2019-08-29 11:27:35 · 195 阅读 · 0 评论 -
Hibernate:JPA的多对多操作
实体类User.java@Entity@Table(name = "user")public class User { @Id @Column(name = "user_id") @GeneratedValue(strategy = GenerationType.AUTO) private Integer userId; @Column(name = "user_name")...原创 2019-08-29 11:30:10 · 174 阅读 · 0 评论