![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
hibernate学习
文章平均质量分 79
又起风了
这个作者很懒,什么都没留下…
展开
-
hibernate学习(一)
hibernate框架介绍 框架就是让我们少写一部分代码,并且实现某个功能。hibernate的作用是在dao层,类似于封装的jdbc,实现crud操作。简介如下图所示:hibernate环境搭建(1)导入jar包首先去官网下载hibernate压缩包,然后进行解压,地址是http://hibernate.org/orm/releases/5.0/,我下载的是5.0.7.Final版本,解压...原创 2018-05-27 11:21:44 · 667 阅读 · 0 评论 -
Hibernate学习(十二)
Hibernate检索策略检索策略的概念1hibernate检索策略分为两类:(1)立即查询:根据id查询,调用get方法,一调用get方法马上发送语句查询数据库 //根据cid=1客户, //执行get方法之后,是否发送sql语句 //调用get方法后,马上发送sql语句查询数据库 Customer customer=session.get(Customer.cla...原创 2018-06-19 18:31:39 · 122 阅读 · 0 评论 -
Hibernate学习(十)
QBC查询1 使用hql查询需要些hql语句实现,但是使用qbc时候,不需要写语句了,使用方法实现2 使用qbc时候,操作实体类和属性3使用qbc,使用Criteria对象实现查询所有1 创建Criteria对象2 调用方法得到结果 //1创建对象 Criteria criteria=session.createCriteria(Customer.class); //2调用方法得到...原创 2018-06-19 16:56:26 · 145 阅读 · 0 评论 -
Hibernate学习(九)
Hibernate查询方式1 对象导航查询(1)根据id查询某个客户,再查询这个客户里面所有联系人2 OID查询(1)根据id查询某一条记录,返回对象3 hql查询(1)Query对象,写hql语句实现查询4 QBC查询(1)Criteria对象5本地sql查询(1)SQLQuery对象,使用普通sql实现查询对象导航查询1 查询某个客户里面所有联系人过程,使用对象导航实现2 代码...原创 2018-06-18 21:54:01 · 163 阅读 · 0 评论 -
Hibernate学习(七)
表与表之间关系回顾1 一对多(1)分类和商品的关系,一个分类里面有多个商品,一个商品只能属于一个分类。(2)客户和联系人是一对多关系客户:与公司有业务往来,百度、新浪、360联系人:公司里面的员工,百度里面有很多的员工,联系员工**公司和公司员工的关系客户是一,联系人是多,一个客户里面有多个联系人,一个联系人只能属于一个客户(3)一对多建表:通过外键建立关系2 多对多(1)订单和商品关系,一个订单...原创 2018-06-08 11:09:23 · 578 阅读 · 0 评论 -
hibernate学习(五)
Hibernate的一级缓存什么是缓存1 数据存到数据库里面,数据库本身是文件系统,使用流方式操作文件效率不是很高。(1)把数据存到内存里面,不需要使用流方式,可以直接读取内存中数据(2)把数据放到内存中,提供读取效率Hibernate缓存1 hibernate框架中提供很多优化方式,hibernate的缓存就是一个优化方式2 hibernate缓存特点第一类 hibernate的一级缓存(1)h...原创 2018-05-30 11:26:51 · 165 阅读 · 0 评论 -
hibernate学习(四)
实体类对象状态(概念)1 实体类状态有三种(1)瞬时态,对象里面没有id值,对象与session没有关联 User user=new User(); user.setUsername("小马哥"); user.setPassword("520"); user.setAddress("美国");...原创 2018-05-29 20:52:56 · 155 阅读 · 0 评论 -
Hibernate学习(八)
Hibernate多对多操作多对多映射配置第一步 创建实体类,用户和联系人package cn.itcast.manytomany;import java.util.HashSet;import java.util.Set;public class Role { private Integer role_id; private String role_name; private ...原创 2018-06-12 18:29:28 · 172 阅读 · 0 评论 -
hibernate学习(三)
实体类编写规则1 实体类里面属性是私有的2 私有属性生成公开的get和set方法操作3 要求实体类有属性作为唯一值(一般使用id值)4 实体类属性建议基本数据类型,使用基本数据类型对应的包装类(1)基本数据类型对应的包装类Int-Integer ,char-Character,其他都市首字母大写,比如double-Double5 比如 表示学生的分数 ,加入int scrore比如学生得了0分...原创 2018-05-29 12:41:56 · 144 阅读 · 0 评论 -
hibernate使用mysql创建表指定utf-8字符集
hibernate自动创建表默认是latin1字符类型。但是添加的数据是utf8,这时候会报1366错误。故解决的办法是在创建表时自动字符类型设置为utf8,方法如下:代码如下:package dialect;import org.hibernate.dialect.MySQL5InnoDBDialect;public class MysqlDialect extends MySQL5In...原创 2018-05-29 12:33:04 · 948 阅读 · 0 评论 -
hibernate配置文件详解
Hibernate映射配置文件1.映射配置文件名称没有固定要求2.映射配置文件中,标签name属性值写实体类相关的内容。(1)class标签的name属性值,是实体类的全路径(包名+类名),(2)id标签和property标签name属性值 实体类属性名称3.id标签和property标签,column属性可以省略,(1)column不写值和name中的属性相同。4.property标签type属...原创 2018-05-28 20:29:34 · 271 阅读 · 0 评论 -
数据库插入数据,出现中文乱码小结
1.数据库中通过语句进行插入,如果出现乱码,通常是表定义时未添加engine=innodb default charset=utf8;2.如果dos窗口插入数据正常,但是通过语句进行插入,插入数据库变成了乱码,有两种可能的情况。1)Eclipse(编辑工具)没有修改字符编码2)数据连接时没有添加连接的字符编码。使用hibernate框架连接数据库时的字符编码如下所示:<property na...原创 2018-05-28 12:13:13 · 2527 阅读 · 0 评论 -
hibernate学习(二)
通过hibernate框架实现添加操作第一步,加载hibernate核心配置文件第二步,创建sessionFactory对象第三部,使用sessionFactory创建session对象第四部,开启事务第五步,写具体的crud逻辑操作第六步,提交事务第七步,关闭资源看到效果:是否生成表,看表是否添加数据成功。package cn.itcase.hibernatetest;import ...原创 2018-05-27 16:39:20 · 151 阅读 · 0 评论 -
Hibernate学习(六)
Hibernate绑定session1 session类似于jdbc的connection,之前web阶段学过threadLocal2 帮实现与本地线程绑定session3 获取与本地线程session(1)在hibernate核心配置文件(hibernate.cfg.xml)配置<!-- 在hiabernate核心配置文件中配置 --> <property name="hib...原创 2018-06-03 11:17:13 · 154 阅读 · 0 评论 -
springboot+jpa条件查询报错Caused by: org.hibernate.hql.internal.ast.QuerySyntaxException: boy is not mappe
错误原因:在语句中没有找到查询的实例。每次查询from后面跟的不是表名,而是实例名称。我的查询语句:public interface BoyRespository extends JpaRepository<Boy,Integer> { @Query(value = "select * from boy",nativeQuery = true) public L...原创 2019-07-17 17:03:58 · 599 阅读 · 0 评论