2010年07月08日

转:一般情况下alt+/有代码提示作用,还有代码提示的快捷代码也不是alt+/,因此要恢复代码提示用alt+/.需要做两件事.
在 Window – Preferences – General – Keys 内
1、把word completion的快捷键设置alt+C
2、把Content Assist的快捷键由ctrl+space改成alt+/

如果还是不提示,极有可能是提示功能被关了.
如下:
1、菜单window->Preferences->Java->Editor->Content Assist->Enable auto activation 选项要打上勾
2、window->Preferences->Java->Editor->Content Assist->Advanced   上面的选项卡Select the proposal kinds contained in the ‘default’ content assist list: 中把 Other Java Proposals 选项打上勾就可以了。

2008年06月10日

在web应用程序中,最好在java web应用程序中定义标准html错误页,以确保特定问题总能路由到指定URL。J2EE允许使用部署描述符,声明性的为错误指定URL映射。
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
    "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
      //表示所有404错误都路由到URL/errors/404Handler.html
      <error-page>
             <error-code>404</error-code>
             <location>/errors/404Handler.html</location>
      </error-page>
      //将所有IOException转到web应用程序的/errors/ioPage.jsp
      <error-page>
              <exception-type>java.io.IOException</exception-type>
              <location>/errors/ioPage.jsp</location>
       <error-page>
       //使登陆表单中的任何错误路由到/errors/loginErr.jsp
       <login-config>
              <auth-method>FORM</auth-method>
              <form-login-config>
                      <form-login-page>/forms/login.jsp</form-login-page>
                      <form-error-page>/errors/loginErr.jsp</form-error-page>
              </form-login-config>
        </login-config>
</web-app>

2008年05月17日

据纹川7.8级地震已经6天了,每每看到那一个个报道,一幅幅画面,依然无法控制自己的情绪。
当12日下午两点多,听深圳和上海的朋友分别说他们那边地震了,还没有什么特别的感觉,甚至后来知道四川汶川震中7.8级地震,也不觉得有多严重,毕竟没有看到过这么高震级的地震。直到晚上看到新闻中的报道,看到一幅幅惨不忍睹的画面,我才意识到这是一次多么严重的灾难。
看到武警官兵和解放军,以及一支支救援的队伍赶赴灾区,看到了祖国人民团结起来的力量是多么伟大,相信在温总理的领导下,抗震救灾一定会取得圆满的成功!看到总理一直在救灾一线指挥大家救灾,很感动,真心的想说一句:总理保重身体!
这次地震给我最大的震撼就是那么多学校受损,那么多祖国未来的花朵就这样无法看到祖国美好的未来了。我的心中始终无法理解,为什么学校灾情这么严重呢?为什么这么严重的地震没有预测到呢?76年唐山地震可以理解,那个时候祖国毕竟还较为落后,可是现在那么多先进的设备和精湛的技术,怎么还是伤亡了这么多人,造成了那么大的损失!值得深思啊!
刚刚看到存活了107小时的一名伤者被解救出来,已经过了72小时救治的黄金时间,真的希望还有更多的生命力顽强的灾区人民!
祝福灾区人民,祝福祖国!

2008年05月10日

declare     //声明变量v1,v2,v3分别代表三个字段,projsheet_id,constrain,comp_id
v1 number;
v2 varchar2(20);
v3 number;
cursor v_xx is      //定义游标
select  proj.PROJSHEET_ID,pro.constrain,
case when processname like ‘%长春%’ then 1
when processname like ‘%吉林%’ then 2
when processname like ‘%延边%’ then 3
when processname like ‘%四平%’ then 4
when processname like ‘%通化%’ then 5
when processname like ‘%白城%’ then 6
when processname like ‘%辽源%’ then 7
when processname like ‘%松原%’ then 8
when processname like ‘%白山%’ then 9
when processname like ‘%业务支撑中心%’ then 41
when processname like ‘%数据业务中心%’ then 42
when processname like ‘%网管中心%’ then 43
when processname like ‘%客户服务中心%’ then 44
else -1 end as comp_id
        from processdescription pro,process p,projsheet,
        (select * from projectSchedule proj
        where proj.baselineflag=0
        )proj
        where pro.processdescription_id = proj.processdescription_id
        and projsheet.projsheet_id = proj.projsheet_id
        and pro.process_id = p.process_id
        and pro.constrain like ‘____%’
        and pro.process_id not in (125,126,127,128,139,140,141,142,143)
        and length(pro.constrain)=4
        start with pro.processdescription_id
        in (select process.processdescription_id from processDescription process where flag=0)
        connect by prior pro.processdescription_id = pro.flag;
