Posted by 唧唧  | tags:
				
					SQL  
				
					Excel  
				
					xls  
				
			
			用法: bcp {dbtable | query} {in | out | queryout | format} 数据文件 
  [-m 最大错误数]             [-f 格式化文件]         [-e 错误文件] 
  [-F 首行]                   [-L 末行]             [-b 批大小] 
  [-n 本机类型]               [-c 字符类型]         [-w 宽字符类型] 
  [-N 将非文本保持为本机类型] [-V 文件格式版本]     [-q 带引号的标识符] 
  [-C 代码页说明符]           [-t 字段终止符]       [-r 行终止符] 
  [-i 输入文件]               [-o 输出文件]         [-a 数据包大小] 
  [-S 服务器名称]             [-U 用户名]           [-P 密码] 
  [-T 可信连接]               [-v 版本]             [-R 允许使用区域设置] 
  [-k 保留空值]               [-E 保留标识值] 
  [-h"加载提示"]              [-x 生成 xml 格式化文件]
实例:
运行  复制  保存   sql代码 
       
    EXEC  sp_configure ´show advanced options´, 1    
    RECONFIGURE    
    EXEC  sp_configure ´xp_cmdshell´, 1    
    RECONFIGURE    
       
       
    EXEC  master..xp_cmdshell ´bcp pcoa.dbo.OA_AddressList  out  d:\ temp .xls -c -q -S  "127.0.0.1"  -U "sa"  -P "sa" ´    
       
       
    EXEC  sp_configure ´show advanced options´, 1    
    RECONFIGURE    
    EXEC  sp_configure ´xp_cmdshell´, 0    
    RECONFIGURE   
 
 
 
其中:pcoa.dbo.OA_AddressList  pcoa是指数据库名字,OA_AddressList是需要导出的表名字; 
 
后面的 127.0.0.1  sa  sa 分别指数据库地址和登录帐号和密码。
...
 
			
			
			
			
				Posted by 唧唧  | tags:
				
					iBatis  
				
					JDBC  
				
					SQL  
				
			
			在日常开发当中,我们可能会遇到这种情况,想使用单独一条SQL更新某一个字段,如果没有配置详细的VO和sqlMap-xml映射,一般人第一反应就是使用JDBC直接操作。 
以下的做法只是"偷懒的",不推荐时常或者全部使用这种做法!这种做法等于直接在代码中写sql,脱离了iBatis的框架,会导致代码可读性差和维护困难。
//sqlMapClient 为你的 sqlMapClient 对象,具体获取方法由当前代码决定
String updateSql = "UPDATE ARCHIVE SET groupId=´"+ groupId + "´ where id="+ id; 
Connection conn = sqlMapClient.getDataSource().getConnection(); 
conn.setAutoCommit(true);
...
 
			
			
			
			
				Posted by 唧唧  | tags:
				
					jdocb  
				
			
			今天在维护一个项目的时候,突然碰到一个问题: public Wordjdocb() {         word = new ActiveXComponent("Word.Application");         word.setProperty("Visible", new Variant(false));         documents = word.getProperty("Documents").toDispatch();         saveOnExit = false; } 红色行先后报错:
java.lang.NoClassDefFoundError  at com.gzxf.common.word.dao.Wordjdocb.<init>(Wordjdocb.java:35)  at com.gzxf.common.word.dao.Up_visit_send.getUp_visit_send(Up_visit_send.java:65)  at com.gzxf.common.word.dao.WordDao.getUp_visit_send(WordDao.java:230)  ....... 44 e.lentth39
java.lang.UnsatisfiedLinkError: no jacob in java.library.path  at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1517)  at java.lang.Runtime.loadLibrary0(Runtime.java:788)  at java.lang.System.loadLibrary(System.java:834)  at com.jacob.com.Dispatch.<clinit>(Dispatch.java)  at com.gzxf.common.word.dao.Wordjdocb.<init>(Wordjdocb.java:35)  at com.gzxf.common.word.dao.Up_visit_send.getUp_visit_send(Up_visit_send.java:65)  .....  at java.lang.Thread.run(Thread.java:534) 48 e.lentth39
...
 
			
			
			
			
				Posted by 唧唧  | tags:
				
					ajax  
				
					乱码  
				
			
			好久不用ajax,今天需要用到,却因为提交的中文乱码问题郁闷了半天,特整理出来与大家分享!
