自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

mrdu_somefun的博客

教育改变生活,知识改变命运

  • 博客(57)
  • 收藏
  • 关注

转载 hibernate中session的线程安全问题

Hibernate的基本特征是完成面向对象的程序设计语言到关系数据库的映射,在Hibernate中使用持久化对象PO(Persistent Object)完成持久化操作,对PO的操作必须在Session管理下才能同步到数据库,但是这里的Session并非指HttpSession,可以理解为基于JDBC的Connnection,Session是 Hibernate运作的中心, 对象的生命

2016-10-30 19:14:56 3106 1

转载 web应用中通常将session绑定到当前线程上

hibernate.current_session_context_class属性配置此设置的作用如下:sessionFactory.getCurrentSession()可以完成一系列的工作,当调用时,hibernate将session绑定到当前线程,事务结束后,hibernate将session从当前线程中释放,并且关闭session。当再次调用getCurrentSess

2016-10-30 19:08:13 3627

转载 对Hibernate中Session与Thread绑定的一点认识

对Hibernate中Session与Thread绑定的一点认识1.在 Hibernate3 的 hibernate.cfg.xml配置文件中有这么一条:thread官方对他的解释如下:首先,只要你持有SessionFactory,大可在任何时候、任何地点调用这个方法:getCurrentSession()方法总会返回“当前的”工作单元。记得我们在hibernate.cfg

2016-10-30 19:07:34 3583 1

转载 关于hibernate中双向外键关联one-to-one的property-ref=的问题

大家都知道hibernate中的one-to-one映射主要有两种策略,(1)一对一主键关联(单向和双向)。(2)一对一外键映射(单项和双向)。本文主要讲解一下,一对一外键映射中的双向问题,在此前先通过一个实例了解。person和idCard,是一种一对一的关系,其中  t_person表                              id        name 

2016-10-30 15:42:25 445

转载 hibernate.hbm2ddl.auto配置详解

hibernate.cfg.xml 中hibernate.hbm2ddl.auto配置节点如下: Hibernate Reference Documentation 3.3.1解释如下:Automatically validate or export schema DDL to the database when the SessionFactory is created.

2016-10-30 15:11:37 324

转载 hibernate中设置constrained的问题

