2007年4月27日星期五

2007年4月26日 星期五

今天,上午培训,讲requirsitepro,好像还是从外面请来的人,不过也不过如此。

月底了,期盼着发工资。


2007年4月25日 星期四

    培训,上午开会讨论模块重用的征集,下午培训功能点估算的知识,讲的还不错,中午把信寄出去了,等反馈.

2007年4月24日 星期三

周三了,没什么事,写了封家书.天气真的热了,热了让我烦躁。

2007年4月25日星期三

2007年4月23日 星期二

今天温度真的升高了,苍天,我惧怕的夏季就要来了,一天下来也没做什么,看了看UML,朋友介绍有小试了一把C#,要用代码调用winrar来实现压缩包的解压,捣鼓了半天,终于出来了,没什么新鲜的,不过,现在是2.0了,确实有很多在1.1中没见过的类和方法,还有一些dll,看来要好好充充电了,哈哈.

     转眼,到了这个月底就上班一个月了,呵呵,虽然不是很忙没做什么重要的事,已经开始盼望着发工资了,呵呵,会是多少呢。

困了,不写了。

2007年4月24日星期二

2007年4月23日 星期一

       一天天一年年很快过去,呵呵,一天又过去了,自己没事画了画那个邮票系统的用例图,有个画的跟千手观音似的,哈哈。两外在csdn上逛发现netBeans宣传力度很大啊,下了一个安装,第一感觉跟jbuilder差不多嘛,没有什么新鲜感。

       今天刚被同学骂了一顿,呵呵,应该是同学吧,呵呵

       “(2007-04-23 13:02:44)   淡淡一笑(125233419)
我也不想跟你聊,最后再送你一句话:你真不是个男人,别活着了,死去啊,别以为自己有什么了不起的.
       (2007-04-23 12:59:51)   朝春文(122088025)
多谢”

      呵呵,我已经驰名了,哈哈,收效也慢了点,呵呵

       狗日的...

2007年4月23日星期一

2007年的暴风雨

新的一周,五一前的最后一周,周末再次与强大的“专制”交锋,也许是我的强硬,也许他们真的相通了,也许我高估了他们的那么专制,总的说来到现在好像取得 了小小的胜利,比想像的轻松,现在想起来好像有点做梦的感觉,有点不敢相信,这是真的么?他们什么时候这么好说话了?也许是我真的翅膀长硬了,他们制不住 了,不对,应该明确一个大道理,他们所做的一切还是都是为我好的,只是他们不了解我。

    事情先这样吧,既然大方向定了,其他的事应该水到渠成了吧,好好爱那个叫小娜的妞妞吧,欠她很多了。

2007年4月20日 星期五

这周的最后一天,五一临近了,我讨厌过节。

2007年4月19日 星期四

把交给我做的那个页面做完了,整理了两个例子,一个是jdbc连接oracle的例子,一个是jdbc从weblogic连接池获取数据源的例子,帖在下面供以后参考

2007年4月19日星期四

从weblogic连接池得到Connection

public class Test {

    public static void main(String[] args) {
        DataSource ds = null;
        Context ctx = null;
        Connection myConn = null;
        try {
            /*
            * 获得WebLogic ServerJNDI初始上下文信息
            */
            ctx = getInitialContext();
            /*
            * 建立数据源对象
            */
            ds = (javax.sql.DataSource) ctx.lookup("datasource");
        } catch (Exception e) {
            e.printStackTrace();
        }

    }

    private static Context getInitialContext() throws Exception {
        String url = "t3://localhost:7001";
        String user = "";// 对应的weblogic管理名字
        String password = "";// 密码
        Properties properties = null;
        try {
            properties = new Properties();
            properties.put(Context.INITIAL_CONTEXT_FACTORY,
                    "weblogic.jndi.WLInitialContextFactory");
            properties.put(Context.PROVIDER_URL, url);
            if (user != null) {
                properties.put(Context.SECURITY_PRINCIPAL, user);
                properties.put(Context.SECURITY_CREDENTIALS,
                        password == null ? "" : password);
            }
            return new InitialContext(properties);
        } catch (Exception e) {
            throw e;
        }
    }

}