ajax Js 客户端: var data = "words="+encodeURI(encodeURI(_word));    //  注意,这里把需要提交的中文字符串进行两次 encodeURI  xmlhttp.open("post",postAction, true);    xmlhttp.setRequestHeader('Content-type','application/x-www-form-urlencoded'); xmlhttp.send(data);
ajax Java 服务器端:  String words= request.getParameter("words"); words= java.net.URLDecoder.decode(words, "UTF-8");
...
 
			
			
			
			
				Posted by 唧唧  | tags:
				
					Tomcat  
				
					中文乱码  
				
			
			本来解决 Tomcat 中文乱码很久了,但是今天重装了一下Tomcat,忘记配置了,结果用URL get方式传递的中文参数出现了乱码,这里就再提一下不用filter,直接修改Tomcat配置文件的解决方法:
Tomcat5+已经把get和post分开处理了,其设置编码方式也有所不同。 根据 http://tomcat.apache.org/tomcat-5.5-doc/config/http.html  得需要设置URIEncoding & useBodyEncodingForURI,否则默认编码方式为"ISO-8859-1"
这里以Tomcat 5.0 为例,其他版本的类似,修改  conf/server.xml :
...
 
			
			
			
			
				Posted by 唧唧  | tags:
				
					String  
				
					substring  
				
					subSequence  
				
			
			      今天截取字符串的时候,无意中发现了subSequence,并且不小心用上了,呵呵,发现同样能和substring一样截取,效果一模一样。我就好奇地翻看了一下源码:
public CharSequence subSequence(int beginIndex, int endIndex) {            return this.substring(beginIndex, endIndex);  }
      根据JDK的文档,String.subSequence只是为了实现CharSequence接口上的同名方法而放在那里的,其行为与String.substring一样。
...
 
			
			
			
			
				Posted by 唧唧  | tags:
				
					Java  
				
					时间比较  
				
			
			在项目开发当中,我们时常碰到要比较两个时间或者与当前时间相差多少天,多少个月,多少年的问题。
本人结合网上的一些例子,稍作修改,提供出下面示例,与网友们分享。
java代码 
package  com.test;     
  
import  java.text.DateFormat;    
import  java.text.SimpleDateFormat;    
import  java.util.Calendar;    
import  java.util.Date;    
  
  
    
   
    
  
public   class  DateTest {    
  
     public   static   void  main(String[] args) {    
        String date =  "2008-06-12" ;    
            
        DateTest.compareDate(date,  null ,  0 );    
        DateTest.compareDate(date,  null ,  1 );    
        DateTest.compareDate(date,  null ,  2 );    
            
        date =  "2006-06-03" ;            
        DateTest.compareDate(date,  null ,  0 );    
        DateTest.compareDate(date,  null ,  1 );    
        DateTest.compareDate(date,  null ,  2 );    
        DateTest.compareDate(date,  "2009-06-01" ,  0 );    
        DateTest.compareDate(date,  "2009-06-01" ,  1 );    
        DateTest.compareDate(date,  "2009-06-01" ,  2 );    
    }    
        
       
   
   
   
   
    
     public   static   int  compareDate(String date1,String date2, int  stype){    
         int  n =  0 ;    
            
        String[] u = { "天" , "月" , "年" };    
        String formatStyle = stype== 1 ? "yyyy-MM" : "yyyy-MM-dd" ;    
            
        date2 = date2== null ?DateTest.getCurrentDate():date2;    
            
        DateFormat df =  new  SimpleDateFormat(formatStyle);    
        Calendar c1 = Calendar.getInstance();    
        Calendar c2 = Calendar.getInstance();    
         try  {    
            c1.setTime(df.parse(date1));    
            c2.setTime(df.parse(date2));    
        }  catch  (Exception e3) {    
            System.out.println( "wrong occured" );    
        }    
            
         while  (!c1.after(c2)) {                         
                
            n++;    
             if (stype== 1 ){    
                c1.add(Calendar.MONTH,  1 );              
            }    
             else {    
                c1.add(Calendar.DATE,  1 );               
            }    
        }    
            
        n = n- 1 ;    
            
         if (stype== 2 ){    
            n = ( int )n/ 365 ;    
        }       
            
        System.out.println(date1+ " -- " +date2+ " 相差多少" +u[stype]+ ":" +n);          
         return  n;    
    }    
        
       
   
   
    
     public   static  String getCurrentDate() {    
        Calendar c = Calendar.getInstance();    
        Date date = c.getTime();    
        SimpleDateFormat simple =  new  SimpleDateFormat( "yyyy-MM-dd" );    
         return  simple.format(date);    
  
    }    
}      
运行结果: 
...
 
			
			
			
			
				Posted by 唧唧  | tags:
				
					SQL  
				
					存储过程  
				
					遍历  
				
					数组  
				
			
			这里假设有 一串数组变量 "appNum1,appNum2,appNum3,appNum4,appNum5,appNum6,appNum7,appNum8"
当我们需要在存储过程中遍历这个数组的子项时,我们可以通过 CHARINDEX 或者结合Left,Right来分隔和遍历它
注意:由于字符串index的计算问题,下面定义变量的时候,需要在最后面增加一个逗号",",否则遍历的时候将缺少最后一个子项 
...
 
			
			
			
			
				Posted by 唧唧  | tags:
				
					SQL  
				
					存储过程  
				
					游标  
				
					遍历  
				
			
			我们在使用存储过程当中,有时在统计数据的时候,需要查询某表中的数据,并且得到指定字段的具体值,这时就需要用到游标查询来遍历表数据
示例:  这里有一个表(demo),字段结构和数据如下:
idf         namef                websitef ----------- -------------------- ------------------------------------------- 1           javawind             http://www.javawind.net  2           blog                 http://blog.javawind.net  3           csdn                 http://www.csdn.net  4           sun                  http://www.sun.com 
...
 
			
			
			
			
				Posted by 唧唧  | tags:
				
					SQL  
				
					DateTime  
				
					日期  
				
					时间  
				
			
			      我们知道SQL中表示日期和时间的数据类型为DateTime,数据格式如 '2009-04-13 11:00:27.857',日期和时间是结合在一起的,有时我们只想要日期不要时间,有时我们只要时间而不要日期。可以通过Convert()函数来达到我们的目的。 Convert()函数的功能是:将某种数据类型的表达式显式转换为另一种数据类型。Convert()函数的格式是:Convert(Data_Type[(Length)], Expression [, Style]) Data_Type[(Length)]为转换后的数据类型,Length为长度,可选(转换为某些数据类型时不需要写);Expression为备转换的表达式,Style为日期时间样式。 以系统函数GetDate()为例,其输出为系统当前时间,在查询分析器中输入: SELECT GetDate()    执行输出结果为:2009-04-13 11:00:27.857 只要日期不要时间,在查询分析器中输入: SELECT CONVERT(CHAR(10),GetDate(),120)    执行后输出结果为:2009-04-13 只要时间不要日期,在查询分析器中输入: SELECT CONVERT(CHAR(8),GetDate(),108)     执行后输出结果为:11:00:27 当在SQL查询表格数据或者where条件使用时 只需要把 GetDate() 改为字段名称即可!