address  constrained属性是在主键映射一对一关系的时候会用到的一.外键约束有什么用1,约束就是为了保持数据完整性,尽量减少数据冗余。而外键就是其中一种约束例如:现在有两张表,Class(班级)表和Student(学生)表如果现在有个操作是要删除班级,那么班级对应的学生也应该一起删除才是对的(不然班级删除了,但是班级对应的学生还留着,这就是数据冗

2016-10-30 13:28:58 1665

转载 hibernate映射many-to-many

多对多(teacher - student)在操作和性能方面都不太理想,所以多对多的映射使用较少,实际使用中最好转换成一对多的对象模型;hibernate会为我们创建中间关联表,转换成两个一对多。teacher[java] view plain copy private int id;  private String name;  p

2016-10-30 10:52:04 301

转载 hibernate中one-to-one两种配置方式

[java] view plain copy public class Person {      private int id;      private String name;      private IdCard idCard;        public Person() {      }        public Person(int id, String na

2016-10-30 10:42:23 1339

转载 hibernate在映射文件中控制insert和update的内容

下面我将列出所有用于控制insert和update语句的映射属性。1.元素的insert属性如果为false,在insert语句中不包含该字段,表明该字段永远不能被插入。默认为true2.元素中的update属性如果为false,update语句中不包含该字段,表明该字段用于不能被更新。默认为false3.元素的mutable属性如果为false,等价于所有的元素的

2016-10-30 10:40:54 451

转载 hibernate 正向工程和反向工程

一,正向工程1.myeclipse使用hibernate正向工程,hibernate的正向工程是指从Java实体类生成数据库表的过程,这种过程符合java程序员面向对象编程的思想,也是工程设计的时候使用比较多的一种思想。具体实施过程如下。1).手动创建Javapojo对象,并对pojo对象加上hibernate anotation。这样做的目的是通过myeclipse来生成hibern

2016-10-30 10:01:48 1116

转载 hibernate映射文件 fetch="join" 和fetch="select"区别

fetch参数指定了关联对象抓取的方式是select查询还是join查询,select方式时先查询返回要查询的主体对象(列表),再根据关联外键id,每一个对象发一个select查询,获取关联的对象,形成n+1次查询;而join方式,主体对象和关联对象用一句外键关联的sql同时查询出来,不会形成多次查询。 如果你的关联对象是延迟加载的,它当然不会去查询关联对象。 另外,在hql查询中

2016-10-30 09:25:38 2356

转载 Oracle外键级联删除和级联更新

1 级联删除Oracle在外键的删除上有NO ACTION(类似RESTRICT)、CASCADE和SET NULL三种行为。下面以学生-班级为例说明不同情况下的外键删除,学生属于班级,班级的主键是学生的外键。 -- 班级表CRATE TABLE TB_CLASS( ID NUMBER NOT NULL, --班级主键 NAME VARCHAR2(50), --

2016-10-29 18:36:51 533

转载 认识ehcache的配置文件: ehcache.xml

ehcache> 指定一个目录:当 EHCache 把数据写到硬盘上时, 将把数据写到这个目录下. --> diskStore path="d:\\tempDirectory"/> 设置缓存的默认数据过期策略 --> defaultCache maxElementsIn

2016-10-29 16:52:00 386

转载 Hibernate二级缓存配置

一、定义:二级缓存是进程或集群范围内的缓存,可以被所有的Session共享,是可配置的插件二、二级缓存原理图 解析:每次从二级缓存中取出的对象,都是一个新的对象。 三、配置步骤如下:同理:以员工类和部门类为例① 引入jar包 ② 关键点:大配置Hibernate.cfg.xml开启二级缓存③ 在src下添加ehcache.xml文件,从e

2016-10-29 16:14:26 512

转载 Hibernate二级缓存的并发访问策略

Hibernate二级缓存的并发访问策略有四种:只读(read-only)、非严格读写(nonstrict-read-write)、读写(read-write)和事务(transactional)。但是目前还没有二级缓存提供者完全支持所有的并发访问策略。只读(read-only): 对于永远不会被修改的数据可以采用这种并发访问策略,它的并发性能是最高的。但必须保证数据不会被修改,否则就会出

2016-10-29 15:52:51 299

转载 给Eclipse中hibernate.cfg.xml配置文件加提示

Eclipse中hibernate.cfg.xml和cls.hbm.xml等配置文件没有提示。软件就是为了给程序猿提供方便的,没有提示会增加不少代码量,增加开发周期。工具/原料Eclipsehibernate框架等基础方法/步骤1在hibernate框架需要的jar包

2016-10-27 03:40:00 556

原创 hibernate 3.2新的Session接口与之前接口的不同

hibernate 3中的session接口的不同hibernate3.2版本中session出现了2个新session接口:org.hibernate.Session老session接口:org.hibernate.classic.Session顾名思义,classic包下的session就是以前常用的session,新的这个相比老的有很大变化。下边详细列出1,去掉了所有的f

2016-10-27 02:23:43 384

转载 hibernate抓取策略fetch=select /join/subselect

一、hibernate抓取策略(单端代理的批量抓取fetch=select(默认)/join)测试用例:Student student = (Student)session.get(Student.class, 1);    System.out.println(student.getName());    System.out.println(student.getClasses

2016-10-26 18:06:50 651

转载 java里,new HashSet(0),这个0是什么意思

private Set roles = new HashSet(0);定一了一个集合roles,初始容量为0。roles里面的每一个元素都是Role类的一个对象,java 1.5新增的泛型定义。 roles里面只能放Role类对象,放其他编译不通过也就是通过来指定Set中的内容,例如:Set roles = new HashSet(0);只能放置

2016-10-26 17:33:37 2552

原创 hibernate主键配置

一般主键的配置:[html] view plain copyid name="id">                              要求此属性要是数字类型              generator class="identity"/>              -->                     

2016-10-24 22:46:59 513

转载 hibernate中配置<param name="sequence">SEQ_CLASS_ID</param>

*.hbm.xml文件里面SEQ_CLASS_ID使用时必须先创建一个sequence,如果不指定sequence名称,则使用默认的名称hibernate_sequence,则就不会是自己定义的名字了。

2016-10-24 17:52:29 1679

转载 解决load,get,save 等is not valid without active transaction异常的原因

org.hibernate.HibernateException:*** is not valid without active transaction 2010-12-09 15:36:07Exception in thread "main" org.hibernate.HibernateException: *** is not valid without active tra

2016-10-24 16:50:49 1370

转载 <c:if test=""></c:if>如何判断空(使用例子)

userName是登录的时候放到session中了这表示userName判断不为null` ` 这表示userName判断为null使用案例 c:if test="${ not empty userName }"> ul> li>a href="">退出a>li> li>a href="#">${userNam

2016-10-22 19:53:09 2939

原创 Hibernate的evict方法和clear方法的区别

我先创建一个Student,然后调用session.save方法,然后再调用evict方法把Student对象清除出缓存,再提交事务, 可是会报错:Exception in thread "main" org.hibernate.AssertionFailure: possible nonthreadsafe access to session 但是如果我用的不是evict方法,而是clear方法

2016-10-22 00:49:49 346

原创 jar包放在lib目录下,为什么还有build path一下?

即使你的包没放在lib目录下,比如我放在桌面,那么我同样可以通过build path把桌面上的jar包通过路径引用到项目中。而我们之所以一般创建lib目录存放jar包的原因是,防止项目在其他电脑上不能运行(因为其他电脑上的桌面不一定存在我需要引用的jar包,即build path中的路径找不到对应的jar包),在项目下创建lib目录之后,那么无论工程在哪个环境下运行,都能找到该jar包,项目默认从

2016-10-21 16:19:45 5689

原创 Java 中的 static 使用之静态初始化块

Java 中可以通过初始化块进行数据赋值。如:在类的声明中,可以包含多个初始化块,当创建类的实例时,就会依次执行这些代码块。如果使用 static 修饰初始化块,就称为静态初始化块。需要特别注意:静态初始化块只在类加载时执行,且只会执行一次,同时静态初始化块只能给静态变量赋值,不能初始化普通的成员变量。我们来看一段代码:运行结果:通过

2016-10-21 15:03:28 385

转载 普通Java工程中调用Hibernate的8个执行步骤(properties做配置文件)

普通Java工程中调用hibernate的8个执行步骤(properties做配置文件)前言:文章的示例代码是在普通Java工程中简单调用Hibernate执行持久层的实现。用于理解Hibernate对JDBC的轻量级封装。总共八个步骤,可对应JDBC传统六个步骤来一起理解。当然,仅用于理解和参考,不可直接用于项目中。没有对关闭事务和关闭Session进行异常处

2016-10-21 14:59:08 785

转载 Hibernate核心类用法-使用Configuration装载配置

Configuration接口的作用是对Hibernate进行配置 以及对他进行启动 在Hibernate的启动过程中 Configuration类的实例首先定位映射文档的位置 读取这些配置 然后创建一个SessionFactory对象    一个org.hibernate.cfg.Configuration实例代表了一个应用程序中Java类型到SQL数据库映射的完整集合。Configur

2016-10-21 14:57:12 413

转载 一个简单的hibernate连接oracle数据库例子

一、 Hibernate介绍    Hibernate是基于对象/关系映射(ORM,Object/Relational Mapping)的一个解决方案。ORM方案的思想是将对象模型表示的对象映射到关系型数据库中,或者反之。Hibernate目前是ORM思想在Java中最成功、最强大的实现。它于2001年的年末发布第一个版本,立即引起了广泛的注意。2003年6月,Hibernate2发表,并

2016-10-21 14:50:10 10644

转载 hibernate.properties与hibernate.cfg.xml 区别

hibernate的数据库连接信息是从配置文件中加载的。Hibernate的配置文件有两种形式:一种是XML格式的文件,一种是properties属性文件。一)hibernate.cfg.xmlXML格式的配置文件中,除了基本的Hibernate配置信息,还可以指定具体的持久化类的映射文件,这可以避免将持久化类的配置文件硬编码在程序中。XML格式的配置文件的默认文件名为hi

2016-10-21 13:11:49 411

转载 web中session与序列化的问题

最近在写网上商城项目的时候学习了一个关于session的序列化问题,过来总结一下。        众所周知,session是服务器端的一种会话技术,只要session没有关闭,一个会话就会保持。这里先引出一个问题:如果我在访问某个页面后,服务器重启了一下,但是网页还没关,那么原来的session还在么?答案是很明显的,你都把服务器关掉了,session肯定不是原来的session了,原来的

2016-10-20 23:30:30 416

转载 Hibernate中两种获取Session的方式

Session:是应用程序与数据库之间的一个会话,是hibernate运作的中心,持久层操作的基础.对象的生命周期/事务的管理/数据库的存取都与Session息息相关.  Session对象是通过SessionFactory构建的,下面举个例子来介绍Hibernate两种获取session的方式。  日志,是编程中很常见的一个关注点.用户在对数据库进行操作的过程需要将这一系列操作记录,以便

2016-10-20 19:55:06 548

原创 hibernate中native、identity和increment等主键的区别

identity:由底层数据库生成标识符。identity是由数据库自己生成的,但这个主键必须设置为自增长,前提条件是低层数据库支持自动增长字段类型  ,一般来说像mysql,sql server这类的数据库都是选择identityincrement:由hibernate管理主键,自动以递增的方式生成标识符,每次增量为1。其在每次插入前取得一个当前最大的id+1作为主键,该主键必须为I

2016-10-20 18:47:06 1501

原创 char(10)、varchar2(10)、nvarchar2(10) 区别

NVARCHAR2(10)可以存进去10个汉字,如果用来存英文也只能存10个字符。 VARCHAR2(10)只能存进5个汉字,英文则可以存10个 。1.CHAR的长度是固定的,而VARCHAR2的长度是可以变化的, 比如,存储字符串“abc",对于CHAR (10),表示你存储的字符将占10个字节(包括7个空字符),而同样的VARCHAR2(10)则只占用3个字节的长度,10只是

2016-10-19 16:44:56 3832

转载 char与byte的区别

很多初学者(包括我,已经学了一年多JAVA了)肯会对char和byte这两种数据类型有所疑惑,相互混淆,今天特地查了好多资料,对byte和char两种数据类型进行了总结和比较,先将结果与大家分享:        byte 是字节数据类型 ,是有符号型的,占1 个字节;大小范围为-128—127 。char 是字符数据类型 ,是无符号型的,占2字节(Unicode码 );大小范围 是0—

2016-10-18 18:45:48 740

转载 oracle中number数据类型对应java中的基本数据类型

Oracle数据库中number类型在hibernate的引用1)如果不指定number的长度,或指定长度n>18id number not null,转换为pojo类时,为Java.math.BigDecimal类型2)如果number的长度在10 id number(n) not null,转换为pojo类时,为java.lang.Long类型3)如果n

2016-10-18 16:55:59 2204

原创 hibernate批量插入数据

public void testInserBatch() {   Session session = sf.openSession();      session.beginTransaction();      //每次插入20条数据      for(int i=0; i1000; i++) {          Category c = new Category();      

2016-10-18 15:06:52 626

转载 Oracle取短日期格式

从Oracle数据库中取出的日期直接变成短日期格式,即yyyy-m-d,一位数月和日时不用在前面补充0,找到对应的视图脚本,原来是用to_char函数来格式化取出的日期数据,to_char(sysdate,'yyyy-mm-dd'),而oracle的to_char函数是不能取得类似yyyy-m-d的格式,因为在oracle里没有m这种格式,只有mm代表月份数字,而d表示一周的1-7,dd表示一个月

2016-10-18 00:29:23 2859

转载 使用ALTER USER命令修改用户的密码、密码过期,锁定,解锁

使用ALTER USER命令可以用来修改用户的口令,设置口令过期,锁定以及解锁用户等等。1、修改用户的口令,将用户的口令修改为新的密码ALTER USER SCOTT IDENTIFIED BY NEWPASSWORD;SQL> ALTER USER SCOTT IDENTIFIED BY SOCTT;用户已更改。2、设置用户口令过期,通过设置用户过期,这样该用户在

2016-10-17 19:46:09 696

转载 常用到的导入导出oracle

数据导出:  1 将数据库TEST完全导出,用户名system 密码manager 导出到D:\daochu.dmp中  exp system/manager@TEST file=d:\daochu.dmp full=y  2 将数据库中system用户与sys用户的表导出  exp system/manager@TEST file=d:\daochu.dmp ow

2016-10-16 20:36:02 254

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除