- 博客(132)
- 资源 (14)
- 收藏
- 关注
转载 hibernate-tools详细使用教程(实现数据库-javabean转换)
hibernate-tools详细使用教程使用hibernate-tool的版本是hibernatetools-Update-2010-09-08_14-25-39-H23 1.在eclipse下安装好hibernate-tool插件,新建一个hibernate.cxf.xml文件 2.写好数据库连接配置 3. 4
2016-04-29 17:35:02 2604
转载 hibernate的抓取和级联操作
@Entity@Table(name="orders") public class Order { //1-m,多的一方为关系维护端,关系维护端负责外键记录的更新,关系被维护端没有权利更新外键记录 private String orderid; private Float amount; private Set items = new HashSet(); @Id @
2016-04-29 17:22:06 698
转载 Hibernate乐观锁实现之Version
通过在表中及POJO中增加一个version字段来表示记录的版本,来达到多用户同时更改一条数据的冲突数据库脚本: create table studentVersion (id varchar(32),name varchar(32),ver int);POJO package Version;public class Student {
2016-04-29 17:05:04 1543
转载 Hibernate和JPA的主键生成策略
主键是关系数据库中的一个基本概念,它用来保证记录的唯一性。简单来说,就是同一张数据库表中,不允许存在多条相同主键的记录。主键生成策略,就是当向数据库表中插入记录的时候,这个记录的主键该如何生成。绝大部分情况下,主键都是没有业务含义的,所以开发者不会、也不需要,显示地设置实体对象的主键值。但是对于数据库来说,主键是必须的,显然这个责任,落在了hibernate这个持久层框架上。对于初学hiberna
2016-04-29 16:33:43 811
转载 Hibernate中get和load方法的区别
这次我们来谈一下Hibernate3.2 Session加载数据时get和load方法的区别,其实这个在网上有很多的论述,可大多语焉不详或经不起实践的推敲,让很多初学者学的满腹疑窦,现在我给大家讲解一下:1. 对于get方法,hibernate会确认一下该id对应的数据是否存在,首先在session缓存中查找,然后在二级缓存中查找,还没有就查询数据库,数据库中没有就返回null。这个相对比较简
2016-04-29 14:41:22 452
转载 hibernate缓存机制详细分析(一级/二级/查询缓存)
在本篇随笔里将会分析一下hibernate的缓存机制,包括一级缓存(session级别)、二级缓存(sessionFactory级别)以及查询缓存,当然还要讨论下我们的N+1的问题。随笔虽长,但我相信看完的朋友绝对能对hibernate的 N+1问题以及缓存有更深的了解。一、N+1问题首先我们来探讨一下N+1的问题,我们先通过一个例子来看一下,什么是N+1问题:li
2016-04-29 14:19:52 2043
原创 hibernate一级缓存详解
一级缓存的生命周期和session的生命周期一致,当前sessioin一旦关闭,一级缓存就消失,session间不能共享一级缓存的数据,因此一级缓存也叫session级的缓存或事务级缓存。一级缓存只存实体对象的 ,它不会缓存一般的对象属性(查询缓存可以),即当获得对象后,就将该对象的缓存起来,如果在同一session中如果再去获取这个对象时,它会先判断缓存中有没有该对象的id,如果有就直接从缓存中
2016-04-29 11:27:43 3058
转载 Hibernate Session的Flush模式
首先要知道的是:Hibernate会尽量将与数据库的操作延迟,直到必须要与数据库进行交互,例如save方法一般会在提交时才真正执行,最终在提交时会以批处理的方式与数据库进行交互,以提高效率。而将操作延迟,就是利用缓存,将最后要处理的操作放到缓存中。flush方法的主要作用就是清理缓存,强制数据库与Hibernate缓存同步,以保证数据的一致性。它的主要动作就是向数据库发送一
2016-04-29 10:52:50 634
转载 Hibernate原生SQL查询使用addScalar()或addEntity()
Hibernate除了支持HQL查询外,还支持原生SQL查询。 对原生SQL查询执行的控制是通过SQLQuery接口进行的,通过执行Session.createSQLQuery()获取这个接口。该接口是Query接口的子接口。 执行SQL查询步骤如下: 1、获取Hibernate Session对象 2、编写S
2016-04-29 10:47:34 2343
转载 Hibernate拦截器(Interceptor)与事件监听器(Listener)
前言:由于项目中(S2SH框架)用到了memcache缓存服务器,考虑到同步问题是用每个bean变更时同时更新缓存还是用类似数据库trigger(触发器)去实现呢,答案当然是用类似trigger的方式了,其优点不言而喻,毕竟这么写一劳永逸。经调查发现,hibernate有两种方式可以实现: 拦截器(Intercept):与Struts2的拦截器机制基本一样,都
2016-04-28 17:38:37 3231
转载 Hibernate监听用户操作日志
们前段时间有个.net项目需要用j2ee改造,有个需求是要对所有的数据库操作(CRUD)都要做历史记录,要记录操作内容,操作的用户和操作时间。这样的需求称为审计日志 Audit log。项目采用Spring构建,持久层技术采用的是 JPA规范 + Hibernate实现的方案要实现审计日志的需求,我试用了多种技术方案,最终确定了采用Hibernate 3的新特性事件驱动架构来解决:
2016-04-28 16:52:01 1449
转载 hibernate与mybatis异同与比较(涵盖网上各个版本,清晰明了)
一、序言 最近一直用mybatis做开发,以前用过hibernate,能感受到一些它们在使用上的区别,不过总想抽出时间来好好比较比较弄弄清楚它们各自的优劣,以便更好进行选择和深入的了解。 网上也看了很多资料,结合自己的使用体会,粗率地概括和总结了一下,以供大家参考。二、具体运用上的不同1、所需的jar包Mybatis:只需要3个(mybati
2016-04-28 16:40:53 665
转载 Hibernate Annotation中BLOB、CLOB注解写法
在hibernate Annotation中,实体BLOB、CLOB类型的注解与普通的实体属性有些不同,具体操作如下:BLOB类型,类型声明为byte[]://简单类型 默认 fetchType 为 EAGER private byte[] content; 注解: @Lob @Basic(fetch = FetchType.LAZY) @Column(name
2016-04-28 16:03:30 521
转载 Oracle存储过程全解及java调用示例
简要记录存储过程语法与Java程序的调用方式 一 存储过程 首先,我们建立一个简单的表进行存储过程的测试create table xuesheng(id integer, xing_ming varchar2(25), yu_wen number, shu_xue number);insert into xuesheng values(1,'zhangsan',80,90)
2016-04-28 15:36:43 836
转载 Oracle游标使用全解
这个文档几乎包含了oracle游标使用的方方面面,全部通过了测试-- 声明游标;CURSOR cursor_name IS select_statement--For 循环游标--(1)定义游标--(2)定义游标变量--(3)使用for循环来使用这个游标declare --类型定义 cursor c_job is sele
2016-04-28 15:12:41 467
转载 Oracle rac配置Weblogic数据源(实例名及URL的选择)
这几天,应用程序后台一直报无法取得连数据库接池。但之前从来没有这个问题,迁移到Weblogic后才发生。之后据了解,我们服务器上的Oracle 10G 是 RAC 的,即有两个节点。两个节点 IP及实例名分别为:10.1.43.11 stnic110.1.43.21 stnic2配置数据源时 一直使用的是第一个 URL 及 实例名,配置完后,连接URL为:jdbc:orac
2016-04-28 14:56:39 4362
转载 客户端连接oracle的总结(关于tnsname和监听)
如何配置才能使客户端连到数据库: 要使一个客户端机器能连接oracle数据库,需要在客户端机器上安装oracle的客户端软件,唯一的例外就是java连接数据库的时候,可以用jdbc thin模式,不用装oracle的客户端软件。加入你在机器上装了oracle数据库,就不需要在单独在该机器上安装oracle客户端了,因为装oracle数据库的时候会自动安装oracle客户端。 用过sql s
2016-04-28 14:40:48 5893
转载 Oracle中如何删除重复数据
我们可能会出现这种情况,某个表原来设计不周全,导致表里面的数据数据重复,那么,如何对重复的数据进行删除呢? 重复的数据可能有这样两种情况,第一种时表中只有某些字段一样,第二种是两行记录完全一样。 一、对于部分字段重复数据的删除 先来谈谈如何查询重复的数据吧。 下面语句可以查询出那些数据是重复的: select 字段1,字段2,count(*) fr
2016-04-28 14:19:20 617
转载 Oracle闪回查询恢复delete删除数据
1、执行 select * from A as of timestamp sysdate-10/1440; 该SQL语会查找出距离现在10分钟之前A表的所有数据。 sysdate-10/1440表示距离现在10分钟之前,1440这个数字表示一天有1440分钟。 如果不写距离时间,SQL语句可写成:select * from A
2016-04-28 14:06:36 771
原创 oracle创建表空间
/*分为四步 *//*第1步:创建临时表空间 */create temporary tablespace user_temp tempfile 'D:\oracle\oradata\Oracle9i\user_temp.dbf' size 50m autoextend on next 50m maxsize 20480m exten
2016-04-28 14:01:36 502
转载 利用DB Link实现Oracle两个数据库间的表同步
1,在目标机上建立Oracle DB Link:A,在network/admin/tnsname.ora文件中加入源库的连接信息,如:AAA= (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.5.1.3)(PORT = 1521)) (CONNECT_DATA = (SERVER = DE
2016-04-28 13:57:59 6299 1
转载 Oracle查看连接数、表空间大小及使用率
select sysdate,c.tablespace_name,round(used_mb,1),round(total_mb,1),round(used_mb/total_mb,3)*100||'%'from (select tablespace_name, sum(bytes)/1024/1024 used_mb from dba_segm
2016-04-28 13:41:38 1523
转载 java web项目与oracle rac连接JNDI
某环境使用的oralce数据库采用了rac的策略做了负载均衡,现需要将开发的项目部署至该环境, 假设,该oracle环境配置了2个IP。 【发现】: 当使用PL/SQL客户端连接其中一个IP的oracle时,是可以连接的。 但部署web项目时,使用传统的spring配置与某一个IP相连时,web项目启动失败,报错:数据库SID无效, 【解决方法】:
2016-04-28 12:32:09 2438
转载 MySQL数据库集群搭建
MySQL Cluster简介 MySQL cluster 和 Oracle RAC 完全不同,它采用 无共享架构Shared nothing(shared nothing architecture)。整个集群由管理节点(ndb_mgmd),处理节点(mysqld)和存储节点(ndbd)组 成,不存在一个共享的存储设备。MySQL cluster 主要利用了 NDB 存储引擎来实现,
2016-04-28 11:14:33 891
转载 Oracle查询session连接数和inactive
服务器Oracle数据库出现问题,用不到半天,就会报maxsession(150)的问题,肯定是数据库的会话超过最大数了。 由于服务器跑的是文件传输应用,占用的请求和会话肯定很大,因此用户数不大就已经让oracle的会话数达到最大值。 处理方式不外乎两种:扩大oracle最大session数以及清除inactive会话,当然还有,就是从数据库连接池和程序bug上面下手。 从
2016-04-28 10:28:17 3804
转载 Oracle用户profile属性
--查看profile 内容 select * from dba_profiles where profile='PF_EAGLE';--查看用户的profiles select username,profile from dba_users;--查看是否启用动态资源限制参数 SHOW PARAMETER RESOURCE_LIMIT;--启用限制 ALTE
2016-04-28 10:15:48 2756
转载 oracle trunc 函数处理日期格式
select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual; --显示当前时间2011-12-29 16:24:34select trunc(sysdate,'year') from dual; --截取到年(本年的第一天)2011-1-1select trunc(sysdate,'q') from dual; --
2016-04-28 09:42:44 1890
转载 oracle 查询当前占用cpu及时间最长的sql语句
SELECTA.USERNAME, A.COMMAND, A.STATUS,A.PROGRAM, A.MACHINE, A.CLIENT_IDENTIFIER,B.SQL_TEXT,B.CPU_TIME,B.SHARABLE_MEM,ROUND((B.DISK_READS + B.BUFFER_GETS)/B.EXECUTIONS)AS RESOURCE_COSTF
2016-04-27 17:31:38 6238
转载 Oracle密码过期the password has expired
调试Web项目的时候出现异常:[java] view plaincopyprint?java.sql.SQLException: ORA-28001: the password has expired 网上查了一下,是Oracle11g密码过期的原因连接Oracle,以Oracle用户登陆,输入以下命令[sql] view plaincop
2016-04-27 16:53:26 481
转载 使用Oracle的Job+Procedure实现数据的定时迁移备份
--创建数据迁移的日志表,记录自动数据迁移的执行时间create table mc_movedata_log(id varchar2(50) default sys_guid(),tb_name varchar2(50) not null,last_op_time date null);以下是对mc_msg_store表进行每天(凌晨4:30)轮询数据迁移的步骤。1.--创
2016-04-27 16:42:37 1519
转载 Oracle实现定时执行存储过程
一:简单测试job的创建过程案例: 1,先创建一张JOB_TEST表,字段为a 日期格式SQL> create table JOB_TEST(a date);Table createdSQL> commit;Commit complete2,创建一个存储过程 bb 作用是往pig表中插入数据SQL> create or replace procedure JOB_P
2016-04-27 16:29:54 10380
转载 oracle日期时间型timestamp相关转换
1、获取系统时间的语句(ssxff6获取小数点后面六位)select sysdate,systimestamp,to_char(systimestamp, 'yyyymmdd hh24:mi:ssxff6'), to_char(systimestamp, 'yyyymmdd hh24:mi:ss.ff6') from dual; 2、字符型转成timestamp selec
2016-04-27 16:04:50 27949 1
转载 Oracle kill inactive 线程
[sql] view plain copy print?CREATE OR REPLACE PROCEDURE "KILL_SESSION" AS v_sid number; v_serial number; killer varchar2(1000); CURSOR cursor_se
2016-04-27 15:25:53 890
转载 数据库之排他(exclusive)锁和共享(shared)锁
锁跟事务是联系在一起的,锁的生命周期是事务开始到事务结束(不管是提交还是回滚都是结束)。 所以,讲到锁就不能回避事务而单单去讲锁的含义。但我们还是先讲例子再讲锁的定义.首先,根据锁类型划分有排他(exclusive)锁和共享(shared)锁。 下面举例: 通过DML语句对一张表的某一行数据进行修改,一个事务开始,背后的步骤是: 1.对这张表加一个共享锁。这么
2016-04-27 15:04:16 4952
转载 log4j自定义不同日志文件及动态配置路径
1. log4j输出多个自定义日志文件 log4j的强大功能无可置疑,但实际应用中免不了遇到某个功能需要输出独立的日志文件的情况,怎样才能把所需的内容从原有日志中分离,形成单独的日志文件呢?其实只要在现有的log4j基础上稍加配置即可轻松实现这一功能。 先看一个常见的log4j.properties文件,它是在控制台和myweb.log文件中记录日志: log4j.ro
2016-04-27 14:34:57 6047
转载 log4j输出日志级别控制
我们知道:log4j.logger.XX cover ==> log4j.rootLoggerlog4j.appender.XX.Threshold决定了最低接收级别也就是说rootLogger首先决定所有log的输出级别,而log4j.logger.XX是对XX路径下的jar包的输出级别的修改,直接覆盖rootLogger但是对于不同的输出口,他们的接收级别是不同的。
2016-04-27 14:18:21 16023
转载 java日志commons-logging/log4j/slf4j/logBack需要知道的几件事
如果对于commons-loging、log4j、slf4j、LogBack等都已经非常清楚了,可以忽略本文。几次解决日志冲突问题时对这几个概念的简单总结,希望对这块基础没有理解透的同学能有所帮助,当然如果对这块有更深刻理解的同学,也贡献出自己的知识和见解。一、 概念Commons-logging:apache最早提供的日志的门面接口。避免和具体的日志方案直接耦合。类似于JD
2016-04-27 14:10:33 668
原创 Log4j配置与使用
Log4j实在是很熟悉,几乎所有的Java项目都用它啊。但是我确一直没有搞明白。终于有一天我受不了了,定下心去看了一把文档,才两个小时,我终于搞明白了。一般情况下Log4j总是和Apache Commons-logging一起用的,我也就一起介绍吧。多了个东西不是更麻烦,而是更简单! 1、Log4j的思想Log4j真的很简单,简单到令人发指的地步。不是要记录日志吗?那就给你一个Lo
2016-04-27 13:48:32 669
转载 jquery图片切换插件-NivoSlider.js
Nivoslider是一款基于jQuery的,能实现多种切换效果的图片切换插件。Nivoslider提供了11种切换效果,支持多种参数配置和方法函数调用,使用简单,是一款非常理想的图片切换插件。 XHTML id="slider" class="nivoSlider"> src="images/s1.jpg" alt="" title="好漂亮的狗狗..."
2016-04-27 11:29:34 2883
翻译 jquery插件开发及 jquery自定义函数
jQuery插件的开发包括两种:一种是类级别的插件开发,即给jQuery添加新的全局函数,相当于给jQuery类本身添加方法。jQuery的全局函数就是属于jQuery命名空间的函数,另一种是对象级别的插件开发,即给jQuery对象添加方法。下面就两种函数的开发做详细的说明。1、类级别的插件开发类级别的插件开发最直接的理解就是给jQuery类添加类方法,可以理解为添加静态方法。典型的例
2016-04-27 10:56:58 4645
Hibernate_Session_Transaction
2013-03-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人