jdbc连接oracle代码

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class OraSqlConnection {

    private String url = "jdbc:oracle:thin:@localhost:1521:主机字符串";

    private String user = "username";

    private String password = "pwd";

    private Connection conn;

    public OraSqlConnection() {
        try {

            Class.forName("oracle.jdbc.driver.OracleDriver");
            conn = DriverManager.getConnection(url, user, password);
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        System.out.println("get connection success");
    }
   
    public Connection getConnection()
    {
        new SqlConnectionUtil();
        return this.conn;
    }
   
   

    public static void main(String[] args) {
        new SqlConnectionUtil();
       
    }

}
其中需要的oracle驱动是一个叫classes12.jar的包

2007年4月18日 星期三

一天又过去了,马上夏天就要来了,中午出去吃饭,见外面漫天飞舞着杨树开花结下的果实,跟旁边来自湖南的同事说那是杨树结下来的,并指给他看哪个是杨树,哈哈,他从没有见过,这两天越发严重,温度升高了,今天晚上回来空气中飞的跟下雪一样让人呼吸困难.

     今天上午没什么事,看着需求分析培训的文档试着写那个邮票管理系统的功能 列表,没写完,中午吃完饭回来就被叫去安排了个小活儿,作个小页面,实现update,要连oracle数据库,以前知识上课的时候学过,后来几没用过 了,折腾了半天,在网上搜,发现我竟然忘了个一干二净哈哈,然后就是竟然要我把所有的java代码在jsp文件里写,我日,弄得我那个晕呐,真佩服他们那 些复杂的页面是怎么写出来的.

    好了不说这些罗嗦的了。

2007年4月17日 星期二

哈哈,签下债了,要写的这天也什么事,借来的笔记本还给人家了,呵呵,没的玩了

     没分配什么活,签的合同公司盖了章发下来了,还发了个卡,让上下班打卡,哈哈,下了班尝了尝鲜,就这样开始了我的民工生活,想想以后的日子,大概也就是这样吧.

     希望有一天,我可以没有心事的做我的工作,过我的生活.谢谢.

2007年4月17日星期二

2007年4月16日 星期一

   新的一周,今天请假去照身份证的像了,狗日的,打的费花了40呜呜呜。
     把前两天做的上传图片的程序加上了spring,现在成了struts+spring+hibernate,Ioc控制反转,spring封装的我们什么也看不见,配置以下就可以用这个对象了。

2007年4月13日星期五

2007年4月13日 星期五

要签合同了,卖给人家了,呵呵,新的开始。

2007年4月12日 星期四

昨天干啥了?呵呵,昨天没过来写,哈哈现在是周五了,噢对,哈哈,昨天有活干了,让我做一个上传图片,把图片报存在数据库中,然后再读出来显示,要能查 询、添加、删除。好了动手吧,以前做过一个上传图片,但是不是把图片报存在数据库中,大同小异了。把关键代码贴在这里,供以后参考。

-----------------------------上传页面---------------------------------------------------------------
<%@page contentType="text/html; charset=gb2312" %>
<%@ taglib uri="/WEB-INF/struts-html" prefix="html"%>

<html>
    <head>
        <title>上传图片</title>
    </head>


<body>
    <h2>选择图片(JPEG格式, 大小小于1M)</h2>
    <br>
   
    <html:form action="/upload.do" enctype="multipart/form-data">
        <html:errors/>
        <table>
        <tr>
            <TD><html:file property="file" size="50"></html:file></TD>
        </tr>
        <TR height="20" valign="top" topmargin="0">
            <TD>备注:</TD>   
        </tr>
        <tr>
            <TD><html:textarea rows="3" cols="40" property="memo"></html:textarea></TD>       
        </TR>
        <tr>
            <tr height="20">
        </tr>
        <tr>
            <TD height="22" align="center">
        <html:submit>&nbsp;上&nbsp;&nbsp;传&nbsp;</html: submit>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="button" value="&nbsp;取&nbsp;&nbsp;消&nbsp;" onclick="window.close()"/></TD>
        </tr>
       
        </table>
    </html:form>
</body>

</html>

--------------------------------------action--UploadAction-----------------------------------------------------

public ActionForward execute(ActionMapping mapping, ActionForm form,
            HttpServletRequest request, HttpServletResponse response) throws Exception {
       
        response.setCharacterEncoding("gb2312"); //如果不设置,弹出的提示框是乱码
       
        UploadForm uploadForm = (UploadForm) form;
        FormFile file = uploadForm.getFile();
        String memo = uploadForm.getMemo();

        String fileName = file.getFileName();
        int length = file.getFileSize();

        InputStream imgStream = null;

        ActionMessages msgs = new ActionMessages();
        //向数据库插入记录
        try {
            imgStream = file.getInputStream();
            UserImg newUserImg = new UserImg();
            newUserImg.setImg(imgStream);
            newUserImg.setImgName(fileName);
            newUserImg.setMemo(memo);
            newUserImg.setFileSize(length);
           
            if(UploadImageDao.getInstance().insertImg(newUserImg))
            {
                response.getWriter().write(
                        CSScript.alertAndCloseScript(MessageKey.IMAGE_UPLOAD_SUCCESS));
                return null;
            }
            else
            {
                msgs.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage(
                        MessageKey.IMAGE_UPLOAD_FAILED));
                saveErrors(request, msgs);
            }
        } catch (IOException e) {
           
            msgs.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage(
                    MessageKey.IMAGE_UPLOAD_FAILED));
            saveErrors(request, msgs);

        } finally {
            try {
                if (imgStream != null)
                    imgStream.close();
               
            } catch (Exception e) {
                //do nothing here
            }
        }
        return mapping.getInputForward();
       
       
    }


