摘要: 在SQL/92标准可以使用USING子句对连接条件进行简化,但是只有在查询满足以下两个条件时才能给使用USING进行简化:1、查询必须是等连接的2、等连接中的列必须是同名如:商品表goods表和商品类型表category表中goods的外键和category的主键相同:categoryid而且是等连接,这里可以使用using1 select goodsname,categoryname2 from goods inner join category3 using(categoryid)在使用using是需要注意以下几个问题1、在select子句中只能指定该列... 阅读全文
posted @ 2012-07-13 12:48 chenssy 阅读(515) 评论(0) 推荐(0) 编辑
摘要: 游标是从数据库中提取出来一临时表的形式存放在内存中的数据。可以把游标看作是内存的SQL工作区域,游标名称相当于该区域的句柄。通过该句柄可以有效地控制游标,从而实现对数据的操作。所以对游标的操作实际上就是对数据库库的间接操作。 1.1游标的定义 定义游标的格式如下: CURSOR游标ISSELECT语句; 例如:把数据表中emp中部门号为20的员工定义为游标:1 CURSOR exce_emp is select * from scott.emp where deptno=20; 定义游标后,我们就可以使用游标了。但是要对游标进行操作我们必须先打开游标: Open游标名; 打开游标实际上是从数. 阅读全文
posted @ 2012-07-13 12:47 chenssy 阅读(559) 评论(3) 推荐(1) 编辑
摘要: 一、PL/SQL程序流程控制上面的结构与其他的高级语言程序一样,就不做介绍了。下就条件结构和循环结构说明。 1)IF条件控制句 1.1IF...THEN语句 其语法是: IFpTHEN 基本语句段; ENDIF; 例如:declare flag1 integer := 1; flag2 integer := 2;begin if flag1 < flag 2 then dbms_output.put_line('Flag1<flag2'); end if;end;注意:上面的IF与ENDIF必须成对出现 1.2IF...THEN...ELSE语句 该语句用于需要在两 阅读全文
posted @ 2012-07-13 12:44 chenssy 阅读(648) 评论(3) 推荐(3) 编辑
摘要: 历时三个星期的时间终于把Struts2给看完了。中间断断续续的学习,在这个过程中学到了很多东西,也真正的明白了时间是挤出来的。大三了课程越来越来多了,有自己学校的课程要学习,又是各种各样的实验,时间的真的是太紧了。这个时间,利用一切的空余时间来学习编程。这个过程的苦和乐真的只有经历了才明白... 不多说了,下面是对这三个星期学习Struts2的知识总结:一、Struts2应用的开发步骤 1、首先要先下载Struts2的jar包,将必须的类库放入到Web应用下的WEB-INF/lib路径下。 2、配置web应用的web.xml配置文件,配置Struts2的核心Filter 3、定义处理用户请求. 阅读全文
posted @ 2012-07-13 12:33 chenssy 阅读(1087) 评论(1) 推荐(3) 编辑
摘要: PL/SQL是一种高效的事物处理语言,它具有如下优点 1、支持SQL 2、支持面向对象的编程方法 3、更好的性能和更高的效率 4、编写方便 5、与Oracle高度集成 6、安全性好一、PL/SQL变量和基本数据类型 1、PL/SQL变量的定义 基本数据类型变量的定义方法如下: 变量名类型标识符[:=值]; 如:Strvarchar2[100]:='中国'; 也可以使用关键字default来代替赋值符。 strvarchar2[100]default'中国'; 注意:赋值符合中的冒号和等号是不能分开的;2、基本数据类型三、PL/SQL程序的结构首先看一个简单的例子 阅读全文
posted @ 2012-07-13 12:23 chenssy 阅读(673) 评论(0) 推荐(0) 编辑
摘要: 准备五一开始学习oracle,所以今天就打算把oracle10g安装下。安装完后就来进行测试是否能够正常的工作。 在安装的过程中,配置的全局数据库为tmt。 但是使用SQLPlus登陆的时候,用户名:scott,口令为:tiger,主机字符串为:tmt。但是总是登陆不上,报提示ora-12154tns无法解析指定的连接标识符。百度了下,原来是我的TNSNAMES.ORA文件中并没有tmt的相关配置。于是对TNSNAMES.ORA文件增加如下配置:TMT = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(... 阅读全文
posted @ 2012-07-13 12:22 chenssy 阅读(1138) 评论(0) 推荐(0) 编辑
摘要: 在很多情况下我们都需要将一个对象转换为String类型。一般来说有三种方法可以实现:Object.toString()、(String)Object、String.valueOf(Object)。下面对这三种方法一一分析: 一、采用Object.toString() toString方法是java.lang.Object对象的一个public方法。在java中任何对象都会继承Object对象,所以一般来说任何对象都可以调用toString这个方法。这是采用该种方法时,常派生类会覆盖Object里的toString()方法。但是在使用该方法时要注意,必须保证Object不是null值,否则将抛. 阅读全文
posted @ 2012-07-13 12:00 chenssy 阅读(779) 评论(0) 推荐(0) 编辑
摘要: 在做java课程设计的时候,需要一个做许多的表格,由于数据量比较,所以决定给JTable增加个Jcollpan滑动窗口。 可是在我给表格设定的大小超过了Jscollpan,它只会出现垂直滑动条。对于这个我很蛋疼很纠结!! 当我查看帮助文档后,发现了一个这样的方法:setAutoResizeMode(JTable.AUTO_RESIZE_OFF);这个方法用于关闭表格的自动调整,也就是表格大小并不会随框架的变化而变化,根据自身的大小来调整。添加这个方法后的效果是依然没有水平滑动条。这又要纠结了!!最后实在是解决不了,在百度上面找了解决方案:最终代码如下:1 JScrollPane jScrol. 阅读全文
posted @ 2012-07-13 11:59 chenssy 阅读(250) 评论(0) 推荐(0) 编辑
摘要: Swing是目前Java中不可缺少的窗口工具组,是建立图形化用户界面(GUI)程序的强大工具。JavaSwing组件自动产生各种事件来响应用户行为。Java将事件封装成事件类,并且为每个事件类定义了一个事件监听器。一个组件注册事件监听器方法,表明该组件要响应指定事件。也就是说我们可以通过注册监听器,监听事件源产生的事件,从而在事件处理程序中处理我们所需要处理的用户行为。 JavaSwing中处理各组件事件的一般步骤是: 1.新建一个组件。 2.将该组件添加到相应的面板。 3.注册监听器以监听事件源产生的事件 4.定义处理事件的方法。 注册事件我们一般采用两种方式:一是:利用一个监听器以及多.. 阅读全文
posted @ 2012-07-13 11:58 chenssy 阅读(885) 评论(0) 推荐(0) 编辑
摘要: 静态成员是一组比较特殊的成员,它不属于某个特定的类实例。它独立于该类。也就是说它不依赖类特定的实例,而被类的所有实例共享。 类的静态成员一般可以分为3种:静态成员变量,静态方法,静态代码块。它们都具有以下几个特点: 1、在类加载的时候,就进行创建和初始化或执行代码; 2、它们对于一个类来说,都只有一份; 3、类的所有实例都可以访问到它们; 1)、静态成员变量 按照是否静态的对类成员变量进行分类可分两种:一种是被static修饰的变量,叫做静态变量;另一种是没有被static修饰的变量,叫做实例变量。两者的区别在于: 静态变量在内存中只有一个拷贝,JVM只为静态分配一次内存,在加载类的过程中完. 阅读全文
posted @ 2012-07-13 11:56 chenssy 阅读(693) 评论(0) 推荐(1) 编辑
摘要: equal和“==”都是表示相等的意思,但是它们在进行实际的相等判定的时候,却有着非常大的区别 先看看一个例子 1 public class EqualTest{ 2 public static void main(string[] args){ 3 String str1 = "abcd"; 4 String str2 = "abcd"; 5 String str3 = new String("abcd"); 6 7 System.out.println(str1==str2); 8 System.ou... 阅读全文
posted @ 2012-07-13 11:55 chenssy 阅读(1442) 评论(2) 推荐(3) 编辑
摘要: 今天在看javascript的时候,突然发现数组array竟然可以利用字符串做为其下标,这个以前我还真的不知道,在我的印象当中数组用来遍历,怎么可以用字符串呢?哎。。孤陋寡闻啊..... 首先Array是从Object那里继承下。它具备Object所有的功能和特性。下面是Object的情况: 新建: var object = new Object(); 增加: object[strIndex ] = value; (strIndex 为string) 删除: delete object[strIndex ]; 遍历: for ( var strObjIndex in ... 阅读全文
posted @ 2012-07-13 11:52 chenssy 阅读(1147) 评论(1) 推荐(0) 编辑
摘要: 1 window.onload = myfunction(); 假如我们希望某个函数在网页加载完毕之后就立即执行。网页加载完毕时会触发一个onload事件,所以我们可以利用onload事件来加载这个函数。Onload事件与window对象相关联。如: 把myfunction函数绑定到这个事件上: 一个函数我们可以利用上面的解决,那两个、三个甚至更多呢?怎么解决?? 假如我们有firstFunction和secondFunction两个函数,是不是就是下面这样写呢:1 window.onload = firstFunction;2 window.onload = seco... 阅读全文
posted @ 2012-07-13 11:46 chenssy 阅读(524) 评论(1) 推荐(0) 编辑
摘要: 前面介绍了一些拦截器的配置和基本的使用方法,所以这次将介绍拦截器的实用功能。 实用拦截器完成权限控制 当浏览者需要执行某个操作时,应用需要先检查浏览者是否登录,以及是否有足够的权限来执行该操作。 本示例要求用户登录且必须为指定用户名才可以查看系统中的某个试图,否则用户直接转入到登录界面。 检查用户是否登录,通常都是跟踪用户的Session来完成的,通过ActionContext即可访问到session的属性,拦截器的interceptor方法的invocation参数可以很轻易地访问到请求相关的ActionContext实例。 权限检查拦截器类代码如下: 1 public class Aut. 阅读全文
posted @ 2012-07-13 11:43 chenssy 阅读(513) 评论(0) 推荐(0) 编辑
摘要: 一旦定义了拦截器和拦截器栈后,就可以使用这个拦截器或拦截器栈来拦截器Action了。拦截器的拦截行为将会在Action的execute方法执行之前执行。一、实现拦截器类 虽然Struts2框架提供了许多拦截器,这些拦截器也实现了Struts2的大部分功能。但是用户仍然可以开发自己的拦截器。 实现自己的拦截器,应该实现com.opensymphoney.xwork2.interceptor.Interceptor接口 该接口包含三个方法:init()、destroy()、interceptor(ActionInvocationinvocation); init():在该拦截器被实例化之后,在该. 阅读全文
posted @ 2012-07-13 11:41 chenssy 阅读(678) 评论(0) 推荐(0) 编辑
摘要: 今天打算复习下oracle,本来oracle是以前安装的,重新安装了系统,大概重新装了系统对其有影响吧,在服务表中发现没有了lister该项。于是为了保险起见重新安装了oracle。配置什么都是正确的,但是通过http://localhost:5560/isqlplus时,突然发现http://localhost:5560/isqlplus打不开了。 解决方案: 首先进入CMD 1.用命令:netstat -an 查看端口5560是否打开 2.用isqlplusctl start 启动 3.打开IE 输入http://localhost:5560/isqlplus就可以打开了! 阅读全文
posted @ 2012-07-13 11:38 chenssy 阅读(1031) 评论(0) 推荐(0) 编辑
摘要: 拦截器体系是Struts2框架的重要组成部分,我们可以把Struts2理解成一个空容器,而大量的内建拦截器完成了该框架的大部分操作。 Struts2拦截器是可插拔式的设计:如果我们需要使用某个拦截器,只需要在配置文件中应用该拦截器即可;如果不需要使用该拦截器,只需要在配置文件中取消应用拦截器。但是不管是否应用某个拦截器,对于Struts2框架都不会有任何影响。 拦截器与Action的关系以下主要讲一些关于拦截器的配置1、配置拦截器在struts.xml文件中定义拦截器只需要为拦截器类指定一个拦截器名,就可以完成拦截器的定义。定义拦截器使用<interceptor.../>元素,如下 阅读全文
posted @ 2012-07-13 11:11 chenssy 阅读(548) 评论(0) 推荐(0) 编辑
摘要: 一般来说,文件下载只需要直接在页面给出一个超级链接,该链接的href属性值等于要下载文件的文件名,就可以实现文件下载,如:<ahref=”checkbox.rar”>checkbox.rar</a>。但是这样下载存在着一些缺陷:如果该文件的文件名是中文文件名时,下载则会导致下载失败;如果在下载时需要对用户的身份进行判断,来验证用户是否有权限来下载该文件时,那么单独的超级链接是不可能实现的。这个时候,我们需要用Struts2来控制文件下载。 Struts2提供了stream结果类型,该结果类型就是专门用于支持文件下载功能的。通过Struts2的文件下载支持,允许系统控制浏 阅读全文
posted @ 2012-07-13 11:03 chenssy 阅读(397) 评论(0) 推荐(0) 编辑
摘要: 通常对于Web应用,我们可以云寻浏览者上传图片、上传压缩文件等,但是除此之外,我们必须对浏览者上传的文件大小、类型进行限制。因此必须在文件上传中进行文件过滤。 一、手动实现文件过滤 如果需要手动实现文件过滤,可以按照如下步骤进行 1、在Action中定义一个专用于进行文件过滤的方法。方法名任意,该方法的逻辑判断上传文件的类型是否为允许类型。 1 // 过滤文件类型 2 public String filterType(String[] types) { 3 // 获取希望上传的文件类型 4 String fileType = getUploadCont... 阅读全文
posted @ 2012-07-13 10:59 chenssy 阅读(707) 评论(0) 推荐(0) 编辑
摘要: 为了能够上传文件,我们必须将表单的method设置为POST,将entype设置为multipart/form-data,只有在这种情况下,浏览器才会把用户选择文件的二进制数据发送给服务器。 一旦我们设置了enctype为multipart/form-data,此时浏览器将采用二进制流的方式来处理表单数据。但是Struts2并没有提供自己的请求解析器,也就是说Struts2不会自己去处理multipart/form-data的请求,他需要调用其他上传框架来解析二进制请求数据。 在Struts2的struts.properties配置文件中,我们可以看到如下配置代码,它主要用于配置Struts. 阅读全文
posted @ 2012-07-13 10:57 chenssy 阅读(698) 评论(0) 推荐(1) 编辑