04 2011 档案
java.lang.OutOfMemoryError: Java heap space解决方法
摘要:引起java.lang.OutOfMemoryError: Java heap space异常,可能是由JAVA的堆栈设置太小的原因根据网上的答案大致有以下两种解决方法:1、在D:/apache-tomcat-6.0.18/bin/catalina.bat最前面加入:set JAVA_OPTS=-Xms384m -Xmx384m注意:只有startup.bat启动tomcat,设置才能生效,如果利用windows的系统服务启动tomcat服务,上面的设置就不生效了, 就是说set JAVA_OPTS=-Xms384m -Xmx384m没起作用 2、在Eclilpse中修改启动参数,在VM ar 阅读全文
posted @ 2011-04-27 10:44 Ruthless 阅读(193596) 评论(4) 推荐(3) 编辑
文件操作工具类
摘要:文件操作工具类package com.ptn.utils;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.BufferedReader;import java.io.ByteArrayOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.FileReader;import java.io.FileWrite 阅读全文
posted @ 2011-04-21 10:13 Ruthless 阅读(6394) 评论(7) 推荐(3) 编辑
设计中最常用的CSS选择器
摘要:一些新手朋友对选择器一知半解,不知道在什么情况下运用什么样的选择器,这是一个比较头疼的问题,针对新手朋友,对CSS选择器作一些简单的说明,希望能对大家的学习工作有一定的帮助。 准确而简洁的运用CSS选择器会达到非常好的效果。我们不必通篇给每一个元素定义类(class)或ID,通过合适的组织,可以用最简单的方法实现同样的效果。在实际工作中,最常用的选择器有以下五类: 一、标签选择器: 顾名思议,标签选择器是直接将HTML标签作为选择器,如p、h1、dl、strong等HTML标签。如: p { font:12px;} em { color:blue;} dl { float:left; marg 阅读全文
posted @ 2011-04-19 21:02 Ruthless 阅读(1491) 评论(0) 推荐(1) 编辑
oracle数据库函数和存储过程的包
摘要:1、创建包(package)函数:create or replace package 包名 as 函数注意:as后可加多个函数 存储过程:Create or replace package 包名 as 存储过程注意:as后可加多个存储过程2、包的调用函数的包调用:call 包名.函数名; 存储过程的包调用:call 包名.存储过程名; 阅读全文
posted @ 2011-04-18 16:56 Ruthless 阅读(1431) 评论(0) 推荐(0) 编辑
oracle存储过程的事务处理
摘要:1、事务用于确保数据的一致性,由一组相关的DML语句组成,该组DML语句所执行的操作要么全部确认,要么全部取消。2、当执行事务操作(DML)时,Oracle会在被作用的表上加锁,以防止其他用户改变表结构,同时也会在被作用的行上加行锁,以防止其他事务在相应行上执行DML操作。3、当执行事务提交或事务回滚时,Oracle会确认事务变化或回滚事务、结束事务、删除保存点、释放锁。4、提交事务(COMMIT)确认事务变化,结束当前事务、删除保存点,释放锁,使得当前事务中所有未决的数据永久改变。5、保存点(SAVEPOINT)在当前事务中,标记事务的保存点。6、回滚事务(ROLLBACK)回滚整个事务,删 阅读全文
posted @ 2011-04-18 16:31 Ruthless 阅读(32170) 评论(2) 推荐(1) 编辑
Oracle存储过程的异常处理
摘要:1、为了提高存储过程的健壮性,避免运行错误,当建立存储过程时应包含异常处理部分。2、异常(EXCEPTION)是一种PL/SQL标识符,包括预定义异常、非预定义异常和自定义异常;3、预定义异常是指由PL/SQL提供的系统异常;非预定义异常用于处理与预定义异常无关的Oracle错误(如完整性约束等);自定义异常用于处理与Oracle错误的其他异常情况。4、RAISE_APPLICATION_ERROR用于自定义错误消息,并且消息号必须在-20000~-20999之间 命名的系统异常 产生原因 access_into_null 未定义对象 case_not_found case中若未包含相应的wh 阅读全文
posted @ 2011-04-18 15:19 Ruthless 阅读(50758) 评论(0) 推荐(6) 编辑
JAVA通过调用数据库函数调用存储过程
摘要:下面将举一个通过数据库函数来调用存储过程:创建数据库函数存储过程CREATE OR REPLACE FUNCTION stu_proc ( v_id IN NUMBER) RETURN VARCHAR2 IS v_name VARCHAR2(20);BEGIN SELECT o.sname INTO v_name FROM student o WHERE o.id=v_id; RETURN v_name;EXCEPTION WHEN OTHERS THEN RETURN '数据未找到';END; JAVA通过调用数据库函数调用存储过程package com.ljq.test;i 阅读全文
posted @ 2011-04-17 21:53 Ruthless 阅读(4499) 评论(1) 推荐(1) 编辑
JAVA调用增删改的存储过程
摘要:1、创建添加存储过程CREATE OR REPLACE PROCEDURE stu_proc(v_id IN NUMBER, v_name IN VARCHAR2, v_age IN NUMBER) ASBEGIN INSERT INTO student(id, sname, age) values (v_id, v_name, v_age); commit;END; JAVA调用添加存储过程package com.ljq.test;import java.sql.CallableStatement;import java.sql.Connection;import java.sql.SQLE 阅读全文
posted @ 2011-04-17 20:06 Ruthless 阅读(3554) 评论(0) 推荐(1) 编辑
JAVA调用数据库存储过程
摘要:下面将举出JAVA对ORACLE数据库存储过程的调用 ConnUtils连接工具类:用来获取连接、释放资源package com.ljq.test;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;/** * 连接工具类 * * ConnUtils类声明为final类说明此类不可以被继承 * * @author jiqinlin * */public final clas 阅读全文
posted @ 2011-04-17 17:47 Ruthless 阅读(26812) 评论(0) 推荐(2) 编辑
oracle函数调用存储过程
摘要:1、无参数存储过程的调用--创建无参存储过程CREATE OR REPLACE FUNCTION stu_proc RETURN VARCHAR2 IS --声明语句段 v_name varchar2(20);BEGIN --执行语句段 SELECT o.sname INTO v_name FROM student o where o.id=1; RETURN v_name;END;--调用无参存储过程DECLARE BEGIN DBMS_OUTPUT.put_line('在PL/SQL中打印的结果:'||stu_proc);END; 2、入参存储过程的调用--创建入参存储过程 阅读全文
posted @ 2011-04-17 13:56 Ruthless 阅读(20335) 评论(0) 推荐(1) 编辑
带有无参数的存储过程
摘要:SQL中调用存储过程语句:callprocedure_name();注:调用时”()”是不可少的,无论是有参数还是无参数. 定义对数据库存储过程的调用时1、无参数存储过程:{callprocedure_name}2、仅有输入参数的存储过程:{callprocedure_name(?,?...)}。这里?表示输入参数,创建存储过程时用in表示输入参数3、仅有输出参数的存储过程:{callprocedure_name(?,?...)}。这里的?表示输出参数,创建存储过程时用out表示输出参数4、既有输入参数又有输出参数的存储过程{callprocedure_name(?,?...)}。这里的?有表 阅读全文
posted @ 2011-04-16 21:04 Ruthless 阅读(12884) 评论(0) 推荐(1) 编辑
oracle存储过程的基本语法
摘要:1、存储过程的语法结构:CREATE OR REPLACE PROCEDURE 过程名 AS 声明语句段;BEGIN 执行语句段;EXCEPTION 异常处理语句段;END; 2、SELECT INTO STATEMENT将SELECT查询的结果存入到变量中,可以同时将多个列存储多个变量中,必须有一条记录,否则抛出异常(如果没有记录抛出NO_DATA_FOUND)例如:BEGIN SELECT col1,col2 INTO 变量1,变量2 FROM typestruct where xxx;EXCEPTION WHEN NO_DATA_FOUND THEN xxxx;END; 3、IF 判断I 阅读全文
posted @ 2011-04-16 19:18 Ruthless 阅读(1291) 评论(0) 推荐(0) 编辑
在windows环境下安装和启动Maqetta
摘要:Maqetta简介 4月12日,IBM公司在 IBM Impact 2011 上面发布了 Maqetta,一个创建桌面和移动用户界面的HTML5设计编辑工具,并同时宣布将项目捐助给开源机构Dojo基金会。Maqetta提供WYSIWYG可视化HTML5用户界面设计功能,仅需简单的拖曳操作,支持桌面和移动用户界面。 Maqetta应用本身用HTML5/Ajax编写,因此运行在浏览器中无需请求额外的插件或下载。用户可以下载源码,并安装在自己的服务器上,并可自定义源码来满足自己的需求,再回馈到开源项目。 Maqetta功能●WYSIWYG可视化页面编辑 ●拖曳式移动UI设计 ●设计或源码浏览同步编辑 阅读全文
posted @ 2011-04-15 15:09 Ruthless 阅读(8581) 评论(1) 推荐(1) 编辑
多线程模拟实现生产者/消费者模型
摘要:题目如下:在生产者/消费者模型中,生产者Producer负责生产数据,而消费者Consumer负责使用数据。多个生产者线程会在同一时间运行,生产数据,并放到内存中一个共享的区域。期间,多个消费者线程读取内存共享区,消费里面的数据。 分析在下面Java应用程序中,生产者线程向一个线程安全的堆栈缓冲区中写(PUSH)数据,消费者从该堆栈缓冲区中读(POP)数据,这样,这个程序中同时运行的两个线程共享同一个堆栈缓冲区资源。 类Producer是生产者模型,其中的run方法中定义了生产者线程所做的操作,循环调用push()方法,将生产的100个字母送入堆栈中,每次执行完push操作后,调用sleep方 阅读全文
posted @ 2011-04-15 10:27 Ruthless 阅读(21151) 评论(2) 推荐(2) 编辑
多线程案例
摘要:1、写两个线程,一个线程打印1-52,另一个线程打印字母A-Z。打印顺序为12A34B56C……5152Z。学习线程之间的通信协调关系。代码线程类Thread01package com.ljq.test;public class Thread01 implements Runnable { private Object obj; public Thread01(Object obj) { this.obj = obj; } public void run() { synchronized (obj) { for (int i = 1; i <= 26; i++) { System.out 阅读全文
posted @ 2011-04-14 17:03 Ruthless 阅读(2597) 评论(0) 推荐(1) 编辑
oracle索引浅谈
摘要:适当的使用索引可以提高数据检索速度,可以给经常需要进行查询的字段创建索引 oracle索引分为3种: normal: 可重复数据,普通索引unique: 数据不能重复,唯一索引bitmap: 位图索引创建索引的标准语法: CREATE INDEX 索引名 ON 表名 (列名) TABLESPACE 表空间名; 例如:CREATE INDEX idx_of_imsi ON uim_auth_file(imsi) TABLESPACE users; 创建唯一索引: CREATE unique INDEX 索引名 ON 表名 (列名) TABLESPACE 表空间名; 例如:CREATE UNIQU 阅读全文
posted @ 2011-04-13 16:53 Ruthless 阅读(1890) 评论(1) 推荐(1) 编辑
ORACLE多表查询优化
摘要:ORACLE有个高速缓冲的概念,这个高速缓冲就是存放执行过的SQL语句,那oracle在执行sql语句的时候要做很多工作,例如解析sql语句,估算索引利用率,绑定变量,读取数据块等等这些操作。假设高速缓冲里已经存储了执行过的sql语句,那就直接匹配执行了,少了步骤,自然就快了,但是经过测试会发现高速缓冲只对简单的表起作用,多表的情况完全没有效果,例如在查询单表的时候那叫一个快,但是假设连接多个表,就龟速了。最重要一点,ORACLE的高速缓冲是全字符匹配的,什么意思呢,看下面三个select--No.1select * from tableA;--No.2select * From tableA 阅读全文
posted @ 2011-04-13 14:20 Ruthless 阅读(26665) 评论(6) 推荐(8) 编辑
oracle 查找或删除重复记录的语句
摘要:--oracle查找重复记录select * from tableA a where a.rowid>=(select min(rowid) from tableB b where a.column=b.column) --oracle删除重复记录delete from tableA a where a.rowid>=(select min(rowid) from tableB b where a.column=b.column) 阅读全文
posted @ 2011-04-13 11:24 Ruthless 阅读(999) 评论(1) 推荐(1) 编辑
oracle多表联合查询,统计查询,组函数,order by,having,子查询,集合运算
摘要:一、多表联合查询 通过连接可以建立多表查询,多表查询的数据可以来自多个表,但是表之间必须有适当的连接条件。为了从多张表中查询,必须识别连接多张表的公共列。一般是在WHERE子句中用比较运算符指明连接的条件。 两个表连接有四种连接方式: * 相等连接 * 不等连接(看作单表查询) * 外连接* 自连接(自关联) 1.相等连接 通过两个表具有相同意义的列,可以建立相等连接条件。使用相等连接进行两个表的查询时,只有连接列上在两个表中都出现且值相等的行才会出现在查询结果中 显示雇员名称和所在部门的编号和名称。 执行以下查询: SELECT a.ename, b.id, b.dname FROM emp 阅读全文
posted @ 2011-04-13 10:45 Ruthless 阅读(17600) 评论(0) 推荐(1) 编辑
多线程死锁问题
摘要:前天俺们谈到了加锁(线程同步),但是在使用加锁的同时又会带来一个问题,就是死锁。什么叫死锁?所谓死锁: 是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。发生死锁的原因一般是两个对象的锁相互等待造成的。那么为什么会产生死锁呢?1.因为系统资源不足。2.进程运行推进的顺序不合适。 3.资源分配不当。 学过操作系统的朋友都知道:产生死锁的条件有四个:1.互斥条件:所谓互斥就是进程在某一时间内独占资源。2.请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。3.不剥夺条件:进程已获得资源,在末使用完之前,不能强行剥夺。4. 阅读全文
posted @ 2011-04-11 23:21 Ruthless 阅读(37143) 评论(7) 推荐(2) 编辑
中断线程
摘要:本文转自http://jiangzhengjun.iteye.com/blog/652269中断线程线程的thread.interrupt()方法是中断线程,将会设置该线程为中断状态,即设置为true。线程中断后的结果是死亡、还是等待新的任务或是继续运行至下一步,取决于这个程序本身。线程会不时地检测这个中断标识位,以判断线程是否应该被中断(中断标识值是否为true)。它并不像stop方法那样会中断一个正在运行的线程。判断线程是否被中断判断某个线程是否已被中断,请使用Thread.currentThread().isInterrupted()方法(因为它将线程中断标识位设置为true后,不会立刻 阅读全文
posted @ 2011-04-11 17:04 Ruthless 阅读(14683) 评论(3) 推荐(3) 编辑
分析两种实现多线程的方式:Thread类和Runnable接口
摘要:写一个程序,模拟4个售票窗口共同卖100张火车票的程序。 1:使用继承Thread类方式实现()。2:使用实现Runnable接口方式实现()。 第一种方式(没有共享数据,售票窗口各自买100张票,那4个售票窗口就有400张票) package com.ljq.test;/** * 使用Thread 阅读全文
posted @ 2011-04-10 20:41 Ruthless 阅读(14062) 评论(4) 推荐(2) 编辑
Java线程中run和start方法的区别
摘要:Thread类中run()和start()方法的区别如下:run()方法:在本线程内调用该Runnable对象的run()方法,可以重复多次调用;start()方法:启动一个线程,调用该Runnable对象的run()方法,不能多次启动一个线程; package com.ljq.test;public class ThreadTest { /** * 观察直接调用run()和用start()启动一个线程的差别 * * @param args * @throws Exception */ public static void main(String[] args){ Thread thread= 阅读全文
posted @ 2011-04-10 13:20 Ruthless 阅读(62218) 评论(3) 推荐(3) 编辑
Java多线程入门
摘要:以下内容转自http://blog.sina.com.cn/guoyalun如何创建和理解线程 曾经在学习操作系统的时候,进程是一个重点内容,线程也学习过,但是没有什么深刻的印象。在Java多线程的学习中对线程有了一个全面而深刻的理解。一个进程可以包含一个或多个线程,一个线程就是一个程序内部的一条执行线索。 创建多线程有两种方法:继承Thread类和实现Runnable接口。通过调用继承thread对象的start()方法就可以调用该类中的run()方法。如果想要将一段代码在一个新的线程上运行时,该代码就应该位于一个类的run函数中,并且run()函数所在的类是Tread类的子类。启动一个新的 阅读全文
posted @ 2011-04-08 16:37 Ruthless 阅读(5974) 评论(2) 推荐(1) 编辑