--------------------------------------弹出提示框的类----------------------------------------------------------


public final class CSScript {
    private static final String S_OPEN = "<script>";
    private static final String S_CLOSE = "</script>";

    public static String alertAndCloseScript(String alert)
    {
        StringBuffer sb = new StringBuffer(S_OPEN);
        sb.append("alert('").append(alert).append("!');");
        sb.append("window.close();");
        sb.append("window.opener.document.location.reload();");
        sb.append(S_CLOSE);
       
        return sb.toString();
    }
   
    public static String errorScript(String err)
    {
        StringBuffer sb = new StringBuffer(S_OPEN);
        sb.append("alert('").append(err).append("!');");
        sb.append(S_CLOSE);
       
        return sb.toString();
    }
   
    public static String alertScript(String alert)
    {
        StringBuffer sb = new StringBuffer(S_OPEN);
        sb.append("alert('").append(alert).append("!');");
        sb.append(S_CLOSE);
       
        return sb.toString();
    }
}


---------------------------------------插入数据库的方法-----------------------------------------------------
public boolean insertImg(UserImg userImg)
    {
        Session session = HibernateSessionFactory.getSession();
        Transaction tran = session.beginTransaction();
        try
        {
            Connection conn = session.connection();
            PreparedStatement psta = conn.prepareStatement("insert into userImg values(?,?,?)");
            psta.setString(1,userImg.getImgName());
            psta.setBinaryStream(2, userImg.getImg(),userImg.getFileSize());
            psta.setString(3, userImg.getMemo());
            psta.execute();
           
            tran.commit();
        }
        catch(Exception e)
        {
            e.printStackTrace();
            tran.rollback();
            return false;
        }
        finally
        {
            HibernateSessionFactory.closeSession();
        }
        return true;
    }
注意,这里可以看到涌到了hibernate的session,但还是用的jdbc插入数据库,是因为hibernate对image类型的字段支持不好。

-----------------------------------------读取图片的action-getImg.do-----------------------------------------------------------