begin
open v_xx;  //打开游标
loop    //循环
fetch v_xx   //找到游标中的每条记录进行更新
into v1,v2,v3;

update projectSchedule set comp_id=v3
where PROJSHEET_ID=v1 and substr(constrain,1,4)=v2;

exit when v_xx%notfound;  //循环终止条件
end loop;
close v_xx; //关闭游标

end;

2008年04月30日

导出页面:
<%@ page contentType="application/vnd.ms-excel; charset=gb2312" language="java" %>
<%@taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
<%@taglib uri="http://java.sun.com/jstl/fmt" prefix="fmt" %>
 <html xmlns:o="urn:schemas-microsoft-com:office:office"
 xmlns:x="urn:schemas-microsoft-com:office:excel"
 xmlns="http://www.w3.org/TR/REC-html40">
 <head>
 <meta http-equiv=Content-Type content="text/html; charset=gb2312">
 <meta name=ProgId content=Excel.Sheet>
 <meta name=Generator content="Microsoft Excel 11">
 <link rel=File-List href="Book1.files/filelist.xml">
 <link rel=Edit-Time-Data href="Book1.files/editdata.mso">
 <link rel=OLE-Object-Data href="Book1.files/oledata.mso">
<style>
<!–table
    {mso-displayed-decimal-separator:"\.";
    mso-displayed-thousand-separator:"\,";}
@page
    {margin:1.0in .75in 1.0in .75in;
    mso-header-margin:.5in;
    mso-footer-margin:.5in;}
tr
    {mso-height-source:auto;
    mso-ruby-visibility:none;}
col
    {mso-width-source:auto;
    mso-ruby-visibility:none;}
br
    {mso-data-placement:same-cell;}
.style0
    {mso-number-format:General;
    text-align:general;
    vertical-align:middle;
    white-space:nowrap;
    mso-rotate:0;
    mso-background-source:auto;
    mso-pattern:auto;
    color:windowtext;
    font-size:12.0pt;
    font-weight:400;
    font-style:normal;
    text-decoration:none;
    font-family:宋体;
    mso-generic-font-family:auto;
    mso-font-charset:134;
    border:none;
    mso-protection:locked visible;
    mso-style-name:常规;
    mso-style-id:0;}
td
    {mso-style-parent:style0;
    padding-top:1px;
    padding-right:1px;
    padding-left:1px;
    mso-ignore:padding;
    color:windowtext;
    font-size:12.0pt;
    font-weight:400;
    font-style:normal;
    text-decoration:none;
    font-family:宋体;
    mso-generic-font-family:auto;
    mso-font-charset:134;
    mso-number-format:General;
    text-align:general;
    vertical-align:middle;
    border:none;
    mso-background-source:auto;
    mso-pattern:auto;
    mso-protection:locked visible;
    white-space:nowrap;
    mso-rotate:0;}
.xl24
    {mso-style-parent:style0;
    font-size:10.0pt;
    text-align:center;
    border:.5pt solid windowtext;}
.xl25
    {mso-style-parent:style0;
    color:black;
    font-size:10.0pt;
    font-family:Verdana, sans-serif;
    mso-font-charset:0;
    text-align:center;
    border-top:.5pt solid windowtext;
    border-right:.5pt solid windowtext;
    border-bottom:.5pt solid windowtext;
    border-left:none;}
.xl26
    {mso-style-parent:style0;
    font-size:10.0pt;
    text-align:center;
    border-top:none;
    border-right:.5pt solid windowtext;
    border-bottom:.5pt solid windowtext;
    border-left:none;}
.xl27
    {mso-style-parent:style0;
    font-size:10.0pt;
    text-align:center;
    border-top:.5pt solid windowtext;
    border-right:.5pt solid windowtext;
    border-bottom:.5pt solid windowtext;
    border-left:none;}
.xl28
    {mso-style-parent:style0;
    font-size:10.0pt;
    border:.5pt solid windowtext;
    white-space:normal;}
.xl29
    {mso-style-parent:style0;
    font-size:10.0pt;
    mso-number-format:"0\.00_ ";
    border:.5pt solid windowtext;}
ruby
    {ruby-align:left;}
