`
hellsing42
  • 浏览: 261681 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

笔记2

    博客分类:
  • java
阅读更多
     encType="multipart/form-data">

加上:encType=multipart/form-data,否则报上面的错误。


javascript:添加节点

function newtext(){

var option=document.createElement("textarea");
var obj=document.getElementById("processMethod");
var tr=document.createElement("tr");
option.rows=1;
option.cols=100;
option.name='results';
obj.appendChild(tr);
obj.appendChild(option)
}
用于添加多条纪录时用

onmouseover="this.style.cursor='hand'
让某个节点当鼠标移动上去时变成“小手”

struts标签中logic:iterate中自然序列
<logic:present name="rulesContentList" scope="request">
     <logic:iterate id="rulesContent" type="gov.abrstms.persistence.to.techmanage.RulesContentTo"></logic:iterate>      name="rulesContentList" indexId="AppId">
      
      <!---->
                  <!---->
                     
                        <bean:write property="content" name="rulesContent"></bean:write> 
                   
                   
     
    </logic:present>
利用iterate中indexId属性为每条加一个序号但是是从0开始的所以应该+1

char nchar nvarchar的区别
----------------------------------------------------------------------------------
NVARCHAR类弄是以两个字节来存储一个字符的,你只要把NVARCHAR改为VARCHAR就不会了

在 Microsoft SQL Server 中,以下数据类型支持 Unicode 数据:

nchar


nvarchar


ntext


说明  这些数据类型的前缀 n 来自 SQL-92 标准中的 National(Unicode)数据类型。

nchar、nvarchar 和 ntext 的用法分别与 char、varchar 和 text 的用法一样,但在以下方面不同:

Unicode支持的字符范围更大。


存储 Unicode 字符所需要的空间更大。


nchar 和 nvarchar 列最多可以有 4,000 个字符,而不象 char 和 varchar 字符那样可以有 8,000 个字符。


Unicode 常量使用 N 开头来指定:N'A Unicode string'。


所有 Unicode 数据都使用相同的 Unicode 代码页。排序规则不控制用于 Unicode 列的代码页,仅控制比较规则和是否区分大小写等特性。


nchar,nvarchar与char,varchar的区别- -
                                      


char,varchar用于描述定,变长的字符型数据。

nchar,nvarchar用来存储Unicode字符集的定,变长字符型数据。

 

如:

SQL> create table test_char (char_col char(10), varchar_col varchar2(10));

SQL> insert into test_char values ('定长', '变长');

SQL> SELECT DUMP(CHAR_COL, 16) D_CHAR FROM TEST_CHAR;


D_CHAR
----------------------------------------------------------------
Typ=96 Len=10: 61,62,63,20,20,20,20,20,20,20
Typ=96 Len=10: b6,a8,b3,a4,20,20,20,20,20,20


SQL> SELECT DUMP(VARCHAR_COL, 16) D_VARCHAR2 FROM TEST_CHAR;


D_VARCHAR2
----------------------------------------------------------------
Typ=1 Len=3: 31,32,33
Typ=1 Len=4: b1,e4,b3,a4

SQL> create table test_nchar (nchar_col nchar(10), nvarchar_col nvarchar2(10));

SQL> insert into test_nchar values ('nchar定长', 'nvarchar变长');

如果按照刚才中文的计算方法,'nvarchar变长'的长度是8+2*2=12已经超过了数据类型定义的大小,可是为什么插入成功了?

SQL> select dump(nchar_col, 16) from test_nchar;


DUMP(NCHAR_COL,16)
--------------------------------------------------------------
Typ=96 Len=20: 0,6e,0,63,0,68,0,61,0,72,5b,9a,95,7f,0,20,0,20,0,20


SQL> select dump(nvarchar_col, 16) from test_nchar;


DUMP(NVARCHAR_COL,16)
--------------------------------------------------------------
Typ=1 Len=20: 0,6e,0,76,0,61,0,72,0,63,0,68,0,61,0,72,53,d8,95,7f

这下就明白了,虽然仍然是采用ascii码存储,但是nchar使用的AL16UTF16字符集,编码长度变为2个字节。这样中文使用两个字节,对于可以用一个字节就表示的英文字符,采用了高位补0的方式凑足2位,这样,对于采用AL16UTF16字符集的nchar类型,无论中文还是英文都用2位字符表示。因此'nvarchar变长'的长度是10,并没有超过数据类型的限制。

 

CHAR(n)类型
将 int ASCII 代码转换为字符的字符串函数。参数n是介于 0 和 255 之间的整数。如果整数表达式不在此范围内,将返回 NULL 值。

nchar 和 nvarchar
nchar 是固定长度 Unicode 数据的数据类型,nvarchar 是可变长度 Unicode 数据的数据类型,二者均使用 UNICODE UCS-2 字符集。

nchar(n)类型
包含 n 个字符的固定长度 Unicode 字符数据。n 的值必须介于 1 与 4,000 之间。存储大小为 n 字节的两倍。nchar 在 SQL-92 中的同义词为 national char 和 national character。

nvarchar(n)类型
包含 n 个字符的可变长度 Unicode 字符数据。n 的值必须介于 1 与 4,000 之间。字节的存储大小是所输入字符个数的两倍。所输入的数据字符长度可以为零。nvarchar 在 SQL-92 中的同义词为 national char varying 和 national character varying。
 
SQL Server 中易混淆的数据类型

(1)char、varchar、text和nchar、nvarchar、ntext
  char和varchar的长度都在1到8000之间,它们的区别在于char是定长字符数据,而varchar是变长字符数据。所谓定长就是长度固定的,当输入的数据长度没有达到指定的长度时将自动以英文空格在其后面填充,使长度达到相应的长度;而变长字符数据则不会以空格填充。text存储可变长度的非Unicode数据,最大长度为2^31-1(2,147,483,647)个字符。

  后面三种数据类型和前面的相比,从名称上看只是多了个字母"n",它表示存储的是Unicode数据类型的字符。写过程序的朋友对Unicode应该很了解。字符中,英文字符只需要一个字节存储就足够了,但汉字众多,需要两个字节存储,英文与汉字同时存在时容易造成混乱,Unicode字符集就是为了解决字符集这种不兼容的问题而产生的,它所有的字符都用两个字节表示,即英文字符也是用两个字节表示。nchar、nvarchar的长度是在1到4000之间。和char、varchar比较:nchar、nvarchar则最多存储4000个字符,不论是英文还是汉字;而char、varchar最多能存储8000个英文,4000个汉字。可以看出使用nchar、nvarchar数据类型时不用担心输入的字符是英文还是汉字,较为方便,但在存储英文时数量上有些损失。

  (2)datetime和smalldatetime

  datetime:从1753年1月1日到9999年12月31日的日期和时间数据,精确到百分之三秒。

  smalldatetime:从1900年1月1日到2079年6月6日的日期和时间数据,精确到分钟。

  (3)bitint、int、smallint、tinyint和bit

  bigint:从-2^63(-9223372036854775808)到2^63-1(9223372036854775807)的整型数据。

  int:从-2^31(-2,147,483,648)到2^31-1(2,147,483,647)的整型数据。

  smallint:从-2^15(-32,768)到2^15-1(32,767)的整数数据。

  tinyint:从0到255的整数数据。

  bit:1或0的整数数据。

  (4)decimal和numeric

  这两种数据类型是等效的。都有两个参数:p(精度)和s(小数位数)。p指定小数点左边和右边可以存储的十进制数字的最大个数,p必须是从 1到38之间的值。s指定小数点右边可以存储的十进制数字的最大个数,s必须是从0到p之间的值,默认小数位数是0。

  (5)float和real

  float:从-1.79^308到1.79^308之间的浮点数字数据。

  real:从-3.40^38到3.40^38之间的浮点数字数据。在SQL Server中,real的同义词为float(24)。

-----------------------------------------------------------------------------------------
ibatis中如果有个固定需要拼的where字段,而又用了动态where则可写成如下形式,保证每次固定的where字段都存在

          <isnotempty property="id" prepend="AND"></isnotempty>
            ID=#id#
         
          <isempty property="id" prepend="AND"></isempty>
          1=1
         
          AND PARA.PARA_TYPE='PTTY'
如果id为空则执行isEmpt那就是1=1 and PARA.PARA_TYPE='PTTY'
如果id不为空就是ID=#id# and PARA.PARA_TYPE='PTTY'
从而保证了PARA.PARA_TYPE='PTTY'这句话一定被拼上
----------------------------------------------------------------------------------------
要对一个表进行2个不同条件查询并且返回同一个字段的2个不同值的sql:
通过起不同的别名达到目的
  select ACC.EMP_ID,ACC.DP_ID,ACC.AC_ID,ACC.md_id,ACC.PROCESS_TIME,ACC.PROC_LIMIT,ACC.TYPE,ACC.ACCD_REASON,ACC.FAILURE,ACC.TOOLS,ACC.RESULTS,ACC.CREATE_TIME,ACC.RMKS,PER.EMP_NAME,DEP.DEPT_NAME,PARA1.CODE_DESC,TYPE.TRANS_MODEL_CODE,PARA2.CODE_DESC from TB_TMS_ACCDBASE ACC
  LEFT JOIN TB_TMS_PERSON PER ON ACC.EMP_ID=PER.EMP_ID
  LEFT JOIN TB_TMS_DEPT DEP ON ACC.DP_ID=DEP.DP_ID
  LEFT JOIN TB_TMS_SYS_PARA_DTL PARA1 ON ACC.TYPE=PARA1.PARA_CODE AND PARA1.PARA_TYPE='ACTY'
  LEFT JOIN TB_TMS_SYS_PARA_DTL PARA2 ON ACC.PROC_LIMIT=PARA2.PARA_CODE AND PARA2.PARA_TYPE='LMTY'
  LEFT JOIN TB_TMS_TRANS_TYPE TYPE ON ACC.MD_ID=TYPE.MD_ID
要对TB_TMS_SYS_PARA_DTL分别通过para_type='acty' para_type='lmty'两个条件返回code_desc的2个不同的值就可以做如下左连接
  LEFT JOIN TB_TMS_SYS_PARA_DTL PARA1 ON ACC.TYPE=PARA1.PARA_CODE AND PARA1.PARA_TYPE='ACTY'
  LEFT JOIN TB_TMS_SYS_PARA_DTL PARA2 ON ACC.PROC_LIMIT=PARA2.PARA_CODE AND PARA2.PARA_TYPE='LMTY'
从而取代where条件
-----------------------------------------------------------------------------------------
javascript:
如果想让一个连接执行一个js代码可以写成如下形式
添加新的处理方法
-----------------------------------------------------------------------------------------
初次见到这两个单词并没有什么特别的感觉,但是时间长了,却发现书上一会儿用override,一会儿又用overload,搞得我的迷迷糊。于是就做了个总结,希望能对和我一样对这两个概念模糊不清的网友有一个帮助。
override可以翻译为覆盖,从字面就可以知道,它是覆盖了一个方法并且对其重写,以求达到不同的作用。对我们来说最熟悉的覆盖就是对接口方法的实现,在接口中一般只是对方法进行了声明,而我们在实现时,就需要实现接口声明的所有方法。除了这个典型的用法以外,我们在继承中也可能会在子类覆盖父类中的方法。在覆盖要注意以下的几点:
1、覆盖的方法的标志必须要和被覆盖的方法的标志完全匹配,才能达到覆盖的效果;
2、覆盖的方法的返回值必须和被覆盖的方法的返回一致;
3、覆盖的方法所抛出的异常必须和被覆盖方法的所抛出的异常一致,或者是其子类;
4、被覆盖的方法不能为private,否则在其子类中只是新定义了一个方法,并没有对其进行覆盖。
overload对我们来说可能比较熟悉,可以翻译为重载,它是指我们可以定义一些名称相同的方法,通过定义不同的输入参数来区分这些方法,然后再调用时,VM就会根据不同的参数样式,来选择合适的方法执行。在使用重载要注意以下的几点:
1、在使用重载时只能通过不同的参数样式。例如,不同的参数类型,不同的参数个数,不同的参数顺序(当然,同一方法内的几个参数类型必须不一样,例如可以是fun(int, float), 但是不能为fun(int, int));
2、不能通过访问权限、返回类型、抛出的异常进行重载;
3、方法的异常类型和数目不会对重载造成影响;
4、对于继承来说,如果某一方法在父类中是访问权限是priavte,那么就不能在子类对其进行重载,如果定义的话,也只是定义了一个新方法,而不会达到重载的效果。
-------------------------------------------------------------------------------------------
ORACLE中USING的用法

select * from TB_TMS_TRANSMITTER
LEFT JOIN TB_TMS_STATION USING(ST_ID)
相当于

select * from TB_TMS_TRANSMITTER TRANS
LEFT JOIN TB_TMS_STATION STA TRANS.将STA.ST_ID
这也太懒了吧。。。。。。。
------------------------------------------------------------------------------------------
sqlserver中判断某时间点是否在某时间段之内
where
   DATEDIFF(d ,  #startDate# , DDATE )>= 0
  AND DATEDIFF(d , DDATE , #endDate#) >= 0

-----------------------------------------------------------------------------------------
JAVA对日期进行格式化:
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
ParsePosition pos = new ParsePosition(0);
Date d = formatter.parse(dStr, pos);
使用此方法可以对日期格式进行控制
如果想控制格式可使用formatter.format(date);
-----------------------------------------------------------------------------------------
calender类型,用来算日期
例如:给出某个日期,算出此日期所在的周的星期一是哪天
cal.set(Calendar.DAY_OF_WEEK,Calendar.MONDAY);
calender重载set类。可以算出星期一到星期日的日期也就是换第二个参数类型
加减日期callender.add(计算的类型,天数);跨越会自动计算
-----------------------------------------------------------------------------------------
 Cannot create iterator for this collection
表明request中没有这个序列
检查相关action中的request.setAttribute()设置
-----------------------------------------------------------------------------------------
让鼠标变小手的事件 onmouseover="this.style.cursor='pointer';"
windows.open的所有参数
function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}
onload="MM_openBrWindow('js.rtf','d','toolbar=yes,location=yes,status=yes,menubar=yes,scrollbars=yes,resizable=yes,width=111,height=222')">
---------------------------------------------------------------------------------------- <html:optionscollection> <html:select> <html:form> <html:text property="title">

</html:text> </html:form> </html:select> </html:optionscollection>

 

 

 

 
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics