米粒儿's profile-Rice Zone-PhotosBlogListsMore Tools Help

Blog


    April 12

    数据库表 to XML文件

    既然是日志...啥都不说了 继续
    首先说明下...这几段程序都是需要Jdom和mssqljdbc包的
    AppConfig.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <AppConfig>
     <DbConfig>
      <dbDriver>com.microsoft.jdbc.sqlserver.SQLServerDriver</dbDriver>
      <dbUrl>jdbc:microsoft:sqlserver://localhost:1433;databasename=pubs</dbUrl>
      <dbUserName>sa</dbUserName>
      <dbUserPwd></dbUserPwd>
     </DbConfig>
     <XMLConfig>
      <table>employee</table>
      <cols>*</cols>
      <xmlpath>employee.xml</xmlpath>
     </XMLConfig>
    </AppConfig>
    ---------------------------------------------------------------
    ConDB.java
    package aptech.xml;
    import java.io.IOException;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    import org.jdom.JDOMException;
    public class ConDB {

        private static String driver;
        private static String url;
        private static String dbUser;
        private static String dbPwd;
        public ConDB() {
        }
        // 返回Connection对象
        public static Connection getConnection() throws JDOMException, IOException {
     Connection con = null;
     try {
         new ConfigApp().configDb();
         Class.forName(driver);
         con = DriverManager.getConnection(url, dbUser, dbPwd);
     } catch (ClassNotFoundException ex) {
         ex.printStackTrace();
     } catch (SQLException ex) {
         ex.printStackTrace();
     }
     return con;
        }
       
       
        public static String getDbPwd() {
     return dbPwd;
        }
        public static void setDbPwd(String dbPwdi) {
     dbPwd = dbPwdi;
        }
        public static String getDbUser() {
     return dbUser;
        }
        public static void setDbUser(String dbUseri) {
     dbUser = dbUseri;
        }
        public static String getDriver() {
     return driver;
        }
        public static void setDriver(String driveri) {
     driver = driveri;
        }
        public static String getUrl() {
     return url;
        }
        public static void setUrl(String urli) {
     url = urli;
        }
    }
    ---------------------------------------------------------------
    ConfigApp.java
    package aptech.xml;
    import java.io.IOException;
    import java.util.Hashtable;
    import org.jdom.Document;
    import org.jdom.Element;
    import org.jdom.JDOMException;
    import org.jdom.input.SAXBuilder;
    public class ConfigApp {
        Element root;
        public ConfigApp() throws JDOMException, IOException {
     SAXBuilder builder = new SAXBuilder();
     Document doc = builder.build("AppConfig.xml");
     root = doc.getRootElement();
        }
        public void configDb() {
     String dbUser, dbPwd, url, driver;
     Element dbconfig = root.getChild("DbConfig");
     dbUser = dbconfig.getChildText("dbUserName");
     dbPwd = dbconfig.getChildText("dbUserPwd");
     url = dbconfig.getChildText("dbUrl");
     driver = dbconfig.getChildText("dbDriver");
     // 配置数据库Connection
     ConDB.setDriver(driver);
     ConDB.setUrl(url);
     ConDB.setDbUser(dbUser);
     ConDB.setDbPwd(dbPwd);
        }
        public Hashtable getXMLconfig() throws JDOMException, IOException {
     Hashtable<String, String> ht = new Hashtable<String, String>();
     Element xmlconfig = root.getChild("XMLConfig");
     ht.put("table",xmlconfig.getChildText("table"));
     ht.put("cols",xmlconfig.getChildText("cols"));
     ht.put("xmlpath",xmlconfig.getChildText("xmlpath"));
     return ht;
        }
    }
     
    ------------------------------------------------------------------
    DataBaseToXML.java
    package aptech.xml;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.ResultSetMetaData;
    import java.sql.SQLException;
    import org.jdom.Document;
    import org.jdom.Element;
    import org.jdom.JDOMException;
    import org.jdom.output.Format;
    import org.jdom.output.XMLOutputter;
    public class DataBaseToXML {
        /**
         * @throws IOException
         * @throws JDOMException
         * @throws IOException
         * @throws JDOMException
         * @throws SQLException
         * @throws SQLException
         */   
        String xmlfile;
       
        public void BuildXML() throws JDOMException, IOException, SQLException {
     Connection con = ConDB.getConnection();
     String table,cols;
     table = new ConfigApp().getXMLconfig().get("table").toString();
     cols = new ConfigApp().getXMLconfig().get("cols").toString();
     String sql = "select "+cols+" from "+table;
     PreparedStatement pstm = con.prepareStatement(sql);
     ResultSet rs = pstm.executeQuery();
     ResultSetMetaData rsmd = rs.getMetaData();
     int colsCount = rsmd.getColumnCount();
     Element root = new Element(table); 
     while(rs.next()) {
         Element row = new Element("row");
         root.addContent(row);
         for(int i = 1;i<=colsCount;i++) {
      String colName = rsmd.getColumnName(i);
      String colVal = rs.getString(i);
      Element col = new Element(colName);
      row.addContent(col);
      col.setText(colVal);
         }   
     }
     Document doc = new Document(root);
     
     Format format = Format.getCompactFormat();
            format.setEncoding("gb2312"); //设置xml文件的字符为gb2312
            format.setIndent("    "); //设置xml文件的缩进为4个空格
            XMLOutputter XMLOut = new XMLOutputter(format);//元素后换行一层元素缩四格
            xmlfile = new ConfigApp().getXMLconfig().get("xmlpath").toString();
           
            XMLOut.output(doc, new FileOutputStream(xmlfile)); 
     
        }
        public static void main(String[] args) throws JDOMException, IOException, SQLException {
     
     DataBaseToXML toXML = new DataBaseToXML();
     
     try {
         toXML.BuildXML();
         System.out.println("数据已成功写入到"+ toXML.xmlfile);
     } catch (JDOMException e) {
         e.printStackTrace();
     } catch (IOException e) {
         System.out.println("xml文件写入错误!"+e.getMessage());
     } catch (SQLException e) {   
         System.out.println("数据库链接错误!"+e.getMessage());
     } catch (Exception e) {
         e.printStackTrace();
     }
        }
    }
    -------------------------------------------------------------------
    此程序通过在AppConfig.xml中配置数据库链接信息、所要提取解析表、列、目标xml文件实现数据库到xml的自动转换。
    有需要的兄弟拿去吧,大米的地盘不收税!
    April 11

    我决定一不做二不休|在线列表实现

    国际惯例,首先是
    web.xml
    <listener>
      <listener-class>accp.bbs.listeners.SessionCounter</listener-class>
     </listener>
     <session-config>
      <session-timeout>1</session-timeout>
    </session-config>
    --------------------------------没词儿了---------------------------
    accp.bbs.listeners.SessionCounter
    package accp.bbs.listeners;
    import java.util.Hashtable;
    import javax.servlet.http.HttpSession;
    import javax.servlet.http.HttpSessionEvent;
    import javax.servlet.http.HttpSessionListener;
    import accp.bbs.beans.UserBean;
    public class SessionCounter implements HttpSessionListener {
     
        //静态变量 用于存储<sessionid,当前session>
        static Hashtable<String, HttpSession> ht = new Hashtable<String, HttpSession>();
        //静态变量 用于存储<sessionid,当前登录用户>
        static Hashtable<String, UserBean> htonline = new Hashtable<String, UserBean>();
       
        //实现HttpSessionListener接口 有新session被创建时系统调用
        public void sessionCreated(HttpSessionEvent arg0) {
     HttpSession session = arg0.getSession();
     ht.put(session.getId(), session);
     // System.out.println("create session :" + session.getId());
     // System.out.println("当前在线:" + ht.size());
        }
        // 登录serlvet调用
        public void createSession(HttpSession session) {
     UserBean user = (UserBean) session.getAttribute("user");
     // String username = user.getUsername();
     if (!htonline.values().contains(user)) {
         htonline.put(session.getId(), user);
         // System.out.println("用户:"
         // + username
         // + "登录");
     }
        }
        //实现HttpSessionListener接口 session超时 被系统销毁时系统调用
        public void sessionDestroyed(HttpSessionEvent arg0) {
     HttpSession session = arg0.getSession();
     //System.out.println("destory session :" + session.getId());
     ht.remove(session.getId());
     htonline.remove(session.getId());
     // System.out.println("当前在线:" + ht.size());
        }
        // 登出servlet调用
        public void destroySession(HttpSession session) {
     UserBean user = (UserBean) session.getAttribute("user");
     if (htonline.values().contains(user)) {
         // System.out.println("用户:"
         // + user.getUsername()
         // + "登出");
         htonline.remove(session.getId());
         session.invalidate();
     }
        }
       
        //静态方法 返回当前session数量
        public static int sessionCount() {
     return ht.size();
        }
       
        //静态方法 返回当前登录用户数量
        public static int userCount() {
     return htonline.size();
        }
       
        //静态方法 返回当前登录用户集合
        public static UserBean[] getUsers() {
     UserBean users[] = new UserBean[userCount()];
     for (int i = 0; i < userCount(); i++) {
         users[i] = (UserBean) htonline.values().toArray()[i];
     }
     return users;
        }
    }
    --------------------------------------------------------------------
    test.jsp
    <%@page contentType="text/html; charset=GBK"
     import="accp.bbs.listeners.*"%>
    <%@ taglib prefix="c" uri="/WEB-INF/c.tld"%>
    <html>
     <head>
      <title>index</title>
     </head>
     <body bgcolor="#ffffff">
      当前在线:
      <%=SessionCounter.sessionCount()%>
      人
      <br />
      其中会员:
      <%=SessionCounter.userCount()%>
      人
      <br />
      在线列表:
      <br />
      <c:forEach items="<%=SessionCounter.getUsers()%>" var="user">
       ${user.username }&nbsp;&nbsp;
      </c:forEach>
     </body>
    </html>
     
    哦...还有登录、cookies和权限过滤器..算了 太多
     

    JSP|XML|JDOM|Servlet

    最近做项目,琢磨了个很有用的东西。来跟大家分享下!
    我知道没人看...就当个人日记了...以后自己看
    走着:
    首先是web.xml
     <servlet>
        <description>服务器启动时运行Servlet以加载xml文件</description>
        <servlet-name>ConfigServlet</servlet-name>
        <servlet-class>accp.bbs.xml.ConfigServlet</servlet-class>
        <init-param>
         <param-name>configXML</param-name>
         <param-value>/WEB-INF/XML/accp_bbs.xml</param-value>
        </init-param>
        <load-on-startup>0</load-on-startup>
      </servlet>
     --------------------------------无敌分割线-----------------------------

    accp.bbs.xml.ConfigServlet

    package accp.bbs.xml;

    import java.io.IOException;
    import java.io.InputStream;

    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;

    import org.jdom.Document;
    import org.jdom.Element;
    import org.jdom.JDOMException;
    import org.jdom.input.SAXBuilder;

    import accp.bbs.db.ConDB;


    public class ConfigServlet extends HttpServlet {

        public ConfigServlet() {
     super();
        }

        public void destroy() {
     super.destroy();
        }

        public void init() throws ServletException {
     try{
           initConfigXML();
         }catch(Exception e){
           e.printStackTrace();
         }
        }
       
        protected void initConfigXML() throws JDOMException, IOException{ 
     
     //从web.xml读取<init-param>元素值
     String configfile = getServletConfig().getInitParameter("configXML");
     //将<init-param>值指向的xml文件写入服务器内存
     InputStream input = getServletContext().getResourceAsStream(configfile);
     
     //jdom解析xml文件
     String dbUser,dbPwd,url,driver;
     SAXBuilder builder = new SAXBuilder();
     Document doc = builder.build(input);
     Element root = doc.getRootElement();
     dbUser = root.getChildText("dbUserName");
     dbPwd = root.getChildText("dbUserPwd");
     url = root.getChildText("dbUrl");
     driver = root.getChildText("dbDriver"); 
     //配置数据库Connection
     ConDB.setDriver(driver);
     ConDB.setUrl(url);
     ConDB.setDbUser(dbUser);
     ConDB.setDbPwd(dbPwd);
        }
    }

    ----------------------------无敌分割线二号----------------------------

    /WEB-INF/XML/accp_bbs.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <accp_bbs>
     <dbDriver>com.microsoft.jdbc.sqlserver.SQLServerDriver</dbDriver>
     <dbUrl>jdbc:microsoft:sqlserver://localhost:1433;databasename=bbsDB</dbUrl>
     <dbUserName>accpbbs</dbUserName>
     <dbUserPwd>accpbbs</dbUserPwd>
    </accp_bbs>

    ---------------------------无敌分割线终结版?-------------------------

    accp.bbs.db.ConDB

    package accp.bbs.db;

    import java.sql.*;

    public class ConDB {
     
        private static String driver ;

        private static String url;

        private static String dbUser;

        private static String dbPwd;

        public ConDB() {

        }

        // 返回Connection对象
     public static Connection getConnection() {
     Connection con = null;
     try {
         Class.forName(driver);
         con = DriverManager.getConnection(url, dbUser, dbPwd);
     } catch (ClassNotFoundException ex) {
         ex.printStackTrace();
     } catch (SQLException ex) {
         ex.printStackTrace();
     }
     return con;
     }

        public static void setDbPwd(String dbPwdi) {
     dbPwd = dbPwdi;
        }

        public static void setDbUser(String dbUseri) {
     dbUser = dbUseri;
        }

        public static void setDriver(String driveri) {
     driver = driveri;
        }

        public static void setUrl(String urli) {
     url = urli;
        }
    }

    ---------------------------无敌分割线终结版---------------------------

    我不信有人能看完...仅希望对以后的我有所帮助

    ---完

    September 20

    I`am alive...

    只想告诉大家我还活着...
    凤凰岭游记夭折了
    后边的故事大家可根据第一章关键词随意想象,因为我也记不大清了
    好了 我还得赶回到同学的问题世界里奔波 就这样吧反正也没几个人看
    GL
    August 22

    记凤凰岭之行(贰)

    上集提要:我、豆猫、小麦、高粱、小Q、贱蔡、贱蔡他媳妇儿一行七人在621胜利会师,进食后向大觉寺进发...
     
    伴随着与我们探讨烤玉米奥秘的老太太,我们到了大觉寺山门,购置了6张20元1张10元
    的门票(豆猫提心吊胆的使用道具"过期的人大学生证")后,我们站在了寺内,本该清幽
    静雅的寺庙被周围的人来人往冲洗成另一番景象,而我第一反应就是——“厕所在哪?

    排尽了污浊的浮华世俗,第一个引起我们关注的是住在“放生池”中的百十来之王八(也
    有人说那是乌龟),不知为什么我怎么也不能停止为此池估价的行为,看来方才如厕时间
    应该再长些。
     
    To be continued...

    记凤凰岭之行

    坐在电脑前,马克思累了我不累,毛泽东困了我不困,周恩来睡了我不睡,我是个不知疲倦的程序员。
    刚刚兴致勃勃的写完因凤凰岭之旅搁浅的代码,看了豆猫的博客就怎么也困不起来了。

    那些注定只能闭口不谈的事儿只能默默祈祷,她能像我一样,不去思考。
    我想,现在唯一能使我不去思考并尽快找回久违的睡意的事儿就是把令我们个个疲惫不堪的凤凰岭之行记录下来。

    Aug 19 2006
    关键词:酷热、酒精、大觉寺、路没完没了的路、车耳营村儿、聚福庄、小姐、麻将大
    叔、红烧苍蝇、杀人游戏、噪音、梦
     
    一大早儿收拾了自己和行李耐着高温与暴晒与豆猫携手来到了久违的621,那儿除了温二门
    口夸张的电子宣传栏一切都还是老样子 —— 如行尸走肉般游荡在街上的人来人往
    与621众相约在原六子儿烤串吃临行前最后的午餐,就差跟丫娶一媳妇儿的小麦(年度悲情人
    物),原来他很行的高粱与让他觉得不很行的小Q,621淫娃贱蔡与代号贱蔡他媳妇儿的厦
    门小姑娘已悉数到场,于是,凤凰岭特别行动小分队在此会师了
     
    酒足饭饱,我们朝直达大觉寺的原903车站进发了,怕到了山里买不到正宗小蒙古与便宜
    软红河我在所里烟酒专卖备齐了弹药。
    在车站晒了近半个小时后我们终于扛不住了,向苦口婆心劝我们打车的我看着眼熟的黑
    司机投降了,兵分两路向大觉寺进发,路上与司机交谈得知另一小队的我看着眼熟眼熟
    司机同志乃高里掌人士,冥冥之中感觉到此高里掌人士与我家非亲即友,好不后悔搭错
    了车。
    大家还没纳过闷,车已抵达目的地,操,这么近?!?
     
    To be continued...
     
    听说经常坐在电脑前会由于受辐射的原因而导致携带Y染色体的精子大量死亡,所以生女孩的概率很大,这么说我们做程序员的岂不是都要绝后了?!!!
    PS:这可不是空穴来风啊,偶MM是建筑师,她说他们设计院里的男同事基本都生了女儿,生儿子的概率只有2%,偶好怕怕的说!!!
     
    Java论坛里看到的...我赶紧睡了先
     
    August 15

    javax.swing.JTextArea读取与存储文件

    JTextArea中存在着两个非常方便的方法,void read(Reader in, Object desc)与void write(Writer out),通过这两个方法,可以很方便
    的通过JTextArea对象对文件进行读取和存储,并保证不会发生恼人的换行符变"黑方块"问题,使用时只需注意这两个方法都抛出IOException,
    您要做的仅仅是勤快点接着try...catch一下或者干脆抛给操作系统即可。
    下面举个例子以方便理解:
    ……
     /*
     * editor为框架类的对象
     * openedFile为静态File类对象
     */

        public void actionPerformed(ActionEvent e) {
     if (e.getActionCommand().equals("打开")) {
         try {
      JFileChooser chooser = new JFileChooser();
      /* 秀出令人兴奋的文件选择窗口,点击确定返回一个整数 */
      int num = chooser.showOpenDialog(editor);
      /*
                     * ok,上边返回的整数派上用场了 JFileChooser.APPROVE_OPTION常量存储着确定按钮对应的整数
                     */
      if (num == JFileChooser.APPROVE_OPTION) {
          openedFile = chooser.getSelectedFile();  // 找到被选文件信息
      }
      /*
                     * FileReader的爷爷是抽象类Reader 也许写成Reader fr=new
                     * FileReader(xxx)更容易理解下面的read(fr,null);
                     */

      FileReader fr = new FileReader(openedFile);
      /*
                     * 别问我为啥第二个参数为null,源代码中属性名字面解释为"目标文档描述"
                     * getTxa()为找到框架类中JTextArea的方法
                     */
      editor.getTxa().read(fr, null);
      fr.close();
         } catch (FileNotFoundException fnfe) { // FileReader抛出的异常
      JOptionPane.showMessageDialog(editor, fnfe.getMessage());
         } catch (IOException ioe) {  // read方法抛出的异常
      JOptionPane.showMessageDialog(editor, ioe.getMessage());
         }
     }
     /*
      * 下边就不难理解了吧?*/

     if (e.getActionCommand().equals("保存")) {
         try {
      FileWriter fw = new FileWriter(openedFile);
      editor.getTxa().write(fw);
      fw.close();
      JOptionPane.showMessageDialog(editor, "文件已保存!");
         } catch (IOException e1) {
      JOptionPane.showMessageDialog(editor, e1.getMessage());
         }
     }
     if (e.getActionCommand().equals("关闭")) {
         System.exit(0);
     }
        }
    }
    ……
    August 14

    First Love Letter

          我得承认我并不是个浪漫如王小波的人,但现在!我要写情书了!!!
          〇五年三月,上帝发了个可以最大化我七情六欲的精灵,我后来给她起了个既贴切又不失幽雅的名字——小豆猫。
          小豆猫最大的好处就是不论什么时候只要我想,都很乐意让我掐她那一身招人疼儿的小肉,我乐此不疲。还有那些不知道从哪冒出来的点子...
          <有待补完>
         小豆猫是聪明的,是可爱的,是美丽的,是迷人的,是我的!!!
    August 12

    Core Java 2 书评(我没闹)

             Core Java 2分为Volume IVolume II两卷,都属于近700页的“贵”“重”品,但其内容之翔实,叙述层次之清晰使之成为有一定面向对象基础者初学Java之不2选择(Thinking in Java 不很适合初学者参考)

    虽然网友普遍评论此书翻译质量不佳,译者也在书序中提到水平有限、时间仓促望批评指正(实际上没有文献敢不这么写的),但还是推荐大家购买中文版,您英文水平再牛叉面对一个个专有名词与叙述复杂逻辑的复杂语句能不冒汗?毕竟对母语的理解与纠错能力还是每个人类都最擅长的。

    Volume I : Fundamentals(基础知识) 7版针对上6个版本中所有代码向 JDK 5.0进行了全面更新,并极力展示泛型集合、for each循环等等一些令人兴奋的JDK 5.0特性。

    此书前言中一段话说得很真诚也很有助于读者最快速的了解此书能为自己带来什么,废话不多说,现摘抄如下:(如果你只对我的文字感兴趣,靠,锚不能用。跳过略浅颜色的字吧)

    ……

    和本书的前几版一样,我们仍然把读者群定位在那些打算将Java应用到实际项目中的严谨的程序设计人员。我们仍然确保本书不会出现令人沮丧的文字以及莫名其妙的字符。本书假设读者是一名具有程序设计语言坚实背景知识的程序设计人员。

    ……

    我们假定读者想要:

    * 编写实际的代码来解决实际问题。

    * 不希望本书中全部是玩具是样例。

     在本书中,我们用大量的例子代码演示所讨论的每一种语言和库的特性。我们有意识用简单的实力程序以突出重点,然而,它们中的大部分既不是赝品也没有偷工减料。(翻译确实不太…)它们将成为读者自己编写代码的良好开端。

    我们假定读者想要:
      * 编写实际的代码来解决实际的问题。
      * 不希望本书中全部是玩具式样例(如烤面包机、水果或是动物园的动物)。
      在本书中,我们用大量的例子代码演示所讨论的每一种语言和库的特性。我们有意使用简单的示例程序以突出重点,然而,它们中的大部分既不是赝品也没有偷工减料。它们将成为读者自己编写代码的良好开端。
      我们假设读者希望(甚至渴望)学习Java的所有高级特性。我们将会详细介绍下列内容:
      * 面向对象程序设计
      * 反射与代理
      * 接口与内部类
      * 事件监听器模型
      * 使用Swing UI工具箱进行图形用户界面设计
      * 异常处理
      * 流输入/输出和对象序列化
      * 泛型程序设计
      随着Java类库的爆炸式增长,一本书无论如何也不能涵盖真正的程序员需要了解的所有Java特性。因此,我们决定将本书分为两卷。卷I(即本书)集中介绍Java语言的基本概念以及用户界面编程的基础。卷II涉及企业特性以及高级的用户界面编程,其中包含下列内容:
      * 多线程
      * 分布式对象
      * 数据库
      * 高级GUI组件
      * 本地方法
      * XML处理
      * 网络编程
      * 集合类
      * 高级图形
      * 国际化
      * JavaBeans
      在编写本书的过程中,难免会出现错误和不准确之处,我们很想知道这些错误。当然,我们也希望同一个问题只被告知一次。我们在网http://www.horstmann.com/corejava.html中以列表的形式给出了常见问题、bug修正和出错位置。在勘误页(建议你先阅读一遍)最后是用来报告bug并提出改进意见的表单。如果我们不能回答每一个问题或没有及时回复,请不要失望。我们会认真阅读所有的e-mail,感谢你的建议使本书后续版本更清晰、更有指导价值。
      我们希望你发现本书生动有趣且有助于Java程序设计。

    我就是被这些话的诚意所吸引才斥巨资添置此书的希望你也能被此打动(声明:我与机械工业出版社、PEARSON Education、本书作者、译者无任何干系)进入到令人愉快的Java世界中。

    说点我发现的书中比较有意思的地方吧,如果这样还不能打动你的话。

    * P30 3章在展示第一个Hello World程序(业内标准指用一门语言在屏幕上输出Hello World!字样,通常是学习一门语言第一个看到的程序,通常不超过3行代码)时,甚至书中所有包括Hello World字样的程序,作者都是这样写的:

    Public class FirstSample{

             Public static void main(String[] args){

                       System.out.println(“We will not use ‘Hello World!’”);//is this so cute?

             }

    }

     

    妈的翻半天没找着,但绝对还有类似Kuso程序,先玩会儿去 累了

    未完待续

    Blog究竟是干嘛的

             Blog究竟是干嘛的?

             现在大家都在用博客做什么?

             出了名写博客的不管会不会写字儿全在做秀,都是在拼了命为自己的人气加分,而对名人来讲人气又与金钱成正比,所以可以认为他们开博是一种投资肉体投资口水投资,当然这种投资风险及成本是很低的。我确信我不需要做这种勾当。

             没出名会写字儿的与Blog就像是干柴烈火,老实说我很羡慕他们。

    我是属于没出名又不会写字儿那种,那我该用键盘在TextArea中敲点什么,拼字儿的活咱是说什么也干不了的,贴画儿也算了,没条件。唯一剩下的,就是其最原始的个人日记功能了,不需要太多天花乱坠的词儿与条例清晰的脉络连接,一篇篇真真切切的生活感悟与学习笔记是我最希望与大家分享的。

             好。

    现在,我只想好好地说说话,跟你们分享我的成就和失败。

    我们都是一个个有七情六欲的人,说点真话,学点真东西,无碍我们真正的享乐生活。

    August 11

    Ok ok, 我承认我妥协了(留言板)

    21世纪的第6个年头过半,我终于向日渐火热的博客妥协了。

    仅以此java源码代表我现在的心情。
    import java.util.Calendar;
     
    public class Blog {
     
        private String blogName;  // 博客名
        private String author;  // 作者名
        private Calendar startAt;  // 起始于
        private String info;  // 博客信息
     
        /**
         * 为全部属性负值的构造方法
         */
     public Blog(String blogName, String author, Calendar startAt, String info) {
       this.blogName = blogName;
       this.author = author;
       this.startAt = startAt;
       this.info = info;
    }    
       
        /**
         * 显示博客信息的方法
         */
     public void show() {
       System.out.println(this.author+" 于 "+this.startAt.getTime()+" 启动了博客 "+this.blogName);
       System.out.println(this.blogName+"的宗旨是 "+this.info);
    }
       
        /**
         * 主方法
         */
     public static void main(String[] args) {
       Calendar startAt=Calendar.getInstance();
       startAt.set(2006, Calendar.AUGUST, 10,21,0,0); //设置博客启动时间
       Blog riceZone=new Blog("Rice Zone","PunkRice",startAt,"Not another Java Home!");
       riceZone.show();
     }

    运行结果:
    PunkRice 于 Thu Aug 10 21:00:00 CST 2006 启动了博客 Rice Zone
    Rice Zone 的宗旨是 Not another Java Home!

     
    没人睬乎我我不更新!
     
    这就当留言板了 废物利用下