rt
    {color:windowtext;
    font-size:9.0pt;
    font-weight:400;
    font-style:normal;
    text-decoration:none;
    font-family:宋体;
    mso-generic-font-family:auto;
    mso-font-charset:134;
    mso-char-type:none;
    display:none;}
–>
</style>

</head>

<body link="blue" vlink="purple">

<table x:str border="0" cellpadding="0" cellspacing="0" width="1445" style=’border-collapse:
 collapse;table-layout:fixed;width:1085pt’>
 <col width="242" style=’mso-width-source:userset;mso-width-alt:7744;width:182pt’>
 <col width="137" style=’mso-width-source:userset;mso-width-alt:4384;width:103pt’>
 <col width="122" style=’mso-width-source:userset;mso-width-alt:3904;width:92pt’>
 <col width="72" span="12" style=’width:54pt’>
</table>
</body>
</html>
 <col width="80" style=’mso-width-source:userset;mso-width-alt:2560;width:60pt’>

首先在*-servlet.xml中配置Spring自带的处理多附件上传的bean:
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"/>

然后在控制器(controller)中进行处理:
//上传附件
public Map uploadFile(HttpServletRequest request, HttpServletResponse response)
            throws Exception {

        try {
            MultipartHttpServletRequest mpRequest = (MultipartHttpServletRequest) request;
            AccessoryVO accessoryVO = new AccessoryVO();
            accessoryVO.setAccessTitle(mpRequest.getParameter("accesstitle"));
            accessoryVO.setFlag(new Integer(mpRequest.getParameter("flag")));//附件所属类型
            accessoryVO.setFileDataVO(bindAccessory(mpRequest));

            String id = mpRequest.getParameter("id");
            if(id != null && !"".equals(id.trim())){
                 accessoryVO.setId(new Integer(id));
            }
            long fileId = accessoryManager.insertAccessory(accessoryVO);

            String[] fileNames = accessoryVO.getFileDataVO().getFileName().split("\\");
            String fileName = fileNames[fileNames.length - 1];
            Map model = new HashMap();
            model.put("accessoryTitle", accessoryVO.getAccessTitle());
            model.put("fileName", fileName);
            model.put("fileId", new Long(fileId));
            return model;

        } catch (Exception e1) {
            e1.printStackTrace();
            return null;
        }
    }

private FileDataVO bindAccessory(MultipartHttpServletRequest mpRequest) throws IOException {
        FileDataVO fileDataVO = new FileDataVO();
        Iterator it = mpRequest.getFileNames();
        if (it.hasNext()) {
            String filename = (String) it.next();
            CommonsMultipartFile file = (CommonsMultipartFile) mpRequest.getFileMap().get(filename);
            fileDataVO.setFileName(file.getOriginalFilename()); // 获得文件名,这个文件名包括路径:
            fileDataVO.setContentType(file.getContentType());
            fileDataVO.setFileSize(file.getSize());
            fileDataVO.setFileStream(FileCopyUtils.copyToByteArray(file.getInputStream()));
        }
        return fileDataVO;
    }

