如何通过添加中间表实现多对多? 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"> <!--主键生成方式为手动 -->…
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 { /** *…
生成实体类 和 cfg.xml配置 cfg.xml 参照一对多映射 实体类如下: Project 类 package com.ddwei.entity; import java.util.HashSet; import java.util.Set; /** * 创建项目实体类 * * add by author ddwei * * 2018/07/30 * */ public class Project { private int proid; private String proname; p…
--创建表 -- 创建项目表 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…
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包(用于测试)…
编写第一个Hibernate例子 第二步:创建持久化类(持久化类的设计原则要遵循javabeans的设计原则) javabeans的设计原则: 1.公有的类2.提供公有的不带参数的默认的构造方法3.属性私有 4.属性setter/getter封装 新建一个Students类(持久化类) import java.util.Date; //学生类 public class Students { // 1.公有的类 // 2.提供公有的不带参数的默认的构造方法 // 3.属性私有 // 4.属性set…
原文地址:http://blog.csdn.net/fangzhibin4712/article/details/7179414 前提条件:表sjzdfl  表sjzdxx (使用数据库MySQL) 表sjzdfl (两个字段sjzdflId 和 sjzdflmc) 表sjzdfl 建表语句: DROP TABLE IF EXISTS `sjzdfl`; CREATE TABLE `sjzdfl` ( `sjzdflId` int(11) NOT NULL auto_increment, `sj…
ORM是一种面向对象编程的方法,用这种方法来避免写数据库底层语言sql语句,这样有利于java的跨平台,扩展.维护.而hirenate是ORM的一种框架 hirbernate开发基本步骤编写配置文档hirbernate.cfg.xml文档编写实体类生成对应尸体类的映射文件并添加到配置文档中调用hirbernate api进行测试 什么是seesionhirbernate操作数据库都要用session,调用session.api方法.来操作.openssion每次都会创建一个新的对象,所以用完后要…
Hibernate充当应用程序和数据库之间的中间件,实现二者之间的交互操作,他对JDBC进行了封装,以完全面向对象的方式来操作数据. 适用于有多个数据源的情况下,不必去考虑不同数据源的操作差异. Hibernate将类型对象与数据库表建立映射关系,把类的属性映射称为数据库表的字段,Hibernate属性映射可分为简单属性映射.集合属性 映射.复合属性映射及派生属性映射.下面分别以实例介绍这几个映射及其对应的映射文件表示方式. 1.简单属性 假设有个User类,对应数据库中的User表 User类…
1.打开DB Browser,新建一个数据库的连接,找到想要持久化操作的数据库表的图标,右键选择hibernate reverse engineering 2.之后出现如下所示: java src folder:对应工程的src目录 java packega:对应工程中存放的包名,一般选择和持久化类放在一起 create pojo<>DB table mapping information:选上   create a hibernate mapping file(*.hbm.xml) for…
本节简介: 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…
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(…
本章简介,主要讲5大块的内容 1 hibernate.cfg.xml的配置 2 session 的简介 3 transaction的简介 4 session的详解 5 对象关系映射常用配置…
创建关系映射文件:(把实体类映射成一个表) 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 hibernate定义: Java领域一项开源的orm框架技术: hibernate对jdbc进行轻量级的封装. hibernate 作为持久层存在.就是通过对象关系映射把项目中的对象持久化到数据库中去. 2 其他orm框架技术: mybaties toplink ejb…
1 单向多对一和单向多对一的区别 比如部门和员工,一个部门下有很多员工,如果只查一个员工属于哪个部门,就用单向的,如果还要查一个部门下的所有员工,就用双向的. 2 双向多对一的配置 除了单向xml和双向xml都配置关联关系之外,java类也要都写一对多和多对一的关联 xml一方: <set name="students" table="student" inverse="true"> <key column="gid&…
多对一的关系和关系数据库中的外键参照关系最匹配,即在己方的表中的一个外键参照另一个表中的主键! 通过在多方持有一方的引用来实现,需要在多的一方使用<many-to-one>来配置…
学习点: 1 一对多映射,一方 Grade.hbm.xml的写法: <hibernate-mapping> <class name="com.ddwei.entity.Grade" table="grade"> <id name="gid" type="java.lang.Integer"> <column name="GID" /> <generato…
本节简介: 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…
本节主要简介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 介绍了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事务…
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…
hibernate 业务流程 1 创建配置对象 Configuration config  = new  Configuration().configure(); 2 创建服务注册对象 ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applysettings(config.getProperties()).buildServiceRegistry(); 3 创建会话工厂 SessionFactory sessionF…