- 博客(34)
- 资源 (10)
- 收藏
- 关注
原创 Oracle创建自增字段sequence
在大型数据库系统中,有两个很重要作用的功能,那就是存储过程和触发器。在数据库系统中无论是存储过程还是触发器,都是通过SQL 语句和控制流程语句的集合来完成的。相对来说,数据库系统中的触发器也是一种存储过程。存储过程在数据库中运算时自动生成各种执行方式,因此,大大提高了对其运行时的执行速度。在大型数据库系统如Oracle、SQL Server中都不仅提供了用户自定义存储过程的功能,同时也提供了许
2013-03-15 15:07:07
561
原创 Oracle存储过程创建及调用
在大型数据库系统中,有两个很重要作用的功能,那就是存储过程和触发器。在数据库系统中无论是存储过程还是触发器,都是通过SQL 语句和控制流程语句的集合来完成的。相对来说,数据库系统中的触发器也是一种存储过程。存储过程在数据库中运算时自动生成各种执行方式,因此,大大提高了对其运行时的执行速度。在大型数据库系统如Oracle、SQL Server中都不仅提供了用户自定义存储过程的功能,同时也提供了许
2013-03-15 14:58:09
440
原创 oracle中的exists 和not exists 用法详解
有两个简单例子,以说明 “exists”和“in”的效率问题1) select * from T1 where exists(select 1 from T2 where T1.a=T2.a) ; T1数据量小而T2数据量非常大时,T12) select * from T1 where T1.a in (select T2.a from T2) ; T
2013-03-13 15:49:40
530
原创 Java枚举的七种常见用法
DK1.5引入了新的类型——枚举。在 Java 中它虽然算个“小”功能,却给我的开发带来了“大”方便。用法一:常量在JDK1.5 之前,我们定义常量都是: public static fianl.... 。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。public enum Color { RED, GREEN, BLANK,
2013-03-11 11:42:33
319
原创 Hibernate原理与应用
1、初始化代码(只做一次) Configuration cfg = newConfiguration(); cfg.configure("config.cfg.xml"); 也可以通过cfg.setProperty设置属性。 SessionFactory sessionFactory = cfg.buildSessionFactory() 2、模板
2013-03-11 11:30:50
476
原创 Hibernate初学之优缺点
首先比较一下JDBC的优缺点: JDBC的优点 直接底层操作,提供了很简单、便捷的访问数据库的方法,跨平台性比较强。灵活性比较强,可以写很复杂的SQL语句。 JDBC的缺点 1.因为JAVA是面向对象的,JDBC没有做到使数据能够面向对象的编程,使程序员的思考仍停留在SQL语句上。 2.操作比较繁琐,很多代码需要重复写很多次。 3.如果遇
2013-03-11 11:21:23
472
原创 JAVA注解示例
Annotation(注解)是JDK5.0及以后版本引入的。它可以用于创建文档,跟踪代码中的依赖性,甚至执行基本编译时检查。注解是以'@注解名'在代码中存在的,根据注解参数的个数,我们可以将注解分为:标记注解、单值注解、完整注解三类。它们都不会直接影响到程序的语义,只是作为注解(标识)存在,我们可以通过反射机制编程实现对这些元数据的访问。另外,你可以在编译时选择代码里的注解是否只存在于源代码级,或
2013-03-11 09:47:08
459
原创 java 实现最小二叉堆排序
写在前面: 一觉醒来,我就突然有灵感了...... 最小二叉堆定义: 二叉堆是完全二元树或者是近似完全二元树,最小二叉堆是父结点的键值总是小于或等于任何一个子节点的键值的堆堆。 存储: 二叉堆一般用数组来表示。 根节点在数组中的位置是0,第n个位置的子节点分别在2n+1和 2n+2; 位置k的叶子的父节点位置为(k-1)/2; 实现: Java
2013-03-11 08:56:56
880
原创 Oracle跨数据库查询并插入
Oracle跨数据库查询并插入 工作中需要从一个数据库中的表GIS_WEICHAI_DATA_1S中的数据导入到另个一数据库的表GIS_WEICHAI_DATA_1S中,数据库服务器都是远程的!我的实现方法是在本地使用PL/SQL操作两个远程服务器,实现方式如下: 1. 为你需要操作的远程数据库服务器建立本地服务名: 在本地数据库安装文件中,找到$ORACLE_HOME/n
2013-03-07 12:49:52
461
原创 Oracle中表的四种连接方式讲解
表的连接是指在一个SQL语句中通过表与表之间的关连,从一个或多个表中检索相关的数据,大体上表与表之间的连接主要可分四种,分别为相等连接,外连接,不等连接和自连接,本文将主要从以下几个典型的例子来分析Oracle表的四种不同连接方式: 1. 相等连接 通过两个表具有相同意义的列,可以建立相等连接条件。 只有连接列上在两个表中都出现且值相等的行才会出现在查询结果中。 例 查询员
2013-03-07 11:50:38
517
原创 oracle复杂查询(学生成绩相关)
设有一个关系数据库,有三个基本表,表结构如下: 表一、student 学号stu_id 姓名name 年龄age 性别gender 系号depart_id 表二、sc 学号stu_id 课程号course_code 成绩score 表三、course 课程号course_code 课程名course_name 学时数 course
2013-03-07 11:44:00
1662
原创 Java序列化的作用
最近在阅读Core J2EE Patterns 的时候发现例子里用于在各个层次里进行传输的TO(Data Transfer Object)都实现了java.io.Serializable接口,看到这些偶突然感到茅塞顿开~困扰了很久的关于Serializable的疑问渐渐解开了,查找相关资料并总结如下: 序列化是什么: 序列化就是将一个对象的状态(各个属性量)保存起来,然后在适当的时候再
2013-03-07 11:19:12
358
原创 tomcat启动不了
放TOMCAT的服务端许多人使用 本来启动一直正常 某日突然 startup启动TOMCAT一闪而过 通过cmd启动矣是如此,启动失败 最后通过改shutdown port解决问题 改成了8015 其他网上找到的问题及解决方案: 1. 重要网站 2. Tomcat服务器的配置文件(server.xml) E:\tomcat6\co
2013-03-07 11:17:49
785
原创 谈谈Java加密技术(六)
接下来我们介绍DSA数字签名,非对称加密的另一种实现。 DSA DSA-Digital Signature Algorithm 是Schnorr和ElGamal签名算法的变种,被美国NIST作为DSS(DigitalSignature Standard)。简单的说,这是一种更高级的验证方式,用作数字签名。不单单只有公钥、私钥,还有数字签名。私钥加密生成数字签名,公钥验证数据及签
2013-03-06 13:41:20
676
原创 谈谈Java加密技术(五)
DH Diffie-Hellman算法(D-H算法),密钥一致协议。是由公开密钥密码体制的奠基人Diffie和Hellman所提出的一种思想。简单的说就是允许两名用户在公开媒体上交换信息以生成"一致"的、可以共享的密钥。换句话说,就是由甲方产出一对密钥(公钥、私钥),乙方依照甲方公钥产生乙方密钥对(公钥、私钥)。以此为基线,作为数据传输保密基础,同时双方使用同一种对称加密算法构建本地密钥
2013-03-06 13:39:19
523
原创 漫谈Java加密技术(四)
RSA 这种算法1978年就出现了,它是第一个既能用于数据加密也能用于数字签名的算法。它易于理解和操作,也很流行。算法的名字以发明者的名字命名:Ron Rivest, AdiShamir 和Leonard Adleman.这种加密算法的特点主要是密钥的变化,上文我们看到DES只有一个密钥。相当于只有一把钥匙,如果这把钥匙丢了,数据也就不安全了。RSA同时有两把钥匙,公钥与私钥。同时支持数
2013-03-06 13:37:07
1082
原创 漫谈Java加密技术(三)
除了DES,我们还知道有DESede(TripleDES,就是3DES)、AES、Blowfish、RC2、RC4(ARCFOUR)等多种对称加密方式,其实现方式大同小异,这里介绍对称加密的另一个算法——PBE PBE PBE——Password-based encryption(基于密码加密)。其特点在于口令由用户自己掌管,不借助任何物理媒体;采用随机数(这里我们叫做盐)杂
2013-03-06 13:31:08
453
原创 漫谈Java加密技术(二)
接下来我们介绍对称加密算法,最常用的莫过于DES数据加密算法。 DES DES-Data Encryption Standard,即数据加密算法。是IBM公司于1975年研究成功并公开发表的。DES算法的入口参数有三个:Key、Data、Mode.其中Key为8个字节共64位,是DES算法的工作密钥;Data也为8个字节64位,是要被加密或被解密的数据;Mode为DES的工作
2013-03-06 13:27:17
476
原创 漫谈Java加密技术(一)
加密解密,曾经是我一个毕业设计的重要组件。在工作了多年以后回想当时那个加密、解密算法,实在是太单纯了。 言归正传,这里我们主要描述Java已经实现的一些加密解密算法,最后介绍数字证书。 如基本的单向加密算法: ● BASE64 严格地说,属于编码格式,而非加密算法 ● MD5(Message Digest algorithm 5,信息摘要算法)
2013-03-06 13:24:23
418
原创 Java免受逆向工程攻击的措施
针对Java易遭受逆向工程攻击的原因,今天我将向大家介绍目前市场上关于防止Java免受逆向工程攻击的集中措施,同时指出这几种措施在防范逆向工程攻击的时候存在的不足之处。 首先是板载措施,它并不足以防止逆向工程。大多数虚拟机都包含一些使逆向工程复杂化的功能。Java允许用户在JAR存档中提供的每个类上设置一个数字证书,以确保原始文件没有被更改。虽然这样做并无害处,但该功能相当容易清除,并且仅针
2013-03-06 13:20:50
622
原创 Hibernate优化方法
Hibernate优化方法一:批量修改和删除 在Hibernate 2中,如果需要对任何数据进行修改和删除操作,都需要先执行查询操作,在得到要修改或者删除的数据后,再对该数据进行相应的操作处理。在数据量少的情况下采用这种处理方式没有问题,但需要处理大量数据的时候就可能存在以下的问题: ◆占用大量的内存。 ◆需要多次执行update/delete语句,而每次执行只能处理一条数据。 以
2013-03-06 13:17:02
495
原创 多线程中使用Java集合类
Java集合类中,某个线程在 Collection 上进行迭代时,通常不允许另一个线性修改该 Collection。通常在这些情况下,迭代的结果是不确定的。如果检测到这种行为,一些迭代器实现(包括 JRE 提供的所有通用 collection 实现)可能选择抛出此异常。执行该操作的迭代器称为快速失败 迭代器,因为迭代器很快就完全失败,而不会冒着在将来某个时间任意发生不确定行为的风险。 因
2013-03-06 13:10:03
492
原创 java的volatile与多线程
Java语言规范中指出:为了获得最佳速度,允许线程保存共享成员变量的私有拷贝,而且只当线程进入或者离开同步代码块时才与共享成员变量的原始值对比。 Volatile修饰的成员变量在每次被线程访问时,都强迫从共享内存中重读该成员变量的值。而且,当成员变量发生变化时,强迫线程将变化值回写到共享内存。这样在任何时刻,两个不同的线程总是看到某个成员变量的同一个值。 下面是个例子:恢复注释的任何一
2013-03-06 13:05:22
384
原创 Java设置与读取Cookie属性 央邦0首付,低押金先就业后付款
除了对数据的保存和读取,对Cookie的操作还包括设置Cookie的有关属性。 以设置变量的有效周期为例。 语法:Cookie 变量名称.setMaxAge(有效周期); 有效周期的时间以秒为单位,时间设置越大,表示Cookie对象的有效时间越长,如果把有效周期设置为0,则表示此Cookie对象存放在浏览器后将立即失效,如果把有效周期设置为任意一个负数,则当浏览器关闭后,此Coo
2013-03-06 13:03:06
476
原创 巧用C#做中间语言 实现Java调用.net DLL的方法
环境与工具: ◆.net framework 3.5 C# ◆java jdk1.5, Tomcat 5.5 ◆jacob-1.15-M3 实现例子: 一、C# 制作Com组件 新建一个Class 项目,取名TestCom 代码 1.using System; 2.using System.Collections.Generic;
2013-03-06 13:01:50
633
原创 Java多线程中所有方法的解析
一、run()和start() 这两个方法应该都比较熟悉,把需要并行处理的代码放在run()方法中,start()方法启动线程将自动调用 run()方法,这是由Java的内存机制规定的。并且run()方法必须是public访问权限,返回值类型为void。 二、关键字Synchronized 这个关键字用于保护共享数据,当然前提是要分清哪些数据是共享数据。每个对象都有一个锁标志,当
2013-03-06 12:59:26
450
原创 java创建对象的四种方法
Java中创建对象的四种方式 (1) 用new语句创建对象,这是最常见的创建对象的方法。 (2) 运用反射手段,调用java.lang.Class或者java.lang.reflect.Constructor类的newInstance()实例方法。 (3) 调用对象的clone()方法。 (4) 运用反序列化手段,调用java.io.ObjectInputStream对象的
2013-03-06 12:55:07
452
原创 缓冲器(Buffer)的细节
从上面继承图层来看,了解Buffer很重要。 Buffer=数据+四个索引 正是四个索引才是的数据可以高效访问,这四个索引是:mark(标记),position(位置),limit(界限),capacity(容量)。 不变式 标记、位置、限制和容量值遵守以下不变式: 0 以下是设置和复位索引以及查询的方法: capacity() :返回此缓冲区的容量。
2013-03-06 12:52:38
730
原创 JUnit测试框架简介
JUnit是由 Erich Gamma 和 Kent Beck 编写的一个回归测试框架(regression testing framework)。Junit测试是程序员测试,即所谓白盒测试,因为程序员知道被测试的软件如何(How)完成功能和完成什么样(What)的功能。Junit是一套框架,继承TestCase类,就可以用Junit进行自动测试了。 junit特性: JUnit是一个
2013-03-06 12:49:40
613
原创 使用java JDBC方式操作oracle blob类型数据
[java] /** * * @param query 表示sql语句 * @param idForQuery 标识主键 * @param value 表示需要写入的字符串数据 * @throws Exception */ public static void writeBlobGBKBinaryStream(String query, in
2013-03-06 11:53:25
516
原创 Java实现HTTP协议的请求
做web开发有一段时间了,但对于HTTP协议却没有深入的理解学习过。做了一小小的测试终于彻底明白了HTTP协议。自己的服务器上已经安装了Apache服务并且已经启动。Apache服务监听在80端口。 import java.io.*; import java.net.*; public class HttpRequest { public static void ma
2013-03-06 11:50:22
472
原创 Java实现通用组合算法
Java实现通用组合算法,存在一个类似{31311133,33113330}这样的集合,经过8取5组合,其他位置用非字母数字字符替代,比如使用*号,得到类似{3***1133,***13330,... ...}这样的集合; 现在有这样的需求: 存在一个类似{31311133,33113330}这样的集合,经过8取5组合,其他位置用非字母数字字符替代,比如使用*号,得到类似{3***11
2013-03-06 11:37:32
417
原创 学习oracle的6条经验
1、如果有一定的数据库基础,知道SQL是怎么回事,即使写不出来简单的SQL,但可以看懂它们,你就可以跳到2。否则请先看一下数据库基础和SQL语言,不需要很深,更不需要去记忆那些复杂的SQL命令,这些可以留在以后边应用边学习、记忆。2、要想学好ORACLE,首先要学习ORACLE的体系结构,现在你不需要深入理解它们,但要分清几个关键的概念:instance&database, memory st
2013-03-06 11:29:55
415
原创 认识class类 JAVA的反射机制
<br />在正常情况下,必须知道一个类的完整路径之后才可以实例化对象<br />但是在Java中也通话通过一个对象来找到其所在的类的信息,那么这实际上是Class类的功能。<br /><br />
2011-05-06 11:32:00
350
Spring框架的设计理念与设计模式
2013-03-07
JAVASCRIPT学习笔记9-表格排序
2013-03-06
NoSQL数据库学习教程 (1)
2013-03-06
extjs 入门 经典介绍 详细分析 深入浅出
2010-12-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人