自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 资源 (18)
  • 收藏
  • 关注

原创 hibernate一级缓存,二级缓存,三级缓存,缓存算法及配置。

<br />什么是缓存(我的理解):在内存中开辟一块空间,把原来在硬盘上的东西,放到内存当中,当需要用到一些数据时,直接在内存中查找,而不是到硬盘上查找。这块内存中的空间就是缓存。缓存能提高程序的运行效率。<br />一级缓存(session级的缓存):在一个session中load同一个对象2次,load时,hibernate首先在session缓存中查找对象,如果没找到就到数据库中去load。因此,在同一个session中load一个对象2次,只会发出一条sql语句。而在2个session中load同一

2010-12-27 23:05:00 20310 1

原创 hibernate查询的结果用list和iterate存放的不同之处

<br />①List:直接取出所有的记录将其封装成对象放到集合中。<br />Iterator:先取出所有记录的id(主键),当需要用到对应的id的记录时,再根据id发sql语句。②list不会主动利用session级的缓存,因此list遍历时每次会到数据库中取数据。<br />Iterator会利用session的缓存,Iterator每次会到缓存中找,如果缓存中没有,再到数据库中取数据。<br />③Iterator默认使用二级缓存<br />list默认往二级缓存存数据,但是查询时不使用二级缓存。

2010-12-27 21:57:00 1359

原创 hibernate查询的1+n问题

<br />     在多对一关系中,当我们需要查询多的一方对应的表的记录时,可以用一条sql语句就能完成操作。然而,在多的一方的实体类中的@ManyToOne标注的fetch的默认值是eager,这时,hibernate除了发出查询多的一方对应的表的记录的sql语句外,还会发出n(多方记录数)条sql语句,这就是1+n问题。如:bbs的板块(Category),主题(topic),回复(msg)。一个板块有多个主题,而一个主题属于一个板块,则Category和topic属于一对多的关系,在topic里设置

2010-12-27 21:54:00 3690

原创 Hibernate查询(Query Language,hql,ejbql,nativeql,qbc,qbe)

