show-sales.com

awed

 

2007年12月12日

Java书籍分享

书籍分离开
Apress.The.Definitive.Guide.to.Jython.Python.for.the.Java.Platform.Feb.2010

Apress.Beginning.Java.and.Flex.Dec.2009

posted @ 2010-09-18 16:51 一鸣 阅读(995) | 评论 (0)编辑 收藏

WebService简介

     摘要:   阅读全文

posted @ 2009-06-29 11:10 一鸣 阅读(1342) | 评论 (0)编辑 收藏

利用JS获取上传文件大小

<script language="JavaScript">  
<!--  
function ShowSize(files)  
{  
  
var fso,f;  
  fso
=new ActiveXObject("Scripting.FileSystemObject");  
  f
=fso.GetFile(files);
  
var fileSize = f.size ;
  
if((fileSize/1024< 1024){
    alert(fileSize
/1024+"K");
  }
else if( ((fileSize/1024> 1024&& ((fileSize/(1024*1024)) < 1024)){
    alert(fileSize
/(1024*1024)+"M");
  }
else{
    alert(fileSize
/(1024*1024*1024)+"G")
  }
}  
//-->  
</script> 

posted @ 2008-07-04 09:58 一鸣 阅读(6924) | 评论 (3)编辑 收藏

Sybase数据库清除日志的做法

最近在项目中使用Sybase,发现数据库日志满了,所以在网上淘了两条语句,拿出来贴一下,

1.打开查询分析器,输入命令
DUMP TRANSACTION 数据库名 WITH NO_LOG
2.再打开企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了。

清除Log有两种方法:

  1.自动清除法

  开放数据库选项 Trunc Log on Chkpt,使数据库系统每隔一段时间自动清除Log。此方法的优点是无须人工干预,由SQL Server自动执行,并且一般不会出现Log溢满的情况;缺点是只清除Log而不做备份。

  2.手动清除法

  执行命令“dump transaction”来清除Log。以下两条命令都可以清除日志:

dump transaction with truncate_only
dump transaction with no_log

  通常删除事务日志中不活跃的部分可使用“dump transaction with trancate_only”命令,这条命令写进事务日志时,还要做必要的并发性检查。SYBASE提供“dump transaction with no_log”来处理某些非常紧迫的情况,使用这条命令有很大的危险性,SQL Server会弹出一条警告信息。为了尽量确保数据库的一致性,你应将它作为“最后一招”。

  以上两种方法只??清除日志,而不做日志备份,若想备份日志,应执行“dump transaction database_name to dumpdevice”命令。

PS:附一个更好的方法

先分离数据库后,直接删除日志以后,再在查询分析器里用

exec sp_attach_single_file_db '数据库名', '.mdf文件路径'
命令附加数据库。 OVER.在别的地方看到的 不错。

posted @ 2008-06-18 10:09 一鸣 阅读(3807) | 评论 (0)编辑 收藏

SQL Server教程。

最近去面试了两家比较大的公司,感觉自己在SQL上还有欠缺,有些地方需要进行加强,所以找了些SQL的资料来看,现在在这里把它贴出来,希望对大家能有用。
/Files/awed/1-5.rar
/Files/awed/6-13.rar

posted @ 2008-04-28 09:53 一鸣 阅读(975) | 评论 (0)编辑 收藏

常用验证JS

     摘要: //是否为空校验 function isEmpty(s) {     var lll=trim(s);     if( lll == null || lll.length == 0 )  &n...  阅读全文

posted @ 2008-04-22 16:21 一鸣 阅读(1393) | 评论 (0)编辑 收藏

DWR+VML实时曲线

     摘要: 最近公司要求做一个WEB端的服务器实时流量利用率监控曲线! 具体做法是后台采用SNMP4J采集服务器流量,前台采用DWR调用后台Bean得到数据,然后利用VML显示曲线。 1、DWR配置,先把DWR.jar加入到WEB-INF/lib下。     在web.xml下加入如下片段: <servlet>   &nbs...  阅读全文

posted @ 2008-04-22 16:18 一鸣 阅读(2064) | 评论 (0)编辑 收藏

oralce学习笔记2

08-4-17下午和晚上
--having 对分组进行限制,
--
查询按部门分组统计平均工资大于2000的部门
select round(avg(sal),2),deptno from emp group by deptno having avg(sal) >2000

--子查询,在一个查询中包含另一个查询

--查询员工工资大于所有员工平均工资的员工
select ename,sal from emp where sal > (select avg(sal) from emp)

--查询各部门中工资最高的员工
select A.ename,A.sal,A.Deptno from emp A
  
join
      (
select max(sal) maxsal,deptno from emp group by deptno) B
  
on (A.Deptno=B.deptno and A.sal=B.maxsal)

--查询各部门中工资最高的员工,和其工资等级
select C.ename,C.sal,D.grade,C.Deptno from salgrade D 
join
  (
select A.ename,A.sal,A.Deptno from emp A
  
join
      (
select max(sal) maxsal,deptno from emp group by deptno) B
  
on (A.Deptno=B.deptno and A.sal=B.maxsal)) C
on (C.sal between D.LOSAL and D.HISAL)

--查询员工的名称,工资及工资等级
select ename,sal, grade from emp A, salgrade B where (A.Sal between B.losal and B.hisal)

--查询所有员工的名称和其经理的名称
select A.empno,A.ename, B.ename as marname from emp A,emp B where A.mgr=B.empno

--查询员工的姓名和其所在部门的名称
select ename,dname from emp a,dept b where a.deptno=b.deptno
select ename,dname from emp a join dept b on a.deptno=b.deptno

--左连接,即当左边表没有与右边表匹配的时候,显示左表的全部数据
select A.empno,A.ename, B.ename as marname from emp A
left join emp B on A.mgr=B.empno

--右连接,即当左边表没有与右边表匹配的时候,显示右表的全部数据
select A.empno,A.ename, B.dname from emp A
right join dept B on A.deptno=B.deptno

--求所有员工的平均薪水等级
select avg(C.grade) from
  (
select A.Empno,A.Ename,A.Sal,A.Deptno,B.grade from emp A
  
join salgrade B on A.Sal between B.losal and B.hisal) C

--查询所有员工中,为经理人的名称
select ename from emp where empno in(select distinct mgr from emp)


--比普通员工薪水还要高的经理人
select ename from emp where empno in (select distinct mgr from emp where mgr is not null)
and sal >
  (
select max(sal) from emp where empno not in 
         (
select distinct mgr from emp where mgr is not null)--所有经理人的编号 
         )      
           
--比较效率  
         
           
           
select * from emp where deptno=10 and ename like '%A%';
          
--第一条高于第二条,当第一个条件不合适的时候就不用去核对第二个条件,而第一个条件较小所以会快些
            
           
select * from emp where ename like '%A%' and deptno=10
           
--创建表语句 create
orcal常用的类型有

非空约束:
NOT NULL
唯一约束:
UNIQUE
主键约束:
PRIMARY KEY
外建约束:
REFERENCES 外键约束被参考字段必须为主键
如:
CREATE TABLE CLASS(ID NUMBER(8PRIMARY KEY,NAME VARCHAR2(20NOT NULL)
CREATE TABLE STUDENT (
    ID 
NUMBER(8PRIMARY KEY,
    CLASS 
NUMBER(8NOT NULL REFERENCES CLASS(ID),--增加了一个外键约束,关链CLASS表的ID
    NAME VARCHAR2(20NOT NULL
)
也可以这样写
CREATE TABLE STUDENT (
    ID 
NUMBER(8NOT NULL,
    CLASS 
NUMBER(8NOT NULL
    NAME 
VARCHAR2(20NOT NULL
    
CONSTRAINT S_ID_PK PRIMARY KEY(ID),
    
CONSTRAINT S_C_RE FOREIGN KEY (CLASS) REFERENCES CLASS(ID)
)

明天需要弄清楚的事:
如何在WEBLOGIC9上建立数据源

在建表时跟在字段后的约束为字段级约束,建完字段后使用CONSTRAINT建立的约束为表
级约束,可以给约束创建约束名。

CONSTRAINT 增加表级约束

如:增加约束,不能同时出现NAME,ADDRESS,AGE相同的数据
    
CREATE TABLE TEST (
        NAME 
VARCHAR2(20NOT NULL,
        ADDRESS 
VARCHAR2(128),
        AGE 
NUMBER(2),
        
CONSTRAINT NAME_ADD_AGE_UNI QNIQUE (NAME,ADDRESS,AGE) 
    )

   

posted @ 2008-04-18 10:02 一鸣 阅读(1113) | 评论 (0)编辑 收藏

oracle学习笔记

2008-4-17上午

练习中所使用的表全为ORACLE安装时所表的数据及表。

 

-- distinct 去掉重复的记录
  select distinct deptno,ename,sal from emp ;
  
  
--substr(str,start,len),截取字符串,STR需要截取的字符串或列,START为从第几个字符开始,LEN截取多长
  select substr(ENAME,2,2from emp order by deptno asc,ename desc;
  
  
select chr(65from dual; --将一个数转换为字符
  
  
select ascii('A'from dual;--求一个数的ASCII码
  
  
select round(23.652from dual ;--四舍五入
  
  
select round(23.45902234,2from dual;--四舍五入,后点小数2位
  
  
select to_char(sal,'$99,999.9999'from emp ;
  
--将一个数转换为字符串并按某种格式,
  --其中一个9代表一个数字,如果不够位数取后面位,


  
select to_char(sal,'L99,999.9999'from emp ;--前面加上L,即Local加上本地字符串
  
  
select to_char(hiredate,'yyyy-mm-dd HH:mm:ss'from emp;
  
  
select to_char(sysdate,'yyyy-mm-dd hh24:mm:ss') today from dual ;
  
  
  
--日期转换函数to_date(str1,str2) str1需要转换的字符串,str2为转换成什么格式
  select * from emp where hiredate > to_date('1981-02-01','yyyy-mm-dd')
  
  
--将字符串转换为数字to_number(str1,str2)str1需要转换的字符串,str2为转换成什么格式
  select sal from emp where sal > to_number('$1,220.00','$99,999.9999')
  
  
--NULL情况处理,使用nvl(str1,str2),str1为需要处理的列,STR2为为空时默认的值,如果为空时则为0,不为NULL时则直接为comm
  select ename,nvl(comm,0) comm from emp ;
  
  
--四入五入到几位,
  select round(max(sal),2) 最大工资,round(min(sal),2) 最小工资,round(avg(sal),2) 平均工资 from emp ;
  
  
--将数字转换为某种格式的字符串
  select to_char(max(sal),'L9,999.99') 最大工资,to_char(min(sal),'L9,999.99') 最小工资,to_char(avg(sal),'L9,999.99') 平均工资 from emp ;
  
  
--group by分组查询
  select sal,deptno from emp group by deptno,sal;
  
  
--求所有员工中单个部门工资最高的员工所有信息
  select A.* from emp A
  
inner join
  (
select deptno, max(sal) as total from emp group by deptno) B
  
on A.Deptno=B.deptno and A.Sal=B.total

posted @ 2008-04-17 10:33 一鸣 阅读(1030) | 评论 (0)编辑 收藏

自动装箱与拆箱的误用

在JAVA JDK1.5以后具有的自动装箱与拆箱的功能,所谓的自动装箱
与拆箱也就是把基本的数据类型自动的转为封装类型。
如:自动装箱,它可以直接把基本类型赋值给封装类型
Integer num = 10 ;
Double d = 2d ;
   
 自动拆箱,它可以把封装类型赋值给基本类型
int num = new Integer(10);
double d = new Double(2d);

知道了自动装箱与拆箱后我们现看一下下面这两个程序代码:

AutoBoxDemo1.java
-------------------------------------------------------
public class AutoBoxDemo1 
{
    
public static void main(String[] args) 
    
{        
        Integer d1 
= 100 ;
        Integer d2 
= 100 ;

        
if(d1==d2)
            System.out.println(
"d1==d2");
        
else
            System.out.println(
"d1!=d2");
    }

}



AutoBoxDemo2.java
--------------------------------------------------------
public class AutoBoxDemo2 
{
    
public static void main(String[] args) 
    
{        
        Integer d1 
= 200 ;
        Integer d2 
= 200 ;

        
if(d1==d2)
            System.out.println(
"d1==d2");
        
else
            System.out.println(
"d1!=d2");
    }

}

大家看看这两个程序代码的结果是怎么样的呢?
其实在AutoBoxDemo1.java中结果是:d1==d2
在AutoBoxDemo2.java中结果是:d1!=d2

为什么结果会是这样的?我们来看了解一下!

其实刚刚这两个程序结果的不同是与==运算符比较有关,==是用来比较
两个基本数据类型的变量是否相等的,而事实上==也用于判断两个对象
变量名是否参考同一对象。在自动装箱时对于值从-128到127之间的值
它们被装箱为Integer对象后会在内存中重用,所以在AutoBoxDemo1.java
中是相等的,而超过了从-128到127之前的值时,被装箱后的Integer对象
并不会被重用。所以AutoBoxDemo2.java中是不相等的。

posted @ 2007-12-12 09:58 一鸣 阅读(1800) | 评论 (2)编辑 收藏

导航

统计

公告


常用链接

留言簿(3)

随笔分类

随笔档案

搜索

最新评论

阅读排行榜

评论排行榜