public ActionForward execute(ActionMapping mapping, ActionForm form,
            HttpServletRequest request, HttpServletResponse response) {
        int id = Integer.parseInt(request.getParameter("id"));
        InputStream inStream = UploadImageDao.getInstance().getImg(id);

        response.setContentType("image/pjpeg");
        try {
            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            byte[] buffer = new byte[1024];
            int bytesRead = 0;
            while ((bytesRead = inStream.read(buffer, 0, 1024)) != -1) {
                baos.write(buffer, 0, bytesRead);
            }
            OutputStream outs = response.getOutputStream();

            outs.write(baos.toByteArray());

            outs.flush();

            inStream.close();
            baos.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }

页面中显示图片,这么写
<img width="100" height="100" src="getImg.do?id=<bean:write name="list" property="id"/>" />

2007年4月12日星期四

程序员的八荣八耻(转)

以夸耀公司为荣、以唾骂公司为耻,

以拉拢客户为荣、以投靠客户为耻,

以崇尚技术为荣、以黑人电脑为耻,

以多写代码为荣、以拷贝粘贴为耻,

以团队协作为荣、以偷干私活为耻,

以无私奉献为荣、以跳槽走人为耻,

以办事听话为荣、以迟到早退为耻,

以收发伊妹为荣、以提笔耗纸为耻

2007年4月11日 星期三

工作日志
2007年4月11日 星期三
上班的第二个星期,昨天,临下班的时候终于能上网了呵呵,上一个星期里,真的是煎熬啊,还不如交给我一些事做,让我忙活忙活 ,什么事都没有,没人理,电脑没有网络,刚重装的系统,什么软件没有,哦天哪,想起以前石家庄的那个公司,虽然规模不大,但是很温馨,给刚去的员工配一名 导师来帮助 新员工融入新集体,还带着到各部分 认识同事,呵呵,这倒好,整个没人理,哦天,这就是大公司?唉 ,也不算什么大公司,与石家庄的我的那家公司比吧,真的是比较失望,什么都不给讲,莫名其妙的,什么时候上班什么时候下班都不给讲,可能还没正式开始? 唉,算了不说了,乱七八糟的。
说说今天吧,还是说昨天,呵呵,昨下午来了个人(据说是我们部门的老总)把我们邮箱要去了,然后能上网了就受到了封邮件,说是要培训,先自己学习一下,今 天到了就打开电脑,开始看,真的很郁闷,和我同去的几个人,都有人安排事做,就没人理我,真的是纳闷有郁闷,狗日的,到底是为啥?看我能力不行?
下午吃完中午饭回来,趴了会儿,刚清醒过来,来了个人,让我们去听课培训,让去就去吧,结果是讲销售方法的,我晕,听吧,还是能听到一些有意义的东西的, 我发现我们部门也没多少人啊,狗日的,连我们部门头儿是谁,都不知道,呵呵,是不是我有问题?我应该主动去问?是这样么?
听课下来听的我头疼,下班了 回家 呵呵。一天就这么过去了。真快。

2007年4月11日星期三

终于能上网了 呵呵

创建时间:2007年4月4日, 10:58:38

年前买的Effective java到今天就看了三条,今天带到公司看。写这书的人有多丰富的经验阿,太

有才啦,哈哈,各种情况面面俱到,太厉害了,边看边佩服人家,哈哈。书上的每一句话,都要得

仔细的琢磨,仔细的回味,真的回味无穷,受益匪浅,相信像我这样的水平还没有体会出更深层次

的内涵,先写下自己的一点体会。

创建和销毁对象

--避免创建重复对象

    这里的说法都不是绝对的,对于比较庞大的对象创建成本是昂贵的,而这个对象是不变的,

    所以我们可以重用它,以减少内存增加。

    避免创建重复对象的方法,有几种,这要看在什么场合,可以使用静态工厂方法,可以使

    用static代码块,可以使用延时加载(也就是只有在需要这个对象的时候才在第一次初始

    化)

--消除过期的对象引用

    这里面有个名词,就是过期引用,过期引用就是那些已经没有实际用处的引用,这些对象

    引用不会被垃圾回收机制发现,所以必须由程序员手动告诉垃圾回收机制这个对象引用没

    用了,可以回收了,如何告诉它呢,把引用=null就可以了。

--避免使用终结函数

    finalizer函数不能保证会被调用,这一点增加了不确定性,简单的说finalizer这家伙是

    不可信任的,交给它的事可能办,也可能不办,这是不确定的,所以我们不能放心的交给

    它重要的任务。

    如果想清理某个对象,可以考虑在try...catch...finally{中执行},它能保证即使产生异

    常,也能保证清理会被执行。

上周五第一天上班,到今天,每天都在这死死的坐着,一个除了系统文件没有其他任何东西的机器,

没有网络,没有人理,真是无聊的人,怎么也得给介绍一下公司的情况,讲讲作息时间,各项制度、

规定之类的,几点上班几点下班都没说过,大家都在忙什么?有事找谁都不知道,我晕。

一个上午又过去了,无聊,发发牢骚,呵呵。

java Studio Creator