//显示下载附件
public void showBinaryFile(HttpServletRequest request, HttpServletResponse response)
            throws Exception {

        long id = Long.parseLong(request.getParameter("fileId"));

        try {
            FileDataVO fileDataVO = accessoryManager.showBinary(id);//到后台select附件
            response.setContentType(fileDataVO.getContentType());
            ServletOutputStream f = response.getOutputStream();
            f.write(fileDataVO.getFileStream());
            f.flush();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

首先配置dataAccessContext.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

<beans>
    <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="location">
            <value>classpath:/jdbc.properties</value>
        </property>
    </bean>

    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
        <property name="driverClassName">
            <value>${jdbc.driverClassName}</value>
        </property>
        <property name="url">
            <value>${jdbc.url}</value>
        </property>
        <property name="username">
            <value>${jdbc.username}</value>
        </property>
        <property name="password">
            <value>${jdbc.password}</value>
        </property>
    </bean>

    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource">
            <ref local="dataSource"/>
        </property>
    </bean>

     <!– LobHandler for Oracle JDBC drivers –>
     <!– (refers to the NativeJdbcExtractor above to get access to native OracleConnections) –>
     <bean id="oracleLobHandler" class="org.springframework.jdbc.support.lob.OracleLobHandler" lazy-init="true">
         <property name="nativeJdbcExtractor"><ref local="nativeJdbcExtractor"/></property>
     </bean>

     <bean id="nativeJdbcExtractor" class="org.springframework.jdbc.support.nativejdbc.CommonsDbcpNativeJdbcExtractor" lazy-init="true"/>

    <!– SqlMap setup for iBATIS Database Layer –>
    <bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
        <property name="configLocation">
            <value>classpath:/sql-map-config.xml</value>
        </property>
        <property name="dataSource"><ref local="dataSource"/></property>
        <property name="lobHandler"><ref local="oracleLobHandler"/></property>
    </bean>

    </beans>
然后在sql-map-config.xml中添加typehandle的全局配置:
<typeHandler jdbcType="BLOB" javaType="[B" callback="org.springframework.orm.ibatis.support.BlobByteArrayTypeHandler"/>
    <typeHandler jdbcType="CLOB" javaType="java.lang.String" callback="org.springframework.orm.ibatis.support.ClobStringTypeHandler"/>

最后在配置sql语句的xml中这样处理即可:
<insert id="insertFileData">
        <selectKey resultClass="java.lang.Long" keyProperty="fileId">
            SELECT SEQ_FILEDATA.NEXTVAL AS id FROM DUAL
        </selectKey>
        INSERT INTO filedata
        (fileid,filename,contenttype,filestream,filesize)
        VALUES(
        #fileId#,#fileName#,#contentType#,#fileStream#,#fileSize#)
    </insert>

    <resultMap id="FileData-Result-List" class="com.harvest.mcpc.accessory.domain.FileDataVO">
        <result property="fileId" column="fileId"/>
        <result property="fileName" column="fileName"/>
        <result property="contentType" column="contentType"/>
        <result property="fileSize" column="fileSize"/>
        <result property="fileStream" column="fileStream" jdbcType="BLOB"/>
    </resultMap>

    <select id="getFileDataStream" resultMap="FileData-Result-List">
        SELECT * FROM filedata WHERE fileid = #value#
    </select>

3年的研究生学习结束了,本以为毕业了应该很高兴,终于结束了19年的学生生涯,但是感觉和想象的完全不一样。毕业了,离开学校,不再是学生,同学们各奔东西……伤感远远多于兴奋!三年的学习生活似乎过得很快,可能因为一直处在一种忙忙碌碌的状态下吧!在这三年里,参与了很多项目,收获颇丰,很感谢身边的几位老师对我的谆谆教导,让我懂得了如何学习,如何工作,如果做人!以后还要和他们一起工作,希望可以从他们身上学习到更多东西。在校学习阶段结束了,我要开始朝着自己的目标奋斗了,希望一切都可以顺利!也希望我身处各地的同学们都能在自己的一片天地里大展拳脚,真心的祝福我的各位同学们!

2007年07月26日

不知不觉,7月份又要过去了,时间过得好快,也越来越逼近我毕业的日子。本来学校是十月份有一次中期检查,可是今年又改了规矩,变成答辩前两次检查,分别在8月份和11月份。马上就8月份了,还什么想法都没有,一个字,愁!那天见导师,他说:“你们这群学生,上课就不会做项目,做了项目又不知道写论文”。我总结他的这句话就是说我们都是单线程的,哎……我们也有我们的难处啊!现在只能白天做项目,不加班的前提下晚上准备论文了,可是真的不知道如何着手!祈祷8月份的检查顺利通过!

2007年07月07日

昨天白天好闷热,终于在下班的高峰时刻,暴雨突袭,7月份的17:00居然已经黑天,乌云密布。只能在办公室里等待雨渐渐的小下来,本来和同事约好了去吃饭,下雨也不影响,18:40分雨小了,换下了运动鞋,穿上备在公司的拖鞋,冲了出去,雨确实小了很多,外面地上浅浅的一层水。走到小区门口,看到人民大街堵车很严重,猜想估计马路上水很深,因为这边地势比较低,果然不出我所料,齐膝深的水,好在那时雨不大,比较有兴致,反正打车也是堵在那里(其实都没有空车),索性就趟水走过去吧,想走到好打车的地方,再打车去我们订好的饭店,可是没想到,我们就这样雨中漫步了90分钟,也没见到空车,徒步走到了吃饭的地方。一点都不觉得累,不过真的很饿了:),多么难忘的一天啊!饭也吃得特别香!下次还要去那里吃烤鱼!那里的烤鱼真的很香,可惜我没记住饭店的名字,同事介绍去的(不过我记得在什么位置,下次记得看看名字)