oracle相关问题的解决及页面tomcat相关.docx

上传人:b****5 文档编号:6787815 上传时间:2023-01-10 格式:DOCX 页数:13 大小:22.61KB
下载 相关 举报
oracle相关问题的解决及页面tomcat相关.docx_第1页
第1页 / 共13页
oracle相关问题的解决及页面tomcat相关.docx_第2页
第2页 / 共13页
oracle相关问题的解决及页面tomcat相关.docx_第3页
第3页 / 共13页
oracle相关问题的解决及页面tomcat相关.docx_第4页
第4页 / 共13页
oracle相关问题的解决及页面tomcat相关.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

oracle相关问题的解决及页面tomcat相关.docx

《oracle相关问题的解决及页面tomcat相关.docx》由会员分享,可在线阅读,更多相关《oracle相关问题的解决及页面tomcat相关.docx(13页珍藏版)》请在冰豆网上搜索。

oracle相关问题的解决及页面tomcat相关.docx

oracle相关问题的解决及页面tomcat相关

遇到的问题:

1、ORA-00979不是groupby表达式

当一个SQL语句中含有聚合函数时,(比如:

count(),sum(),avg()等等)并且SELECT后面又有不是聚合函数的字段,就必须要GROUPBY不是聚合函的所有字段,比如你的SQL语句应该写成:

select  b.id0000,b.xming0,sum(salary)

fromEmployeea,Salaryb

wherea.id0000=b.id0000

groupbyb.id0000,b.xming0

这样就不会错啦

.2、在oracle中,如何将时间类型转换成字符类型?

to_char(sysdate,'yyyy-mm-ddhh24:

mi:

ss')

3、oracle实现按天,周,月,季度,年查询统计数据

//按天统计

selectcount(dataid)as每天操作数量,sum()

from

where

groupbytrunc(createtime,'DD'))

//按自然周统计

selectto_char(date,'iw'),sum()

from

where

groupbyto_char(date,'iw')

//按自然月统计

selectto_char(date,'mm'),sum()

from

where

groupbyto_char(date,'mm')

//按季统计

selectto_char(date,'q'),sum()

from

where

groupbyto_char(date,'q')

//按年统计

selectto_char(date,'yyyy'),sum()

from

where

groupbyto_char(date,'yyyy')

4.将两个记录集的内容合并

UNION运算符使您得以将两个或多个SELECT语句的结果组合成一个结果集。

SELECT*FROMTable1

UNION

SELECT*FROMTable2

UNION运算符

将两个或更多查询的结果组合为单个结果集,该结果集包含联合查询中的所有查询的全部行。

这与使用联接组合两个表中的列不同。

使用UNION组合两个查询的结果集的两个基本规则是:

所有查询中的列数和列的顺序必须相同。

数据类型必须兼容。

语法

{|()}

UNION[ALL]

[UNION[ALL]

[...n]]

参数

