hibernate 业务流程 1 创建配置对象 Configuration config  = new  Configuration().configure(); 2 创建服务注册对象 ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applysettings(config.getProperties()).buildServiceRegistry(); 3 创建会话工厂 SessionFactory sessionF…
ORM是一种面向对象编程的方法,用这种方法来避免写数据库底层语言sql语句,这样有利于java的跨平台,扩展.维护.而hirenate是ORM的一种框架 hirbernate开发基本步骤编写配置文档hirbernate.cfg.xml文档编写实体类生成对应尸体类的映射文件并添加到配置文档中调用hirbernate api进行测试 什么是seesionhirbernate操作数据库都要用session,调用session.api方法.来操作.openssion每次都会创建一个新的对象,所以用完后要…
本章简介: 1 单一主键 2 基本类型 3 对象类型 4 组件属性 5 单表操作CRUD实例…
1 hibernate定义: Java领域一项开源的orm框架技术: hibernate对jdbc进行轻量级的封装. hibernate 作为持久层存在.就是通过对象关系映射把项目中的对象持久化到数据库中去. 2 其他orm框架技术: mybaties toplink ejb…
开发前准备: 1 eclipse 2 hibernate tools的安装(需要相关的jar包)(可以简化orm框架) hibernate tools的安装步骤: 1 到官网下载 https://sourceforge.net/projects/jboss/?source=typ_redirect zip包 2 eclipse ==>Help==>Install new software==>Add==>选入路径,起名字==>一路next即可完成 3 验证,重启eclipse…
本章内容: 1 什么是orm 2 hibernate简介 3 编写第一个hibernate小例子…
创建关系映射文件:(把实体类映射成一个表) 1 右键src==>new==>other==>hibernate==>hbm.xml==>Student==>Finish 2 创建mysql数据库 <?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN""http…
本节简介: 1 简介对象类型(重点是音视频blob类型) 2 demo(对图片的写入数据库与读取) 1 简介对象类型 映射类型 java类型 标准sql类型 mysql类型 oracle类型 binary byte[] varchar blob blob text(大文本类型) java.lang.String clob text   clob clob(大文本类型)    java.sql.Clob clob text clob blob(二进制数据类型)  java.sql.Blob blo…
本节主要简介hbm配置文件以下内容: 1 mapping标签 2 class标签 3 id标签 1 hibbernate-mapping标签 schema 模式名称 catalog 目录名称 default-cascade 级联风格 default-access 访问策略 default-lazy 加载策略(是否懒加载) package 默认的包名 2 class标签 name 对象关系映射的类 table 映射数据库的表名 batch-size 抓取策略(一次可以抓取多少记录) where 条…
1 hibernate是非自动提交.如果transaction不写的话,会只创建表结构而不插入语句.   如果不写transaction而想实现插入的功能的话,需要重写session的dowork方法(记得flush). 2 demo: package hibernate_001; import java.sql.Array; import java.sql.Blob; import java.sql.CallableStatement; import java.sql.Clob; import…
1 hibernate.cfg.xml常用配置: show_sql 控制台打印sql format_sql 控制台将sql排版 hbm2ddl.auto: create 删除表结构,重新建表并插值 update   保存原数据,插入新的数据 dialect: 数据库方言,不同数据库有不同方言 2 hibernate.cfg.xml常用配置 <?xml version="1.0" encoding="UTF-8"?><!DOCTYPE hiberna…
本章简介,主要讲5大块的内容 1 hibernate.cfg.xml的配置 2 session 的简介 3 transaction的简介 4 session的详解 5 对象关系映射常用配置…
hibernate 开发步骤:(hibernate4.2+mysql6.0) 1 hibernate配置文件(hibernate.cfg.xml) 2 持久化类 3 对象-关系映射文件 4 hibernate api 编写访问数据库的代码 hibernate 所需jar包 1 hibernate所需基础包 2 mysql  jdbc jar包 3 junit  jar包(用于测试)…
本节简介: 1 增删改查写法 2 查询load和查询get方法的区别 3 demo 1 增删改查写法 增加 session.save() 修改 session.update() 删除 session.delete() 查询 session.get()/session.load() 2 查询load和查询get方法的区别 a get 不考虑缓存情况下,get会在调用之后立即向数据库发送sql语句,返回持久化对象.load 是调用后返回代理对象,该代理对象只保存实体对象id,只有使用对象非主键属性才…
本节内容: 1 简介组件属性 2 demo 1 简介组件属性: <component name = "address" class = "Address"> <property name = "postcard" column  = "POSTCARD"></property> <property name = "address" column = "AD…
本节内容:(介绍基本类型) 1 数据类型 简介 2 时间类型 简介 3 时间类型 demo 1 hibernate类型 java类型   integer/int java.lang.Integer/int   string java.lang.String 2    hibernate类型 java类型 date java.util.Date或java.sql.Date 年月日 time java.util.Date或java.sql.Time   时分秒 timestamp   java.ut…
本节简介: 1 单一主键的两种赋值方式:手动赋值(assigned)和自动赋值(native) 2 mysql和oracle赋值的不同形式 3 demo 2 native由底层数据库生成标识符,如果是MySQL,就是increment,如果是oracle就是sequence. 注意:mysql的increment生成主键的形式不能用于集群. 3 demo: hibernate.cft.xml <?xml version="1.0" encoding="UTF-8&quo…
本节主要内容: 1 介绍了getCurrentSession和opensession的区别 2 demo:通过打印比较两个session是否相同,验证两个session是否是同一session 3 demo:通过打印hashcode验证不关闭session,容易连接池溢出. 1 getCurrentSession和opensession的区别 a getCurrentSession每次获取的都是同一连接,opensession每次获取的是不同的连接. b getCurrentSession不需要…
1 本章目的:获得session的两种方式: openSession 和 getCurrentSession 2 两种session的使用方法 1openSession可以直接写,getCurrentSession需要在cfg.xml中配置 2 getCurrentSession创建的线程会在事务回滚或事物提交后自动关闭,而openSession必须手动关闭 这里getCurrentSession本地事务(本地事务:jdbc)时 要在配置文件里进行如下设置 * 如果使用的是本地事务(jdbc事务…
hibernate流程: 1 配置对象Configurateion 读取 hibernate.cfg.xml 2 会话工厂SessionFactory 读取 user.hbm.xml(创建销毁相当耗费资源,一个数据库只创建一个) 3 会话Session 相当于 jdbc的connect 4 添加事务 Session与jdbc 多对一的关系.jdbc可以在不同时刻为session 提供连接.通过session操作数据库 Session的增删改查的方法 save() update() insert(…
hibernate  配置文件新建 1 右键src==>new==>other==>hibernate configuration File==>next==>next==>finish 2 填写配置文件:dialect    mysql 方言 : hbm2ddl.auto ddl生成策略      : 文件模板如下: 配置文件: <?xml version="1.0" encoding="UTF-8"?><!D…
hibernate 项目建立 1 new ==>java project hibernate 导入jar包 1 windows==>prerence==>java ==>buil path==>user libraries==>new ==>mysql-jdbc==>add external jars==>选择mysql驱动jar包 ...(类似导入hibernate jar包和junit jar包) 2 右键项目==>properties==&…
1 什么是ORM? ORM(Object / RelationShip Mapping) 对象/关系映射 面向对象编程(OOP)最终要把对象信息保存在关系性数据库中,要写好多sql语句.这与面向对象编程的思想格格不入. 2 写好多sql的缺陷之处 a 不同的数据库语法不同,比如pl/sql和t/sql(oracle sql与微软 sql) b 同样的功能在不同的数据库里有不同的实现方式(分页:Oracle rowno,mysql limit,sqlserver top) c 程序过分依赖sql,…
三大注解: 1 @Test 2 @Before 3 @After 执行顺序213 demo.java package hibernate_001; import org.junit.After; import org.junit.Before; import org.junit.Test; public class StudentTest {    @Test  public void test(){   System.out.println("aaa");  }    @Before…
java beans 的设计原则 1 公有的类 2 共有不带参数构造方法 3 私有属性 4 属性setter/getter方法 Studnet类: package com.ddwei.student; import java.util.Date; public class Student { // java beans 的设计原则  /**   * 1 公有的类 2 共有不带参数构造方法 3 私有属性 4 属性setter/getter方法   */ private int pid;// 学号…
--创建表 -- 创建项目表 create table project(  proid int(10) not null comment '项目Id',  proname varchar(30) comment '项目名称' ); -- 创建员工表 create table employee2(  empid int(10)   comment '员工id',  empname varchar(20) comment '员工姓名' ); -- 创建项目员工关联 中间表 create table…
1 用途: 员工和项目之间的多对多关系 2 实现: 员工表和项目表之外,建立员工和项目关联表来实现: 3 hibernate应用: set元素和many-to-many来实现…
package com.ddwei.test; import org.hibernate.Session; import org.hibernate.Transaction; import com.ddwei.entity.Employee2; import com.ddwei.entity.Project; import com.ddwei.util.HibernateUtil; /** * * @author weijingli * */ public class Test { /** *…
如何通过添加中间表实现多对多? 1 在双方实体中添加一个保存对方的集合. 2 在双方映射文件中 使用<set>和<many-to-many>元素进行关联关系配置(注意此处)…
本节主要内容:配置映射文件 Project.hbm.xml <hibernate-mapping> <class name="com.ddwei.entity.Project" table="Project"> <id name="proid" column="proid" type="java.lang.Integer"> <!--主键生成方式为手动 -->…