<br />1.nativeSQL(本地sql,功能强大)>HQL>EJBQL(是hql的子集)>QBC(query by cretra,cretra接口查询)>QBE<br />nativeSQL:本地sql,利用jdbc接口,完成本地数据库查询。功能最强大<br />hibernateQL:hibernate实现的jpa标准的查询语言,功能也很强大。<br />ejbQL:这是jpa定义的查询接口的实现。可以看成是hql的子集。<br /><br /><br />QBC(Query by criteri

2010-12-27 21:48:00 1402

原创 hibernate继承关系的映射(single_table,class_per_table,joined)

<br />hibernate对象之间存在继承关系,该如何映射呢?有3中方式,反映在数据库表上:<br />Single table:Student和Teacher类的父类是Person类,用一张数据库表反应3个类的所有信息。这样设计的缺点是:表的信息反映了所有类的属性,造成大量的数据冗余。<br />Table per class:为每个类设计一张表,其缺点是:<br />Joined:用一张表存共有的字段,而其子类对应的表存其特有字段。优缺点:查询能提高效率,然而需要作表连接,当添加新的子类时,需要添加

2010-12-22 22:51:00 4111

原创 关联关系的crud(增加(Create)、查询(Retrieve)(重新得到数据)、更新(Update)和删除(Delete))的理解(casecade和fetch)

在多对一双向关联中1.进行save操作,默认情况下,保存其中一个对象,hibernate并不会帮我们保存关联对象,通常可以按照顺序存储每个对象。如果要hibernate帮我们保存关联对象,则必须加上cascade属性,在jpa标准中其取值有(all,persist,remove,reflesh,merge),hibernate就可以保存保存对象的关联对象。2.进行get操作,影响读取操作的属性是:fetch。Manytoone的fetch默认值为eager,而onetomany的fetch默认值为lasy。

2010-12-22 22:14:00 1868

原创 hibernate对象关系映射(一对一,一对多,多对一,多对多的单向,双向映射)

<br />对象之间的关系:<br />关系映射之间的关系只的是对象之间的关系,并不指数据库表的关系(外键关系)这儿解决的问题是当对象之间的关系之一时,数据库表该如何映射,编程上如何对待。<br /> <br /><br />一对一(主键关联,和单向的外键关联)<br />   ①单向(主键,外键)Husband和Wife表,a,主键关联 b,外键关联(wife为parent),c,主键关联 d,外键关联(husband为parent)<br />一对一单向外键关联:<br />annotation:@on

2010-12-22 21:46:00 5046

原创 树状结构的设计(把一棵树存入数据库的hibernate映射,及数据库表的设计)

<br />数据库模型(id-pid):一个父亲有多个孩子,而一个孩子只有一个父亲,这样的结构就是一颗树。在数据库表中,设计的是id和pid(parent_id)。通过id和pid就存放一颗树了。<br />从面向对象的设计角度出发,在树的节点类中不宜放pid,一个节点有1个或者0个父亲,而有0个或者孩子。因此设计如下:这是一个组织机构,每个机构有父机构和子机构。<br />package com.xie.hibernate.modal;<br /> <br />import java.util.HashS

2010-12-22 21:21:00 4272 3

原创 org.hibernate.NonUniqueObjectException

<br />org.hibernate.NonUniqueObjectException: a different object with the same identifier value was already associated with the session: [com.xie.hibernate.modal.Org#2]<br /> <br />非唯一对象异常,这是因为:在hibernate实体类中加上了@GeneratedValue,同时还在生成对象时手动给id赋值,在向数据哭中存放数据记录

2010-12-22 20:56:00 923

原创 Hibernate中如何只更新修改过的字段,未修改的字段不用更新??(3中方法)

1.修改注解:指定某个属性为:@Column(updatable=false),这个标签的意思是:指定某列不在更新的范围内。同时还可以在xml的property 属性中指定update。少用,不灵活2.xml :在xml的配置文件中设置class的属性dynamic-update,如:。在跨Session时,只靠dynamic-update是不行的,因此,用到merge。session2.merge(s);在jpa标准的annotation中没有对应的设置,而hibernate扩展了对应的功能。3.HQL|

2010-12-11 01:01:00 8477 1

原创 对象的三种状态(hibernate的session的get和load方法的区别,session的常用方法,session缓存)

<br /> <br />对象的3中状态:1.transient:内存中有一个对象,没id,Session缓存中无该对象的引用,数据库中没有。<br />                2.persistent:内存中有一个对象,有id,Session缓存中有该对象的引用,数据库中有。<br />                3.detached:内存中一个对象,有id,Session缓存中无该对象的引用,数据库中有。<br />Session缓存:当一个对象通过new到对内存时,session中并没有指

2010-12-11 00:56:00 1579

原创 opensession()和getCurrentSession()方法的区别(JTA(java Transaction Api,分布式事务)事务和Connection事务:数据库自带的事务处理方式)

<br />Session session=sf.getCurrentSession();//当上下文中没有Session时,才打开一个Session,他不需要手动关闭,事务完成后自动关闭。可以界定事务的边界,事务提交后自动close<br />Session session=sf.openSession();//总是打开一个Session,他需要手动关闭。<br /><br /><br />上图一个用户注册的过程,用户注册需要有2部分的操作,一部分是将用户注册信息添加到数据库,第二部分是将用户注册后的日志

2010-12-11 00:42:00 2160

原创 Powerdesigner的反向工程无法导出mysql表之间的关系(mysql的2中存储方式)

这个问题查了很久。在mysql中有2中存储方式:MyISAM 和 InnoDB 2种存储方式,他们的区别是:MyISAM 不支持事务回滚,InnoDB 支持事务回滚,我在hibernate中指定的方言是:org.hibernate.dialect.MySQLMyISAMDialect。用hibernate生成表后,在powerdesigner中方向工程始终不能显示出2张表的关系。然后将方言改成:org.hibernate.dialect.MySQLInnoDBDialect。这次通过powerdesigne

2010-12-10 22:39:00 3605 1

原创 Java Exception : Fatal Error. Unable to initialize DatabaseMetaData class.和Non SQL Error : Could not load class com.mysql.jdbc.D

Java Exception : Fatal Error. Unable to initialize DatabaseMetaData class.Non SQL Error : Could not load class com.mysql.jdbc.Driver上面2个异常是powerdesigner无法找到驱动所产生的,解决办法是:配置系统的classpath路径,指定jar包路径就好了。SQLSTATE = UNKNOWNIo 异常: The Network Adapter could not est

2010-12-10 22:37:00 9376 2

原创 ID的生成策略(hibernate的id生成策略,主键类为什么需要实现序列化接口,同时还要重写hashCode()和equals()方法)

<br />在数据库中,通常主键都有自动增长功能。如:mysql中用auto_increment oracle中用sequence,sql server中用identity。hibernate在生成数据库表时,如何让其主键具有自动增长呢??<br /><br />一.单主键(只有一个属性作为主键):<br />1.xml方式:<br />generator,常用4个:uuid(全球唯一) native(跨数据库平台) identity(sql server) sequence(oracle),帮助文档有详细

2010-12-10 21:48:00 4627 1

原创 hibernate字段映射的位置(放在属性前,还是放在方法前??)

<br />放在属性上和放在get方法上:放在属性上更集中,比较舒服,然而它破坏了java面向对象设计思想,也就是说如果加在属性上,hibernate可以直接访问类的私有的成员变量。因此,推荐放在get方法上。<br />

2010-12-10 21:34:00 1037

转载 PowerDesigner15及破解补丁下载

<br />PowerDesign是Sybase推出的主打数据库设计工具。PowerDesign致力于采用基于Entiry-Relation的数据模型,分别从概念数据模型(Conceptual Data Model)和物理数据模型(Physical Data Model)两个层次对数据库进行设计。概念数据模型描述的是独立于数据库管理系统(DBMS)的实体定义和实体关系定义。物理数据模型是在概念数据模型的基础上针对目标数据库管理系统的具体化。 <br /><br />PowerDesigner 15下载地址:

2010-12-09 21:09:00 4534 2

原创 extjs jquery dwr ajax flex等web前端框架技术介绍

<br />extjs:1.介绍:http://baike.baidu.com/view/1350145.htm  2.官网学习:http://extjs.org.cn/(中文)<br />JQuery:1.介绍:http://baike.baidu.com/view/1020297.htm 2.官网学习:http://jqueryui.com/(英文)<br />Prototype:1.介绍:http://baike.baidu.com/view/1112205.htm 2学习网站:http://www.

2010-12-09 10:21:00 2386

原创 com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'hibernate.id_gen' doesn't exist

<br /><br />java后台所提示的错误:<br />com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'hibernate.id_gen' doesn't exist<br /> <br /><br />11:26:56,984 ERROR JDBCExceptionReporter:101 - Unknown table 'hibernate_sequence' in field list<br /> <br /> 

2010-12-08 11:39:00 11340

原创 java.lang.AbstractMethodError: oracle.jdbc.driver.OracleDatabaseMetaData.getJDBCMajorVersion()I异常

<br />在hibernate3.5.4,用oracle方言自动创建表出现如下错误:java.lang.AbstractMethodError: oracle.jdbc.driver.OracleDatabaseMetaData.getJDBCMajorVersion()I这是由于hibernate和oracle驱动的兼容问题造成的。oracle10g除了了提供了老的class12.jar驱动外,还提供了ojdbc14.jar驱动,其位于:C:/oracle/jdbc/lib。class12.jar会造成

2010-12-07 23:13:00 10130 5

原创 junit 测试报错:invalid project specied

<br />一般是由于project名字的问题,检查下看一下里面是不是有非法字符或者前置空格。一般就可以解决问题了。

2010-12-07 17:48:00 917

原创 hibernate的原理及模拟

<br /><br /> <br />//Session.java<br />package com.xie.hibernate.main;<br /> <br />import java.lang.reflect.Method;<br />import java.sql.Connection;<br />import java.sql.DriverManager;<br />import java.sql.PreparedStatement;<br />import java.util.HashMap;<

2010-12-07 16:07:00 1042

原创 navicat连接oracle的错误:ora-12737:instant client light :unsupport server charater set ZHS16GBK解决办法。(oracle服务端字符集,客户端字符集,dmp备份文件字符集,or

<br /> 这是由于oracle数据库服务端的字符串为ZHS16GBK,而navicat并不支持。解决办法是:修改oracle服务端的字符集,以sysdba角色登录oracle数据库,修改props$系统表(oracle维护的表)的NLS_CHARACTERSET和NLS_NCHAR_CHARACTERSET,sql语句如下:<br />update props$ set value$='AL32UTF8' where name='NLS_CHARACTERSET' or name='NLS_NCHAR_

2010-12-07 15:44:00 12854 3

翻译 本地计算机上的OracleOraDb10g_home1TNSListener服务启动后又停止了..........解决办法

方法1.直接修改 listener.ora 我机器上的路径是: D:/oracle/product/10.2.0/db_1/NETWORK/ADMIN/listener.ora 修改其中的 HOST 为主机名或者IP 方法2.通过 Net Configuration Assisant 重新配置,一路回车就搞定了(成功) 方法3.通过 Net Manager,在 监听程序节点下直接修改。

2010-12-07 15:35:00 18906 5

原创 拦截器的模拟(java project)

<br />用java工程模拟拦截器的实现,通过使用拦截器在action执行前加入一些处理逻辑,在action执行后又加入一些逻辑。其代码如下:<br />//Action.java<br />package com.xie.interceptor;<br /> <br />publicclass Action {<br />     publicvoid execute(){<br />     System.out.println("execute action.");<br />     }<br /

2010-12-05 15:57:00 1015

原创 自定义类型转换器(转换器的注册方法)

类型转换拦截器:把参数转换为action使用的格式,从客户端传过来的任何数据都是字符串类型的,struts2提供了一些转换器,如:字符串转整数,字符串转集合,字符串转日期。然而有些类型struts2并不能帮我们转换。这时需要自定义类型转换器。字符串转各种类型的工程下载地址如下:自定义类型转换器:1.写一个类型转换器://这是一个java.awt.Point的类型转换器package com.xie.convertors;import java.awt.Point;import com.opensymphon

2010-12-05 14:47:00 3672

原创 Struts2拦截器原理(拦截器设计体现的一种编程理念——面向切面编程AOP)

<br />Struts2的拦截器的设计体现了一种编程的设计理念,即面向切面编程AOP。一个正常的action,在没有interceptor时,直接就执行了。而有了拦截器以后,我们可以在action执行前,加上需要执行的代码,而在action执行完成后,也可以添加需要的执行逻辑代码。<br />通过查看源码,可以发现valueStack被放在request里,如果需要取得valueStack,用request的getAttribute<br /><br /> <br /> <br /> <br /> <br

2010-12-05 12:19:00 3001

原创 使用token拦截器(自定义拦截器的使用(不重要))

<br />    在页面的提交表单中加入<s:token/>标签,当请求该页面时,由服务器产生一个字符串,如:LO3ZSJ4MGAQH3VMFS425V62PK535THUI。可以通过查看ie源码查看生成的字符串。服务器产生这个字符串后将其放入到服务器的session里。同时客户端的字符串将随着提交,token拦截器在action执行之前会比较那个字符串与服务器session的字符串是否一致,比较一次后session中的字符串将会被删除。如果用户重复提交将不会通过。<br />Form token LO3

2010-12-05 12:13:00 3558

原创 Hibernate3.5.4---web application的xml和annotation环境搭建,整合struts2.1.8

<br />说明:hibernate目前最高版本为3.6.0,struts的最高版本为2.2.1<br />在hibernate3.5版本以前,常用的包导入后,还需要:hibernate-commons-annotations.jar,hibernate-annotations.jar(反射时需要的包),ejb3-persistence.jar<br />而3.5及其以后的版本,需要导入:hibernate-jpa-2.0-api-1.0.0.Final.jar<br />目录结构:<br /><br />

2010-12-02 17:09:00 1036

原创 Hibernate3.5.4环境搭建中常见异常的解决办法

<br />hibernate版本是3.5.4<br />org.hibernate.MappingException: Unable to load class declared as in the configuration:<br />这个异常是在<br />hibernate.cfg.xml<br /> 文件中配置<mapping class="com.xie.hibernate.modal.Teacher"/>抛出的,class=包名+类名<br />org.hibernate.MappingEx

2010-12-02 16:43:00 6950

原创 Hibernate3.5.4---java application的xml和annotation环境搭建(hibernate.cfg.xml配置文件说明,映射文件Student.hbm.xml说明

<br />Hibernate负责持久层,将modal持久化到数据库。由于jdbc使用的sql语言不是面向对象,感觉不舒服,写起来也比较复杂。Hibernate对其进行了封装,让我们可以按照面向对象的思维方式编程。Hibernate采用了2中方式将modal持久化到DB。<br />环境搭建:到官网下载http://www.hibernate.org/  hibernate-distribution-3.5.4-Final-dist.zip<br />在myeclipse中添加userlibary:Wind

2010-12-02 16:31:00 3724

maven+nexus学习帮助

包含maven+nexus使用文档,pom.xml详解文件,setting.xml详解,maven实战书的部分内容

2012-10-22

java与wcf通信

里面包含了一篇文档,wcf服务端代码,C#客户端代码,java ws代码,客户端代码,java访问wcf代码

2011-09-18

jbpm4.4+s2sh请假流程例子

jbpm4.4整合s2sh 请假流程例子

2011-04-25

jquery的几个例子程序

这是用myeclipse8.5写的几个jquery例子,希望对大家有帮助。

2011-02-17

struts2的convert工程

一个struts2类型转换的工程,包含源码。里面包含了常见类型转换的使用

2010-12-05

properties文件编辑器的MyEclipse和Eclipse插件

jp[1].gr.java_conf.ussiy.app.propedit_5.3.5.rar 一个MyEclipse和Eclipse插件,用于编辑properties文件

2010-11-28

java封装的java反编译工具jad

以jad1.5.8g为内核,java语言封装的jad工具,将class文件反编译成java文件。通过这个反编译后,直接在MyEclipse中关联,就可以在MyEclipse中查看某个jar包的源码

2010-11-15

java 反编译工具

在命令行输入命令,将.class文件转换为.java文件,即反编译。内有使用说明

2010-11-15

rose2003汉化包和破解包

里面有rose2003的汉化 破解包,rose的安装包请在网上下载。

2010-11-09

数据库连接池的实现java

数据库连接池可以通过配置服务器容器的server.xml实现,也可以用中间件来完成相应的功能,这是一个用java实现的数据库连接池功能

2010-11-07

java笔试面试题目

里面包含了尚学堂和传智播客的2套笔试面试题,希望对大家有帮助。

2010-11-07

jdom.jar,dom4j.jar,dom.jar,sax.jar,jaxen.jar解析xmljar包

这是java解析xml所必须的jar包,包括dom.jar dom4j.jar sax.jar jdom.jar jaxen.jar(xpath必须包).

2010-10-30

javamail1.4.3

javamail api 1.4.3 和chm格式的帮助文档。

2010-10-02

css样式表中文帮助文档

chm格式的css中文帮助文档。CSS 是 Cascading Style Sheet 的缩写。译作「层叠样式表单」。是用于(增强)控制网页样式并允许将样式信息与网页内容分离的一种标记性语言

2010-09-29

matlab锐化教程

详细讲解matlab图像锐化的算法

2008-05-18

matlab锐化代码

从矩阵角度,编写的关于图像锐化代码

2008-05-17

空空如也

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

TA关注的人

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