|(

是查询规范或查询表达式,用以返回与另一个查询规范或查询表达式所返回的数据组合的数据。

作为UNION运算一部分的列定义可以不相同,但它们必须通过隐性转换实现兼容。

下表说明数据类型与相应(ith)列的选项的比较规则。

ith列的数据类型结果表中ith列的数据类型

非数据兼容类型(数据转换不由Microsoft®SQLServer™隐性处理)。

SQLServer返回的错误。

长度为L1和L2的固定长度char。

长度与L1和L2中较长的那个相等的固定长度char。

长度为L1和L2的固定长度binary。

长度与L1和L2中较长的那个相等的固定长度binary。

任一列或两列都是可变长度char。

长度与为ith列指定的最大长度相等的可变长度char。

任一列或两列都是可变长度binary。

长度与为ith列指定的最大长度相等的可变长度binary。

两列都是数字数据类型(如smallint、int、float、money)。

与两列的最大精度相等的数据类型。

例如,如果表A的ith列是int类型,表B的ith列是float类型,则ith列在结果表中的数据类型是float,因为float比int更精确。

两列的描述都指定NOTNULL。

指定NOTNULL。

UNION

指定组合多个结果集并将其作为单个结果集返回。

ALL

在结果中包含所有的行,包括重复行。

如果没有指定,则删除重复行。

5、JS文本框验证

写一个JS代码,验证文本框最长为30字符怎么写啊?

(1)

functionvalidate(obj)

{if(obj.value)

{

if(obj.value.length>30)

{

alert("长度不能大于30");

returnfalse;

}

}

}

(2)

这样就可以了

6、从页面得到的字符类型转换成长整形

本来语句是这些:

StringuserId=request.getParameter("UserId");

if(userId==null)

userId="";

user.setUserId(userId);

user.searchStu();

现在我需要把userId转成int型的

那下面的那些语句都该怎么写呢?

Integer.parseInt(userId);//转int

String.valueOf(userId);//转回string

//后面的id你用string设置为空了,但是每一个实体的id必须有的。

所以我不太了解您要做什么。

实在不行设置为0好了。

个人认为您的类需要重新设计一下。

如果懒得设计就用上面给您的两个方法来回转换吧。

这位朋友,冒昧对你的程序分析分析,有说错的地方还请不要见怪呀。

Appletapplet=newApplet();

Appletuser=newApplet();

StringuserId=applet.getParameter("UserId");

//StringuserId=request.getParameter("UserId");//你这一句要调用的是getParameter()方法,我运行时是无法调用,因为Request是一个类,即使你创建了request对象,也找不到getParameter()方法,这个方法应该在Applet这个类中能够找的到,上面我已经定义了。

还有就是下面setUserId()和searchStu()方法应该是你自己定义的吧。

if(userId==null)

userId="";

user.setUserId(userId);

user.searchStu();

Integer.parseInt(userId);

//parseInt()这个方法是将String型转化为int型的。

在API中你可以搜一下,看看具体上面怎么说。

String.valueOf(userId);

//valueOf()这个方法是将int型转回String型。

 

7、trunc

1.TRUNC(fordates)

TRUNC函数为指定元素而截去的日期值。

其具体的语法格式如下:

TRUNC(date[,fmt])

其中:

date一个日期值

fmt日期格式,该日期将由指定的元素格式所截去。

忽略它则由最近的日期截去

下面是该函数的使用情况:

TRUNC(TO_DATE('24-Nov-199908:

00pm'),'dd-mon-yyyyhh:

miam')

='24-Nov-199912:

00:

00am'

TRUNC(TO_DATE('24-Nov-199908:

37pm','dd-mon-yyyyhh:

miam'),'hh')='24-Nov-199908:

00:

00am'

trunc(sysdate,'yyyy')--返回当年第一天.

trunc(sysdate,'mm')--返回当月第一天.

trunc(sysdate,'d')--返回当前星期的第一天.

trunc(sysdate,'dd')--返回当前年月日

2.TRUNC(fornumber)

TRUNC函数返回处理后的数值,其工作机制与ROUND函数极为类似,只是该函数不对指定小数前或后的部分做相应舍入选择处理,而统统截去。

其具体的语法格式如下

TRUNC(number[,decimals])

其中:

number待做截取处理的数值

decimals指明需保留小数点后面的位数。

可选项,忽略它则截去所有的小数部分

下面是该函数的使用情况:

TRUNC(89.985,2)=89.98

TRUNC(89.985)=89

TRUNC(89.985,-1)=80

注意:

第二个参数可以为负数,表示为小数点左边指定位数后面的部分截去,即均以0记。

与取整类似,比如参数为1即取整到十分位,如果是-1,则是取整到十位,以此类推。

8、myEclipse中如何显示行数

Window->Preferences->General->Editors->TextEditors:

showlinenumber

9、JavaScriptsplit()方法

JavaScriptString对象参考手册

定义和用法

split()方法用于把一个字符串分割成字符串数组。

语法

stringObject.split(separator,howmany)

参数

描述

separator

必需。

字符串或正则表达式,从该参数指定的地方分割stringObject。

howmany

可选。

该参数可指定返回的数组的最大长度。

如果设置了该参数,返回的子串不会多于这个参数指定的数组。

如果没有设置该参数,整个字符串都会被分割,不考虑它的长度。

返回值

一个字符串数组。

该数组是通过在separator指定的边界处将字符串stringObject分割成子串创建的。

返回的数组中的字串不包括separator自身。

但是,如果separator是包含子表达式的正则表达式,那么返回的数组中包括与这些子表达式匹配的字串(但不包括与整个正则表达式匹配的文本)。

提示和注释

注释:

如果把空字符串("")用作separator,那么stringObject中的每个字符之间都会被分割。

注释:

String.split()执行的操作与Array.join执行的操作是相反的。

实例

例子1

在本例中,我们将按照不同的方式来分割字符串:

varstr="Howareyoudoingtoday?

"

document.write(str.split("")+"
")

document.write(str.split("")+"
")

document.write(str.split("",3))

输出:

How,are,you,doing,today?

H,o,w,,a,r,e,,y,o,u,,d,o,i,n,g,,t,o,d,a,y,?

How,are,you

例子2

在本例中,我们将分割结构更为复杂的字符串:

"2:

3:

4:

5".split(":

")//将返回["2","3","4","5"]

"|a|b|c".split("|")//将返回["","a","b","c"]

例子3

使用下面的代码,可以把句子分割成单词:

varwords=sentence.split('')

或者使用正则表达式作为separator:

varwords=sentence.split(/\s+/)

例子4

如果您希望把单词分割为字母,或者把字符串分割为字符,可使用下面的代码:

"hello".split("")//可返回["h","e","l","l","o"]

若只需要返回一部分字符,请使用howmany参数:

"hello".split("",3)//可返回["h","e","l"]

10.java:

String类的matches()方法

match()的参数一般为正则表达式,现在两个正则表达式,可以试用

正则表达式一:

可以适用任何形式的字符串,

其中LikeType是要匹配的字符串,patten是生成的正则表达式,sourceStr是已有字符串,判断sourceStr是否满足LikeType的正则表达式

publicstaticvoidmain(String[]args){

//TODOAuto-generatedmethodstub

StringlikeType="23";

Stringpattern="[a-zA-Z0-9]*["+likeType+"]{1}[a-zA-Z0-9]*";

StringsourceStr="adfjaslfj23ldfalsf";

System.out.println(sourceStr.matches(likeType));

}

正则表达式二:

固定位置的字符串匹配,理解同上,只是正则表达式的不同

publicstaticvoidmain(String[]args){

//TODOAuto-generatedmethodstub

StringlikeType="%%%23%%%*";

StringsourceStr="423236664";

likeType=likeType.replaceAll("%","\\\\d").replaceAll("\\*","\\\\d\\*");

System.out.println(likeType);

System.out.println(sourceStr.matches(likeType));

}

match的方法比较简单,但绝对实用,所以要掌握用法,正则表达式的写法尤其重要。

11.JavaScriptindexOf()方法

JavaScriptString对象参考手册

定义和用法

indexOf()方法可返回某个指定的字符串值在字符串中首次出现的位置。

语法

stringObject.indexOf(searchvalue,fromindex)

参数

描述

searchvalue

必需。

规定需检索的字符串值。

fromindex

可选的整数参数。

规定在字符串中开始检索的位置。

它的合法取值是0到stringObject.length-1。

如省略该参数,则将从字符串的首字符开始检索。

说明

该方法将从头到尾地检索字符串stringObject,看它是否含有子串searchvalue。

开始检索的位置在字符串的fromindex处或字符串的开头(没有指定fromindex时)。

如果找到一个searchvalue,则返回searchvalue的第一次出现的位置。

stringObject中的字符位置是从0开始的。

提示和注释

注释:

indexOf()方法对大小写敏感!

注释:

如果要检索的字符串值没有出现,则该方法返回-1。

实例

在本例中,我们将在"Helloworld!

"字符串内进行不同的检索:

varstr="Helloworld!

"

document.write(str.indexOf("Hello")+"
")

document.write(str.indexOf("World")+"
")

document.write(str.indexOf("world"))

以上代码的输出:

0

-1

6

12.tomcat乱码解决方案

  

--gbk或者gb2312或者utf-8-->

 

 

  ignore

  true

 

 

 

 Encoding

 /*

 

 *注意filter元素要放在所有web.xml元素之前。

 

(2)Get方法的处理

 tomcat对post和get的处理方法不一样,所以过滤器不能解决get的乱码问题,它需要在其他地方设置。

 打开\conf目录下server.xml文件,找到对8080端口进行服务的Connector组件的设置部分,给这个组件添加一个属性:

URIEncoding="GBK"。

修改后的Connector设置为:

 

              maxThreads="150"minSpareThreads="25"maxSpareThreads="75"

              enableLookups="false"redirectPort="8443"acceptCount="100"connectionTimeout="20000"disableUploadTimeout="true"URIEncoding="GBK"/>

 *注意修改后重新启动tomcat才能起作用。

 3)数据库应用的乱码,本文还是以mysql为例

 

(1)修改配置文件\my.init

  将default-character-set=latin1修改为default-character-set=gbk

 

(2)对接受的中文字符重新编码,例

  Stringname=requset.getParameter("name");

  name=newString(name.getBytes("gbk"),"iso8859-1");

 4)tomcat5.x的include页面乱码

  为了能让tomcat5.x能像tomcat4那样处理include页面,需要修改项目web-info/web.xml文件,把默认的字符集设置成gbk/gb2312就可以了,如:

  

   

       SpecialpropertygroupforJSPConfigurationJSPexample.

       JSPConfiguration

       *.jsp

       true

       GBK

       false

       /include/prelude.jspf

       

   

 

13.instanceof

简介

  instanceof是Java的一个二元操作符,和==,>,<是同一类东西。

由于它是由字母组成的,所以也是Java的保留关键字。

它的作用是测试它左边的对象是否是它右边的类的实例,返回boolean类型的数据。

可以用在继承中的子类的实例是否为父类的实现

编辑本段示例

  举个例子:

  Strings="IAManObject!

";

  booleanisObject=sinstanceofObject;

  我们声明了一个String对象引用,指向一个String对象,然后用instanceof来测试它所指向的对象是否是Object类的一个实例,显然,这是真的,所以返回true,也就是isObject的值为true。

  instanceof有一些用处。

比如我们写了一个处理账单的系统,其中有这样三个类:

  publicclassBill{//省略细节}

  publicclassPhoneBillextendsBill{//省略细节}

  publicclassGasBillextendsBill{//省略细节}

  在处理程序里有一个方法,接受一个Bill类型的对象,计算金额。

假设两种账单计算方法不同,而传入的Bill对象可能是两种中的任何一种,所以要用instanceof来判断:

  publicdoublecalculate(Billbill){

  if(billinstanceofPhoneBill){

  //计算电话账单

  }

  if(billinstanceofGasBill){

  //计算燃气账单

  }

  ...

  }

  这样就可以用一个方法处理两种子类。

  然而,这种做法通常被认为是没有好好利用面向对象中的多态性。

其实上面的功能要求用方法重载完全可以实现,这是面向对象编程应有的做法,避免回到结构化编程模式。

只要提供两个名字和返回值都相同,接受参数类型不同的方法就可以了:

  publicdoublecalculate(PhoneBillbill){

  //计算电话账单

  }

  publicdoublecalculate(GasBillbill){

  /

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 职业教育 > 中职中专

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1