判断表中数据是否有重复
有一个很简单的需求,就是判断表中的数据是否有重复初始化场景如下:create table t as select rownum r from dual connect by level<10;insert into t values(1);commit;第一种方法 第二种方法 &nb...
如何通过sid查询造成死锁的sql语句,并杀死会话
1,一个update语句拿不到行锁被阻塞,会话sid=8888,如何找出阻塞者的sql,给出如何杀掉阻塞者会话的语句。设计一个实验(一) 会话1 跟新一行数据库,持有锁,目的就是查询出下面造成这天行锁的sql语句SQL> update emp1 set sal=323 where empno=7369;1 row updated. (二)会话2 ...
JAVA与编码
JAVA很容易出现乱码...具体分析以下几个环节的编码。1.编译 JAVA源文件可能是GBK编码也可能是UTF8编码,使用javac命令编译的时候,会使用操作系统默认的编码编译文件。 如果平台是windows,而源文件是UTF8编码,则遇到了第一个乱码问题。 这时候可以使用javac命令的...
创建Linux服务
Tomcat1.创建脚本 脚本中chkconfig后面的2345表示Linux启动等级,10和90表示开机启动和关机停止的优先级,数值越小,触发越早#! /bin/bash#chkconfig:2345 10 90#description:Start or Stop Tomcat Servicecase $1 instart)...
JDBC优化之Batch、Fetch
Batch和Fetch两个特性非常重要。Batch相当于JDBC的写缓冲,Fetch相当于读缓冲。import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.util....
EHCache集群
实验配置两个EHCache环境(Master、Slave)在Master端不断变更数据,Slave端可以收到变更的缓存数据。1.手工指定方式 Master监听40000,Slave监听40001 Master配置,监听40000。如果缓存变化,则使用RMI方式通知127.0.0.1:40001的同名缓存。<?xml version=...
HttpServletRequestWrapper模拟实现分布式Session
HttpSession的内容都放在一个单独的Map中,模拟远程分布式Session。1.使用HttpServletRequestWrapper创建自定义Request2.使用动态代理包装自定义Request返回的HttpSession对象3.创建过滤器,使用自定义Request替换原有的Request对象。4.在Servlet中得到的HttpSession对象,写入和读取内容都假设通过远程Session服务器...
JSONP的例子
JSONP技术可以解决AJAX跨域请求的问题。 主要是使用script标签,请求一段JS脚本执行。
单例模式
单例模式,线程安全的三种方式1.JVM保证线程安全public class Singleton { public Singleton() { System.out.println("Singleton init.."); } ...
在两个数据库之间进行数据同步
OLAP的第一步就是从业务系统中抽取数据到数据仓库系统。除了ETL工具Kettle,也可以使用PL/SQL创建Source表,模拟业务系统的数据表。create table source as select sys_guid() id ,o.* from dba_objects o where rownum<1000;alter table source add constraint PK_source primary key (id);创建Target表,模拟数据...
维护树状数据
给定一个树,要求查询所有状态为"异常"的叶子节点的所有上级节点create table t as select employee_id id,manager_id pid ,'正常' status from hr.employees;update t set status='异常' where id in ('109','107');查询表数据如下.因为节点109,107状态为异常,所以需要查他们的所有上级节点...
给非空记录增加行号
create table t(a varchar2(10));insert into t values('b');insert into t values(null);insert into t values(null);insert into t values('a');insert into t values('e');insert into t values(null);insert into t value...
程序在Tomcat中的启动顺序
众所周知Tomcat有三种方式加载程序, 1.配置在Tomcat/conf/server.xml中 2.配置在Tomcat/conf/Catalina/localhost/下 3.将程序放置在Tomcat/webapps下 为了进行测试,新建一个War包,并创建一个监听器,这个监听器打印Con...
滑动订单问题
MySQL技术内幕148页订单表有两个字段,订单日期(按月)和订单数量,需要求每个月到一年以后间隔的订单总数。create table MonthlyOrders( ordermonth date, ordernum int, primary key (orde...
Bad Habits
You know, Frank looks terrible, but he won't do anything to get healthy. He is always smoking. He spends no time exercising. I see him eating unhealthy food everyday, and drinking beer after beer while he's doing it! Hmm, sounds bad. That's for sure. A...
Oracle闪回删除恢复误删数据
单位把程序做成了exe的安装包。安装包在初始化数据库的时候,会先drop所有的表,然后建表,最后插入数据。在开发用的数据库,一个同事加了一天班,给所有的表和字段都加了注释,估计是用于PD反向工程。但是不凑巧,第二天另外一个同事运行安装包直接把他的表覆盖了...大致过程如下,同事A:create table a(...
About Daily Routines(频率副词)
My days are very busy. I usually get up at six o'clock, but on the weekend I occasionally get up later, at seven o'clock. I leave for work at 7:30. I often make dinner when I get home from work at five o'clock. After dinner, I always do the dishes. I h...
SQL生成日历
http://jackywood.itpub.net/post/1369/127565一条SQL语句生成年历。select case when (new_yweek = min(new_yweek)over(partition by mon order by new_yweek)) then ...
使用Windows脚本进行逻辑备份
开发、测试和演示的数据库可以使用逻辑备份。首先,得到所有非系统用户,然后进行逻辑备份,最后删除过期的数据。backup.batrem 设置备份路径set backupdir=c:\tmp\rem 获取所有用户的列表@echo off@echo set echo off &nbs...
解决memory_target设置过小导致不能启动数据库的问题
我们的项目比较特殊,经常需要外出演示,领导觉得Oracle企业版过于庞大,让我们尝试一下OracleXE对资源的最低要求。看看我们古董级的电脑(512M 内存)能否运行我们的演示程序。但是我设置的memory_target过低,导致数据库不能启动了。解决过程如下,创建pfile,修改参数,然后使用pfile启动数据库。SQL> alter system s...