![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Hibernate
youyouwuxin1234
博主:忧忧吾心
学历:2017.09-2019.07 硕士 - 武汉大学 软件工程
2013.08-2017.06 本科 - 郑州大学 计算机科学与技术
工作:2019.07.02-2021.11.16,在美的集团IT部门国际事业部,任职软件开发工程师
2021.11.22-2021.12.31,在新华三大数据有限公司从事软件研发
2022.01.01-至今,在紫光集团旗下紫光云技术有限公司从事中间件软件研发工作
其他:代表公司参加过2019年杭州阿里巴巴云栖大会
兴趣:爱生活、爱学习、爱运动、爱旅行、爱美食。
展开
-
425、Java框架79 -【Spring + Hibernate - 分页、查询总数、使用c3p0连接池、连接Oracle】 2020.12.01
目录0、分页1、使用DetachedCriteria进行分页查询2、查询总数3、条件查询4、模糊查询5、使用c3p0连接池6、applicationContext.xml7、连接Oracle8、hbm9、applicationContext.xml10、sql 语句11、TestSpring12、参考链接0、分页Spring和Hibernate整合是借助HibernateTemplate进行的.分页查询比起直接使用hibernate有所区..原创 2020-12-01 17:45:57 · 217 阅读 · 0 评论 -
424、Java框架78 -【Spring + Hibernate - 整合部分】 2020.12.01
目录0、整合步骤1、pojo2、hbm3、DAO4、applicationContext.xml5、测试查询6、测试增 删 改7、参考链接0、整合步骤整合思路是,使DAO继承HibernateTemplate这个类HibernateTemplate这个类提供了setSessionFactory()方法用于注入SessionFactory通过spring获取DAO的时候,注入SessionFactory.1、pojopackage com....原创 2020-12-01 17:26:22 · 82 阅读 · 0 评论 -
423、Java框架77 -【Struts + Hibernate - Struts部分】 2020.11.30
目录0、Struts部分1、先运行,看到效果,再学习2、配置web.xml3、struts.xml4、Action5、list.jsp6、edit.jsp7、index.jsp8、测试9、参考链接0、Struts部分struts部分做的工作比较多1. web.xml2. struts.xml3. action4. jsp1、先运行,看到效果,再学习老规矩,先下载右上角的可运行项目,配置运行起来,确认可用之后,再学习做了哪些步...原创 2020-11-30 15:35:17 · 115 阅读 · 0 评论 -
422、Java框架76 -【Struts + Hibernate - Hibernate部分】 2020.11.30
目录0、Struts + Hibernate1、思路图2、Hibernate准备工作3、创建数据库how2java4、pojo5、Product.hbm.xml6、hibernate.cfg.xml7、dao8、参考链接0、Struts + Hibernate整合struts和hibernate的基本思路是将MVC中M层交给hibernate处理在eclipse中创建struts_hibernate项目本项目以Product的增删改查为例,整合Str...原创 2020-11-30 15:27:06 · 93 阅读 · 0 评论 -
404、Java框架58 -【Hibernate - 注解手册、注解 vs XML、注解运行原理】 2020.11.05
0、目录1、注解手册2、类相关注解3、属性相关注解4、关系相关注解5、注解 vs XML6、注解运行原理7、参考链接1、注解手册这里列出了常用的注解以供使用的时候查询2、类相关注解@Entity —— 将一个类声明为一个实体bean(即一个持久化POJO类)@Table —— 注解声明了该实体bean映射指定的表(table),目录(catalog)和schema的名字3、属性相关注解@Id —— 注解声明了该实体bean的标识属性(对应表中的主键)。@Column —— 注解声明了属性到列原创 2020-11-05 23:41:33 · 99 阅读 · 0 评论 -
403、Java框架57 -【Hibernate - 关系】 2020.11.04
0、目录1、1、原创 2020-11-04 23:55:09 · 89 阅读 · 0 评论 -
402、Java框架56 -【Hibernate - 类与属性】 2020.11.03
0、目录1、hibernate 注解分类2、类注解3、属性注解4、参考链接1、hibernate 注解分类hibernate里常用注解包括,类注解,属性注解,关系注解,其他的注解本知识点讲解类注解和属性注解2、类注解在注解示例-注解方式的Product中,Product类声明前面有两个注解:@Entity 和 @Table(name = “product_”)@Entity 表示这是一个实体类,用于映射表@Table(name = “product_”) 表示这是一个类,映射到的表名:prod原创 2020-11-03 23:20:13 · 67 阅读 · 0 评论 -
402、Java框架56 -【Hibernate - 注解】 2020.11.02
0、目录1、注解2、删除表3、Product.hbm.xml4、注解方式5、hibernate.cfg.xml 配置文件改动6、参考链接1、注解Hibernate的注解是什么? 简单的说,本来放在hbm.xml文件里的映射信息,现在不用配置文件做了,改由注解来完成2、删除表因为前面的某些教程修改了product_的表结构,所以这里先把product_表删除一下。drop table product_;3、Product.hbm.xml这是Product.hbm.xml,用于提供类与表的映射,原创 2020-11-02 23:11:37 · 81 阅读 · 0 评论 -
401、Java框架55 -【Hibernate - C3P0连接池】 2020.10.29
0、目录1、C3P0连接池2、Jar包3、进行c3p0连接池的配置4、Category.hbm.xml5、测试6、参考链接1、C3P0连接池建立数据库连接时比较消耗时间的,所以通常都会采用数据库连接池的技术来建立多条数据库连接,并且在将来持续使用,从而节约掉建立数据库连接的时间hibernate本身是提供了数据库连接池的,但是hibernate官网也不推荐使用他自带的数据库连接池。一般都会使用第三方的数据库连接池C3P0是免费的第三方的数据库连接池,并且有不错的表现右边可以下载c3p0的jar包原创 2020-10-29 23:55:55 · 166 阅读 · 0 评论 -
400、Java框架54 -【Hibernate - N+1、查询总数、乐观锁】 2020.10.29
0、目录1、N+12、Hibernate使用Iterator实现N 13、查询总数4、乐观锁5、首先看不使用乐观锁的情况6、修改配置文件 Product.hbm.xml7、修改 Product.java8、重新运行一样的代码9、原理10、参考链接1、N+1Hibernate有缓存机制,可以通过用id作为key把product对象保存在缓存中同时hibernate也提供Query的查询方式。假设数据库中有100条记录,其中有30条记录在缓存中,但是使用Query的list方法,就会所有的100条数据都从原创 2020-10-29 23:25:31 · 88 阅读 · 0 评论 -
399、Java框架53 -【Hibernate - 两种session方式】 2020.10.28
0、目录1、两种session方式2、OpenSession每次都会得到一个新的Session对象3、相同线程的getCurrentSession4、不同线程的getCurrentSession5、openSession查询时候不需要事务6、getCurrentSession所有操作都必须放在事务中7、getCurrentSession在提交事务后,session自动关闭8、参考链接1、两种session方式Hibernate有两种方式获得session,分别是:openSession和getCurr原创 2020-10-28 23:16:34 · 168 阅读 · 0 评论 -
398、Java框架52 -【Hibernate - 分页、两种获取方式】 2020.10.27
0、目录1、分页2、分页,从第3个开始,一共查询5个Product3、延迟加载4、对于id不存在的对象的处理5、参考链接1、分页使用Criteria进行分页查询无论你使用的是Oracle,Mysql,NoSQL还是DB2,分页查询的代码写法都是一样的2、分页,从第3个开始,一共查询5个ProductHibernate使用Criteria 来进行分页查询c.setFirstResult(2); 表示从第3条数据开始c.setMaxResults(5); 表示一共查询5条数据package co原创 2020-10-27 23:49:25 · 161 阅读 · 0 评论 -
397、Java框架51 -【Hibernate - 一级缓存、二级缓存】 2020.10.26
0、目录1、一级缓存2、两次获取id=1的category对象3、二级缓存4、先看没有开启二级缓存的情况5、hibernate.cfg.xml 中增加对二级缓存的配置6、ehcache.xml7、设置HBM8、测试效果9、参考链接1、一级缓存hibernate默认是开启一级缓存的,一级缓存存放在session上2、两次获取id=1的category对象第一次通过id=1获取对象的时候,session中是没有对应缓存对象的,所以会在"log1"后出现sql查询语句。第二次通过id=1获取对象的时候,原创 2020-10-26 23:16:06 · 143 阅读 · 0 评论 -
396、Java框架50 -【Hibernate - 级联】 2020.10.23
0、目录1、级联2、4种级联3、delete 级联4、save-update 级联5、all和none级联6、参考链接1、级联什么是级联? 简单的说,没有配置级联的时候,删除分类,其对应的产品不会被删除。 但是如果配置了恰当的级联,那么删除分类的时候,其对应的产品都会被删除掉。2、4种级联包括上一步说的删除用得级联,级联有4种类型:all:所有操作都执行级联操作;none:所有操作都不执行级联操作;delete:删除时执行级联操作;save-update:保存和更新时执行级联操作;级联通常原创 2020-10-23 09:22:06 · 100 阅读 · 0 评论 -
395、Java框架49 -【Hibernate - 事务、属性的延迟加载】 2020.10.22
0、目录1、事务2、效果3、TestHibernate 事务4、MYSQL 表的类型必须是INNODB才支持事务5、属性的延迟加载6、演示属性的延迟加载7、参考链接1、事务Hibernate的任何对数据有改动的操作,都应该被放在事务里面.在事务中的多个操作行为,要么都成功,要么都失败2、效果在同一个事务中做了两件事情删除id=1的产品修改id=2的产品,使得其产品名称超过了数据库中设置的长度30.提交事务。第二个任务失败了,但是因为在同一个事务中,所以第一个任务也没有生效。因此id=1原创 2020-10-22 23:39:24 · 123 阅读 · 0 评论 -
394、Java框架48 -【Hibernate - 关系 - 实现多对多】 2020.10.21
0、目录1、实现多对多2、User.java3、User.hbm.xml4、Product.java5、Product.hbm.xml6、在hibernate.cfg.xml中增加User的映射7、TestHibernate 测试many-to-many关系8、参考链接1、实现多对多一种Product可以被多个User购买一个User可以购买多种Product所以Product和User之间的关系是多对多 many-to-many要实现多对多关系,必须有一张中间表 user_product 用于维原创 2020-10-21 23:04:01 · 83 阅读 · 0 评论 -
393、Java框架47 -【Hibernate - 关系 - 实现一对多】 2020.10.20
0、目录1、关系:一对多2、效果3、为Category增加一个Set集合4、为Category.hbm.xml增加one-to-many映射5、TestHibernate 测试one-to-many关系6、参考链接1、关系:一对多一个Product对应一个Category一个Category对应多个Product所以Category和Product是一对多的关系本例讲解如何使用Hibernate实现一对多关系2、效果获取id=1分类下的所有商品3、为Category增加一个Set集合pa原创 2020-10-20 15:14:22 · 71 阅读 · 0 评论 -
392、Java框架47 -【Hibernate - 关系 - 实现多对一】 2020.10.20
0、目录1、关系:多对一2、效果3、准备Category.java4、准备Category.hbm.xml5、为Product.java增加Category属性6、在Product.hbm.xml中设置Category 多对一关系7、在hibernate.cfg.xml中增加Category的映射8、TestHibernate 测试many-to-one关系8、参考链接1、关系:多对一一个Product对应一个Category一个Category对应多个Product所以Product和Catego原创 2020-10-20 14:39:27 · 78 阅读 · 0 评论 -
391、Java框架46 -【Hibernate - 查询HQL、查询Criteria、查询标准SQL】 2020.10.19
0、目录1、HQL2、使用HQL,根据name进行模糊查询3、查询Criteria4、使用Criteria,根据name进行模糊查询5、查询-标准SQL6、使用标准SQL,根据name进行模糊查询7、参考链接1、HQLHQL(Hibernate Query Language)是hibernate专门用于查询数据的语句,有别于SQL,HQL 更接近于面向对象的思维方式。比如使用的是类的名字Product,而非表格的名字product_2、使用HQL,根据name进行模糊查询首先根据hql创建一个Q原创 2020-10-19 23:57:38 · 689 阅读 · 0 评论 -
390、Java框架45 -【Hibernate - 获取、删除、修改】 2020.10.15
0、目录1、获取2、效果3、通过ID获取一个对象4、删除一条数据5、修改6、先看修改后的效果7、修改一个对象的属性,并更新到数据库中8、参考链接1、获取通过id获取对象2、效果获取到id=6的产品的名称3、通过ID获取一个对象调用Session的get方法,根据id获取对象。 除了id之外,还需要传递一个类对象,毕竟需要知道获取的是哪个对象除了使用get方法,还可以使用load获取对象。 请参考get和load的区别package com.how2java.test; import原创 2020-10-15 18:01:30 · 119 阅读 · 0 评论 -
389、Java框架44 -【Hibernate - 对象状态】 2020.10.14
0、目录1、 对象状态2、先运行,看到效果,再学习3、模仿和排错4、代码演示3种状态5、参考链接1、 对象状态实体类对象在Hibernate中有3种状态分别是瞬时,持久和脱管瞬时 指的是没有和hibernate发生任何关系,在数据库中也没有对应的记录,一旦JVM结束,这个对象也就消失了持久 指得是一个对象和hibernate发生联系,有对应的session,并且在数据库中有对应的一条记录脱管 指的是一个对象虽然在数据库中有对应的一条记录,但是它所对应的session已经关闭了2、先运行,看到效原创 2020-10-14 18:05:26 · 80 阅读 · 0 评论 -
388、Java框架43 -【Hibernate - 插入】 2020.10.13
0、目录1、前言2、先运行,看到效果,再学习3、模仿和排错4、效果5、插入数据到数据库6、参考链接1、前言通过for循环插入10个Product对象到数据库2、先运行,看到效果,再学习老规矩,先下载右上角的可运行项目,配置运行起来,确认可用之后,再学习做了哪些步骤以达到这样的效果。3、模仿和排错在确保可运行项目能够正确无误地运行之后,再严格照着教程的步骤,对代码模仿一遍。模仿过程难免代码有出入,导致无法得到期望的运行结果,此时此刻通过比较正确答案 ( 可运行项目 ) 和自己的代码,来定位问题所原创 2020-10-13 18:04:13 · 106 阅读 · 0 评论 -
387、Java框架42 -【Hibernate - Hello hibernate】 2020.10.12
0、目录1、Hibernate前言2、学习之前先看效果3、创建数据库4、创建表5、创建一个java project6、导入hibernate所依赖的jar包7、创建实体类8、配置 Product.hbm.xml9、配置 hibernate.cfg.xml10、测试类 TestHibernate11、基本原理图12、可运行项目13、关于运行警告信息14、参考链接1、Hibernate前言使用JDBC做数据库相关功能开发会做很多重复性的工作,比如创建连接,关闭连接,把字段逐一映射到属性中。 Hibernat原创 2020-10-12 18:02:01 · 136 阅读 · 0 评论