HIBERNATE - 技术教程文章

NHibernate学习过程笔记【代码】【图】

NHbernate自动生成数据库的方法:using NHibernate; using NHibernate.Tool.hbm2ddl;namespace Test {publicclass NHDataProvier{privatereadonly ISessionFactory _sessionFactory;public NHDataProvier(){var configuration = new NHibernate.Cfg.Configuration();configuration.Configure();_sessionFactory = configuration.BuildSessionFactory();}publicvoid InitDb(){var configuration = new NHibernate.Cfg.Configuration...

04.Hibernate一对一关联【代码】【图】

前言:本文主要介绍使用Hibernate映射一对一的关联关系的两种方式:使用外键映射、使用主键映射。1.数据库表的一对一关联关系 本文根据客户信息表(tb_customer)和地址信息表(tb_address)来说明其一对一的关系,每一个客户都有一个家庭住址,而每一个地址都对应一个客户。(1)使用外键映射的数据库表说明 数据库表模型图如下: 数据库建表语句如下:CREATE TABLE tb_customer( id bigint NOT...

SSH系列:(3)Hibernate【代码】

(1)引入jar包(2)配置(3)测试1、引入jar包引入mysql jar包mysql-connector-java-5.1.38-bin.jar引入c3p0 jar包c3p0-0.9.1.2.jar引入hibernate相关jar包 (hibernate-distribution-3.6.0.Final)antlr-2.7.6.jarcommons-collections-3.1.jardom4j-1.6.1.jarhibernate3.jarhibernate-jpa-2.0-api-1.0.0.Final.jarjavassist-3.12.0.GA.jarjta-1.1.jarslf4j-api-1.6.1.jar2、配置2.1、添加实体类:Person.javapackage com.rk.test.entit...

Spring+Jersey+JPA+Hibernate+MySQL实现CRUD操作案例【图】

本文承接我的另一篇博文:Spring+Jersey+Hibernate+MySQL+HTML实现用户信息增删改查案例(附Jersey单元测试),主要更改内容如下:Spring配置文件applicationContext中原先使用的是Hibernate,现在改为Hibernate对JPA的支持;增加了C3P0连接池;修改了Dao操作实现,改为Spring接管的JPA实现。如果读者想详细查看Spring整合Jersey与前端交互可以点击上述连接。本文主要介绍以上三处修改内容,并且使用Jersey Test测试整合结果正确性...

hibernate之List&Set批量插入【代码】【图】

package com.chris.pojo;import java.util.List; import java.util.Map; import java.util.Set;publicclass User {private Integer userid;private String name;private List<String> address_list;private Set<String> address_set;public Set<String> getAddress_set() {return address_set;}publicvoid setAddress_set(Set<String> address_set) {this.address_set = address_set;}public List<String> getAddress_list() {retu...

Hibernate中的一对多、多对多映射【图】

一、一对多映射 如快递网点(ExpSite)与快递员(Deliver)的关系,即为一对多关系,一个快递网点有多个快递员,他们的关系如下图所示。在一对多中,外键在多的一方 (1)在多的一方配置外键Deliver表为多方,在Deliver实体类中放一个ExpSite方的引用做属性(外键),即所属网点ExpSiteId;Deliver实体类配置文件:<many-to-one name="ExpSiteId" class="ExpSite表所在的包名+ExpSite表的名" column="ExpSiteId(外键字段)"></many-to-one>(2)在...

框架 day38 SVN安装及使用,SSH练习项目CRM,环境搭建(myeclipse hibernate 反转引擎生成PO和映射)【图】

1 版本控制1.1 介绍? 版本控制(Revision Control):是维护工程蓝图的标准做法,能追踪工程蓝图从诞生一直到定案的过程。是一种记录若干文件内容变化,以便将来查阅特定版本修订情况的系统。也是一种软体工程技巧,籍以在开发的过程中,确保由不同人所编辑的同一档案都得到更新。1.2 没有版本控制? 代码管理混乱? 备份多个版本,占用磁盘空间大? 解决代码冲突困难? 容易引发BUG? 难于追溯问题代码的修改...

hibernate初入门2--Annotation【代码】【图】

零基础接触hibernate,在学习的过程中接触到了Annotation(翻译过来“注释”)。在学习过程中, 并不知道annotation怎么发展来的,但通过对比操作,发现了Annotation在编码中简化了对映射文件的编写(虽然很大程度上是copy过来的)!!话不多上,直接将编码过程贴上(菜鸟,写不出高大上的东西,此乃无奈之举)!!创建数据库创建实体类Teacher.java 1package com.hibernate.Exp150704;2 3import javax.persistence.Entity;4import javax...

struts2+Hibernate4+spring3+EasyUI环境搭建之三:引入sututs2以及spring与sututs2整合【代码】

1、引入struts2<!-- struts2 和心包 排除javassist 因为hibernate也有 会发生冲突--><dependency><groupId>org.apache.struts</groupId><artifactId>struts2-core</artifactId><version>2.3.4.1</version></dependency><!-- struts2和spring整合包 这样会使action对每个请求new一个action对象 非单例注意区别:springMVC注解是Cotroller 是单例的--><dependency><groupId>org.apache.struts</groupId><artifactId>struts2-spring-...

Hibernate——ORMapping【图】

ORMapping第一种:一对一单向外键关联一、Annotaion配置小实验1:(1)编写hunsband.java,属性为id,name,wife。id是主键(2)编写wife.java,属性为id,name。id是主键(3)实现方式:在husband.java中,用wife作为外键关联wife.java中的主键idHusband.javapackage com.zgy.hibernate.model; import javax.persistence.Entity;import javax.persistence.Id;import javax.persistence.JoinColumn;import javax.persistence.OneToOne; @Enti...

Hibernate 性能优化之抓取策略

fetch 抓取策略前提条件:必须是一个对象操作其关联对象。  1、 根据一的一方加载多的一方,在一的一方集合中,有三个值:join/select/subselect  2、根据多的一方加载一的一方, 这种情况不考虑,因为关联对象就一个数据,怎么样都可以join 连接 【一次性的把两张表的数据全部查询出来,只发出一条sql语句】 * 在页面上既包括一的一方的数据,又包括多的一方的数据 * 数据库的数据量比较小select 默认的查询方式 ...

Caused by: code is 9998;desc is dao exception is org.hibernate.exception.DataException: error execu

1、错误描述exception is org.hibernate.exception.DataException: error executing workat sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:601)at org.springframework.aop.support.A...

hibernate的配置 1【代码】

hibernate 是一种ORM框架,是ORM框架中一个典范 ORM叫做对象关系映射 是面向对象语言和关系型数据库之间的映射关系 所以只有在面向对象语言或者关系型数据库没用的时候ORM才会消失 ORM为我们做什么  减少乏味的代码   更加面向对象的设计   更好的性能   更好的移植性使用Hibernate http://hibernate.org/ 1. 加入Hibernate的jar包<dependency>   <groupId>org.hibernate</groupId>   <artifactId>hibernate-core...

Hello World之Hibernate版

双数组trie树实现的第一篇论文,日本人JUN-ICHI AOE 1989年撰写的.大概看完,简单记录下,可能有不准确的地方.trie树有静态和动态两种,静态的直接就是一个DFA,没什么好说的,使用内存什么都比较确定而且最少.动态的可以支持删除和插入,双数组做法就是一种实现.为了保证字典中所有词都不是其他词的前缀,在每个词后面加上#标识.双数组是指base和check这两个数组,base数组和check数组,一个状态用一个数字表示(这个数字是从1开始数),一个状...

hibernate_boolean类型的处理【代码】【图】

xml方式,直接写就行,hibernate会直接帮你生成:javaBean代码片段:privateboolean leaf;publicboolean isLeaf() {return leaf;}publicvoid setLeaf(boolean leaf) {this.leaf = leaf;}hbm.xml配置直接写就行:<property name="leaf"></property>测试里代码://s.setLeaf(true); s.setLeaf(false);数据库结果:true会存入1,false存入0。Annotation方式:定义boolean类型属性为:private boolean isLeave;JavaBean代码片段:bo...

Hibernate之mappedBy与@JoinColumn

站在巨人的肩膀上学习编程 英文原文:Difference Between @JoinColumn and mappedByWhat is the “owning side” in an ORM mapping?What‘s the difference between @JoinColumn and mappedBy when using a JPA @OneToMany association 中文:Hibernate之mappedBy与@JoinColumn原文:https://www.cnblogs.com/tangliMeiMei/p/13126838.html

hibernate 单元测试 5.2【代码】

单元测试 测试 dao service actionpackage com.kaishengit.test;import org.hibernate.Session;import com.kaishengit.pojo.Account; import com.kaishengit.util.HibernateUtil;import junit.framework.TestCase; //继承TestCase publicclass HibernateTest extends TestCase{private Session session = null;//测试之前要做的,这样就不用每次测试都要获取session @Overrideprotectedvoid setUp() throws Exception {session...

Hibernate(三)【代码】【图】

Hibernate体系结构简析>Transient Object(瞬态和托管对象):系统通过new关键字创建的Java实例,没有与Session关联,此时处于瞬态。瞬态实例可能是在被应用程序实例化后尚未进行持久化的对象。如果曾经持久化过的实例,而Session被关闭则转换为托管状态。 >Persistent Object(持久化对象):系统创建的POJO实例,一旦与特定的Session关联,并对应数据表的指定记录,该对象就处于持久化状态,这一系列对象都被称为持久化对象。在程序...

Hibernate的多表关系【代码】

多表关系一对多/多对一   O 对象         一的一方使用集合. 多的一方直接引用一的一方.   R 关系型数据库   多的一方使用外键引用一的一方主键.  M 映射文件:一: <set name=""><key column="" /><one-to-many class="" /></set> 多: <many-to-one name="" column="" class="" />操作: 操作管理级别属性. cascade: 级联操作//减少我们书写的操作代码.none(默认值)不级联save-update:级联保存delete:级联删除all:级联...

模拟Hibernate动态生成SQL语句【代码】

这里有一个xml配置文件,也就是Hibernate框架中会用到的POJO和数据库的映射文件 1<?xml version="1.0" encoding="utf-8"?> 2<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"3"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> 4<!-- 5 Mapping file autogenerated by MyEclipse Persistence Tools6--> 7<hibernate-mapping> 8<class name="hp.pojo.Member" table="member" catalog...

Hibernate修改命名策略【代码】

>两步:第一步:写一个替代Hibernate默认命名规则类(本类目标是把java【骆驼命名】 转换成 【下划线命名】)package paltform.init;import org.hibernate.cfg.ImprovedNamingStrategy; import org.hibernate.cfg.NamingStrategy;/** * HIBERNATE 数据库字段命名规则 * */ public class HibernateNamingStrategy extends ImprovedNamingStrategy implements NamingStrategy { private static final long serialVersionUID = ...

hibernate中的sql语句【代码】【图】

在这里通过定义了三个类,Special、Classroom、Student来做测试,Special与Classroom是一对多,Classroom与Student是一对多的关系,这里仅仅贴出这三个bean的属性代码:Special类:public class Special {private int id;private String name;private String type;private Set<Classroom> rooms;.......... }Classroom类:public class Classroom {private int id;private String name;private Special special;private Set<Studen...

Hibernate查询之API查询【代码】

Hibernate在检索数据上,可以使用SQL、HQL和官方API进行查询,本人主要利用API进行相关查询的小demo。话不多少直接上demo。demo1:基本查询/*** 默认不加任何条件的时候是搜索全部。()* @param session*/privatestaticvoid demo1(Session session) {//criteria 是条件的意思Criteria criteria = session.createCriteria(StuInfo.class, "stu");//idEq()是根据id进行匹配,gt()大于,lt()小于,in()在其中...criteria.add(Restrictions....

day14:hibernate简单增删改查demo

Configuration cfg = new  Configuration().configure();    SessionFactory  sf = cfg.buildSessionFactory(); Session session = sf.openSession(); session.beginTransaction();    session.save(); session.getTransaction().commit(); session.close(); sf.close(); Configuration  cfg = new  Configuration().configure(); SessionFactory  sf = cf...

java框架篇---hibernate主键生成策略

Hibernate主键生成策略1、自动增长identity适用于MySQL、DB2、MS SQL Server,采用数据库生成的主键,用于为long、short、int类型生成唯一标识 使用SQL Server 和 MySQL 的自增字段,这个方法不能放到 Oracle 中,Oracle 不支持自增字段,要设定sequence(MySQL 和 SQL Server 中很常用) 数据库中的语法如下: MySQL:create table t_user(id int auto_increment primary key, name varchar(20)); SQL Server:create table t_use...

Hibernate之二级缓存【代码】

1.为什么需要缓存原因:用缓存,主要有两个用途:高性能、高并发。高性能非实时变化的数据-查询mysql耗时需要300ms,存到缓存redis,每次查询仅仅1ms,性能瞬间提升百倍。高并发mysql 单机支撑到2K QPS就容易报警了,如果系统中高峰时期1s请求1万,仅单机mysql是支撑不了的,但是使用缓存的话,单机支撑的并发量轻松1s几万~十几万。原因是缓存位于内存,内存对高并发的良好支持。2. 什么样的数据需要缓存很少被修改或根本不改的数据 ...

Hibernate 一对一双向映射 注解方式【代码】

此处只讨论外键一对一双向映射有外键的一方: @OneToOne(fetch = FetchType.LAZY)@JoinColumn(name = "device_id_")private DeviceInfo deviceInfo; 另一边:@OneToOne(mappedBy = "deviceInfo") private SiteInfo siteInfo;即可!原文:http://www.cnblogs.com/haitao-fan/p/3617465.html

hibernate之条件查询【代码】

一、条件查询简介条件查询是更据面向对象特色的数据查询方式,主要通过如下3个类完成1、Criteria:代表一次查询2、Criterion:代表一个查询条件3、Restrictions:产生查询条件的工具类执行条件查询的步骤1、获取Hibernate session对象2、调用session的createCriteria()方法创建Criteria查询对象3、使用Restrictions的静态方法创建Criterion查询条件4、通过Criteria的add()方法添加查询条件到Criteria查询中5、执行Criteria的list()...

Spring hibernate 事务的流程【图】

1 在业务方法开始之前①获取session②把session和当前线程绑定,这样就可以在Dao中使用SessionFactory的getCurrentSession()方法来获取session了③.开启事务2. 若业务方法正常结束,即没有出现异常,则①.提交事务②.使和当前绑定的session 解除绑定③.关闭session3.若业务方法出现异常,则:①.回滚事务②.使和当前线程绑定的Session 解除绑定③.关闭session 流程如下图: 原文:http:/...

Fluent NHibernate关系映射

1. Fluent NHibernate主要实现的映射关系一对一、一对多、多对一、多对多,下面介绍几种映射关系中主讲一对多关联属性 2. 一对一映射 HasOne<>()2.1. 定义支持的关联属性Cascade 指该对象在进行操作时关联到的子对象的操作类型PropertyRef()属性一般用来解决遗留数据库One To Many关系的问题PropertyRef被关联到此外键的类中的对应属性的名字,若没指定,使用被关联类的主键.PropertyRef不是数据库表中的字段名,而是定义的类中的属性名...