- 浏览: 45439 次
- 性别:
- 来自: 深圳
-
最新评论
文章列表
关于选用何种游标?
显示游标分为:普通游标,参数化游标和游标变量三种。
游标循环策略 :分三种循环:loop,while,for
例子:
create or replace procedure proccycle(p varchar2)
as
cursor c_postype is select pos_type, description from pos_type_tbl where rownum < 6;
v_postype varchar2(20);
v_description varchar2(50);
begin
open c_postype;
if c_posty ...
创建语句:create or replace procedure 存储过程名
存储过程名定义:包括存储过程名和参数列表。参数名和参数类型。参数名不能重复, 参数传递方式:IN, OUT, IN OUT
IN 表示输入参数,按值传递方式。
OUT 表示输出参数,可以理解为按引用传递方式。可以作为存储过程的输出结果,供外部调用者使用。
IN OUT 即可作输入参数,也可作输出参数。
变量声明块:紧跟着的as (is )关键字,可以理解为pl/sql的declare关键字,用于声明变量。 变量声明块用于声明该存储过程需要用到的变量,它的作用域为该存储过程。
过程语句块:从begin 关 ...
什么是MVC?
MVC是model-view-control即把一个应用的输入,处理,输出流程按照模型层,视图层,处理层分离。
模型(model):java类。即java Beans。用于业务流程/状态的处理以及业务规则的制定。模型接受视图请求的数据,并返回最终处理结果。是MVC最核心的模块。
视图(view):用jsp技术。代表用户交互界面,一个应用可能有很多个不同的视图。MVC设计模式对于视图的处理仅限于视图上数据的采集和处理,以及用户的请求,而不包括在视图上的业务流程的处理,业务流程的处理交给模型处理。
控制器(control):Servlet技术。从用户接受请求,将模型与视 ...
一、早期JSP Model
1、在早期的web应用程序的开发中,程序语言和HTML混合在一 起。
2、Jsp用来执行业务逻辑的程序代码。
3、HTML负责显示数据。
二、产生的问题
1、HTML代码和java程序强耦合在一起:jsp文件编写者既是网页设计者,又是java开发者。
2、流程逻辑:要理解应用程序的整个流程,必须浏览所有的页。
3、调试困难:HTML标记,java代码,javascript代码都集中在一个网页中,调试变得很困难。
4、强耦合:改变业务逻辑或者数据可能牵涉相关的很多网页。
注意:在这种情况下,提出了MVC设计思想。
三、MVC ...
线程安全:
1、程序中的每一条语句都是原子操作,则是线程安全的。
2、实例变量是在堆中分配的,并不被属于该实例的所有线程共享,只有一个线程独享,是线程安全的。
3、局部变量在堆栈中分配,因为每个线程都有它自己的堆栈空间,所以是线程安全的.
4、静态类不用被实例化,就可直接使用,也不是线程安全的.
5、单线程方式是线程安全的。
线程安全,是指一个方法(method)可以在多线程的环境下安全的有效的访问进程级的数据(这些数据是与其他线程共享的)。事实上,线程安全是个很难达到的目标。
线程安全的核心概念就是同步,它保证多个线程:
同时开始执行,并行运行
不同时访问相同的对象实例 ...
http://he-wen.iteye.com/blog/953408
http://www.iteye.com/topic/684052
http://www.iteye.com/topic/806990
http://www.iteye.com/topic/808550
线程安全无非是要控制多个线程对某个资源的有序访问或修改。
要认识java线程安全,必须了解两个主要的点:java的内存模型,java的线程同步机制。
总结java的内存模型,要解决两个主要的问题:可见性和有序性。我们都知道计算机有高速缓存的存在,处理器并不是每次处理数据都是取内存的。JVM定义了自己的内存模型,屏蔽了底层平台内存管理细节,对于java开发人员,要清楚在jvm内存模型的基础上,如果解决多线程的可见性和有序性。
1、何谓可见性?
多个线程之间是不能互相传递数据通信的,它们之间的沟通只能通过共享变量来进行。
Java内存模型(JMM)规定了jvm有主内存,主内存是多个线程共享的。 ...
Java集合框架——基础接口
http://dl.iteye.com/upload/attachment/608920/25b79360-2a52-3a11-bb3f-a48c42d25d20.jpg
上图中关键的接口有:
Collection Set List Map 还有一个Iterator,还有一个是上图没有的Queue接口,也是继承Collection的。
图中的
1,短虚线,表示接口;
2,长虚线,表示抽象类;
3,实线,表示实现类;
4,加强线,表示重点;(没别的意思,这图不是我自己画的,只能解释一下)
5,虚线加实心箭头,表示当前接口实现了一个指 ...
多线程编程中,最关键、最关心的问题应该就是同步问题,这是一个难点,也是核心。
在Java的多线程程序中,当多个程序竞争同一个资源时,为了防止资源的腐蚀,给第一个访问资源的线程分配一个对象锁,而后来者需要等待这个对象锁的释放。
Java线程的同步,最关心的是共享资源的使用。
先来了解一些有哪些线程的共享资源,从JVM中了解有哪些线程共享的数据是需要进行协调:
1,保存在堆中的实例变量;2,保存在方法区的类变量。
package thread_test;
/**
* 测试扩展Thread类实现的多线程程序
*
* @author ciding
* @ ...
线程可以分为4个状态:
New(新生),
Runnable(可运行):为了方便分析,还可将其分为:Runnable与Running。
blocked(被阻塞),
Dead(死亡)。
1,新生线程:
当你用new操作符创建一个线程时,例如用new Thread(r),线程还没有开始运行,此时线程处于新生状态;在线程运行之前,还有一些簿记工作要做。
2,可运行线程:
(a)Runnable:一旦调用了start方法,就进入到Runnable状态。
(b)Running:在到Runnable后,线程就有可能已经进入到了运行状态;根据操作系统所提供的服务,在抢占式调度的系统中,系统给 ...
package thread_test;
/**
* 测试Runnable类实现的多线程程序
*
* @author ciding
* @createTime Dec 7, 2011 9:38:52 AM
*
*/
public class TestRunnable {
public static void main(String[] args) {
StrRunnable sr1 = new StrRunnable("chenfengbin");
StrR ...
sleep() wait() notify/notifyAll() 的区别
1、sleep()是线程类的方法,sleep() 允许指定以毫秒为单位的一段时间作为参数,它使得线程在指定的时间内进入阻塞状态,不能得到CPU 时间,指定的时间一过,线程重新进入可执行状态。说白了 ,也就是把机会给其他线程,但是监控状态依然保持。重要的一点就是 当调用sleep()方法是 不会 释放对象锁的。
2、 wait() notify/notifyAll()直接隶属于 Object 类,也就是说,所有对象都拥有这一对方法。
wait()方法表示,放弃当前对资源的占有权,进入阻塞状态,并 ...
一、定义线程
创建新执行线程有两种方法:
一种方法是将类声明为 Thread 的子类。该子类应重写 Thread 类的 run 方法。
public class PrimeThread extends Thread {
long minPrime;
PrimeThread(long minPrime) {
this.minPrime = minPrime;
}
public void run() {
// compute primes larger than minP ...
(1)通过建立临时表来实现
SQL>create table temp_emp as (select distinct * from employee)
SQL> truncate table employee; (清空employee表的数据)
SQL> insert into employee select * from temp_emp; (再将临时表里的内容插回来)
( 2)通过唯一rowid实现删除重复记录.在Oracle中,每一条记录都有一个rowid,rowid在整个数据库中是唯一的,rowid确定了每条记录是在Oracle中的哪一个数据文件、块、行上。 ...
truncate,delete,drop的异同点
注意:这里说的delete是指不带where子句的delete语句
相同点:truncate和不带where子句的delete, 以及drop都会删除表内的数据
不同点:
1. truncate和 delete只删除数据不删除表的结构(定义),drop语句将删除表的结构被依赖的约束(constrain),触发器(trigger),索引(index); 依赖于该表的存储过程/函数将保留,但是变为invalid状态.
2.delete语句是dml,这个操作会放到rollback segement中,事务提交之后才生效;如 ...