菁's profile贫瘠的沙壤地PhotosBlogListsMore Tools Help

Blog


    October 28

    锈豆……

    昨天晚上下雨,挺大的雨。锈豆——Fe2O3 Bean——我家的猫猫,最讨厌下雨下雪了,每次倒水的时候如果有1、2滴水不小心溅到他身上,他都会飞快地跑开,然后马上去梳理身上的毛,每次洗澡都好像是要杀了他一样……

    夜里有只猫在房后面叫,叫声很可怜…大概是被雨淋了吧……听到叫声,秀逗好像变了一个猫似的……变得很疯狂,一直在挠门……完全忘了下雨这件事了……

    当然,到最后我也没有给锈豆开门……

    我是为锈豆好,但是我不知道锈豆是否会领情……不知道第二天雨停了的时候,锈豆会不会因为我昨天的决定,而丢掉很大一片领地,或者失去一位好不容易寻到的伴侣……

    锈豆到底是出去好,还是留下来好?

    这样做真的对锈豆好么,真的有权利帮别人决定人生么……哪怕是猫……

    这样做到底是为了锈豆好,还是为了不让锈豆感冒,免得自己麻烦?!

    到底应该限制他,还是应该在明知道会发生坏事的情况下,还放任他?

    October 24

    神啊……赐予我消停吧……

    忘了从什么时候开始的……貌似从来就没消停过……
    只不过前一阵过得过于舒服了……我被美丽的假象迷惑了……忘了这种感觉了……
     
    现在好了,肥皂泡破了……“正常”的生活又回来了……
    喝了3杯咖啡了……还是没劲儿……胃貌似拜咖啡所赐……又开始疼了……
     
    传说中下月3号要考试、31号打印准考证,我一眼书还都没看呢;还要交电话费、有线费;要买烟囱、安烟囱;做东西等等的……一大堆的事……
    这么多的事……为什么都赶到一块了呢……
    为什么已经有这么多事了……还要给我找事呢?!
     
    也好……能找一下以前自己的感觉……找找那时候的那股劲儿……现在也就这么想还稍微舒坦点……
    不过说实话,我还真忘了以前那股劲儿是怎么出来的了……
     
    苦其心志……降大任……
    现在觉得这句话……还是比较啊Q的……苦了就要降大任?!
    有的是一帆风顺的,也有的是一辈子就这样的……
    老天爷对于降大任这件事……还是比较公平的……
    虽然在其他方面有些操蛋……
     
    以前和某人有过分歧——是关于理想的:
    某人认为要奋斗~~~要怎么怎么样……
    我觉得能晒着太阳躺在棉被里就知足了……
    当然,最后的结果可想而知……
    没达成什么共识,不了了之了……
     
    说我什么都行,说没追求就没追求吧……无所谓……
    说心里话,其实特早的时候,也想怎么怎么样来的,那时候想当个科学家——科学家会武术,谁也挡不住~~^_^
    有一阵,还真是傻吧楞登的奔着那边去的(很久以前的事情了,最后一次……恐怕就是我报的那个不着四六的专业了-_-!!!)
     
    不过后来发现,能让我消停一阵,老天爷就对我不薄了……
    当然这个机会,在我被老天爷玩了很久之后,突然来了……
    于是我就抓住了……
    我曾经一度以为——到头了:以后就是“从此XXXX过着OOOO的日子”了……
    不过现在证明——这是个阴谋:因为我这个乖宝宝*^_^*,顺从的钻进了老天爷同志,附送的套套……直接导致了科学家的梦想被无辜的绞杀了~~~T_T
    不过说实话……被这样虐杀的滋味还真不赖~~~~^_^
     
    估计是我上辈子造孽造多了……
    so 某个声音说:多少让你消停会儿,省的一下把你折腾死……后面的路还很长呢,要慢慢地折腾你……*^_^*
    说真的……现在如果真的再有机会让我怎么怎么样的话……
    如果真的有这个机会的话……我一定会好好把握——用来消停消停……
    太劳神了……忒累了……
    现在连晒着太阳睡觉都懒得想了……
    如果不继续恶化,偶尔还能消停会……我就知足了……
     
    PS:还别说,说出来……他就还真好多了……
    得了,我接着该干嘛干嘛去了……
    October 16

    NetBeans开发基于JPA+Hibernate3+JavaDB持久化对象的桌面应用

    还是那个倒霉的磁盘管理程序,这回相上嵌入式关系数据库了——SE自带的JavaDB(貌似以前叫Derby)

    DAO很难搞,网上查了查主流的方案是用Hibernate……不过Hibernate上手要花一点时间,特意买了本书(很不禁看,2天就看完了)。书里和网上大部分的文章用的IDE都是万恶的Eclipse……找到2个NetBeans的例子,不过貌似都是基于web容器的,而且都是由表生成对象

    琢磨了若干小时后,貌似找到NetBeans怎么方便的开发这类型应用了。

    1. Hibernate官网下载一个叫这个sf-netbeans-nbxdoclet-update-05.nbm的东西,当然还要顺便把Hibernate也下来。
    2. 找个javaEE包去,然后把里面的javax.transaction包拽出来,单做个包。
    3. 开NetBeans,菜单>工具>更新中心>手动安装下载的模块,把刚才下的那个nbm导入,然后更新
    4. 切到“运行环境”那个窗口,在数据库驱动下添加JavaDB的驱动
    5. 把hibernate3.jar、asm.jar、cglib-2.1.3.jar、hibernate-annotations.jar、commons-collections-2.1.1.jar、commons-logging-1.0.4.jar、hibernate-entitymanager.jar、ejb3-persistence.jar、jboss-archive-browsing.jar、dom4j-1.6.1.jar、hibernate-commons-annotations.jar、javassist.jar(都在Hibernate里)还有刚才做的transaction.jar放一块
    6. 建个项目,然后项目上右键,新建>文件/文件夹,类别选持久性,类型选持久性单元,下一步。记住持久性单元名。持久性库,选新建持久性库。把刚才的JAR都添进去。数据库连接选新建数据库连接,名称选刚才导入的那个JavaDB的驱动。url填jdbc:derby:<DB-Name>;create=true。然后完成。
    7. 打开新生成的META-INF\persistence.xml,切换到XML模式,在里面加上方言设定:<property name="hibernate.dialect" value="org.hibernate.dialect.DerbyDialect"/>
    8. 工程上右键>新建>文件\文件夹,类别选Hibernate,类型选NewHibernateUtil(EJB3)。新建一个HibernateUtil,打开,找到emf = Persistence.createEntityManagerFactory这句。把后面的字符串改成刚才记住的持久性单元名。
    9. 就可以通过新建NewHibernateBean(EJB3)(在Hibernate类别中)或者“实体类”(在持久化类别中)来制作POJO类了。
    10. 最后我们可以通过类似这样的代码来访问数据库:

    package javaapplication6;

    import static javaapplication6.NewHibernateUtil.closeEntityManagerFactory;
    import static javaapplication6.NewHibernateUtil.getEntityManagerFactory;
    import javax.persistence.EntityManager;
    import javax.persistence.EntityTransaction;
    import org.hibernate.Session;
    import org.hibernate.Transaction;

    /**
    *
    * @author Administrator
    */
    public class Main {
        /** Creates a new instance of Main */
        public Main() {
        }
        /**
         * @param args the command line arguments
         */
        public static void main(String[] args) {
            // TODO code application logic here
            EntityManager em=getEntityManagerFactory().createEntityManager();
            EntityTransaction t=em.getTransaction();
            t.begin();
            NewHibernateBean b=new NewHibernateBean();
            b.setId("xxx");
            em.persist(b);
            t.commit();
            em.close();
            closeEntityManagerFactory();

        }

    PS:这里没有使用Hibernate的Session,而是用EntityManager代替了Session。因为如果使用Session的话,要手工配置xml文件,还要配置log4j的配置文件。比较麻烦。

    October 11

    渐行渐远……

    想做点东西,涉及到了数据持久化……
    目标是文件尽量小……
    最开始用XML做了个……虽然都达到预期了,不过实现的很困难,想扩展的话,基本是不可能了。
     
    后来相上了DB4O,据说是纯Java的对象数据库,上手特快,基本不用学。而且做起来也特简单(感觉上有点象被封装好了的串行化);
    需要导入的库文件也特小……就是生成的文件大了点……
    做了一半了,突然发现几个(确实是几个,不是一个-_-!!!)严重的问题,这个数据库操作对象的深度是有限的……偏偏我的数据深度没谱……
    数据库不能关,关了重开就会把修改对象当成插入对象处理
    只好放一边了……
     
    既然在OO数据库上碰了钉子,索性就找个关系数据库44吧……
    JDK里正好自带了个,虽然没DB4O那么瘦,不过也凑合了。
    这次刚开始要干……就走不动了,关系模型到对象的映射太麻烦了……
    只好再找第三方的库……搜了搜,比较有名的就数冬眠了……
    核心库文件+必须的支持库20M+……如果打算用JPA的话还要+2M左右……
    上手还比较费劲……下了本教材……竟然30多M……
    估计等看完了,写这玩意的热情也没了……
     
     还是吃了没文化的亏了……以前要是没事的时候多搜搜这方面的东西就好了……
     
    突然想到了小时候听的一个……射月亮的故事……
    有点迷茫……接下来怎么办好呢……
    October 08

    QQ等级23……活跃天数623……

    加上没有Q的若干天……再加上没上Q的若干天,还有上了Q却没算时长的若干天……
     
    他忠实的记录了我的这段荒废的岁月……

    官方API

    从1.5开始,java做了大幅度的修改,java6又把JAXB和JavaDB加进了SE……
     
    网上的XML解析库和java原生数据库虽不是很多,但是还是有选择余地的……为什么java会选中这两个库加到SE里呢……
     
    其实最开始遇到这方面需求的时候,在网上搜类库。最吸引我的不是JAXB也不是JavaDB,
    而是JDOM和DB4O……原因没有别的,操作简单,不用管什么映射,直接拿来就用……
    这种感觉就好象是回到了C时代的fopen();没有一点java.io式思路的影子
    太清爽了~~~太方便了~~~
     
    用着用着,觉得味不对了……JDOM跟耗子洞似的……就一个小眼,完全不知道有多深有多宽……只有挖到了那才能知道
    DB4O也差不多,就跟个垃圾筐似的,什么东西都往里仍……用的时候现往外挑,挑出来的东西如果和现在的尺寸不一样,还就废了
     
    想起TIJ里说的,原话记不住了,大体意思是:java.io之所以弄得那么复杂,就是为了让人处理复杂问题的时候不会搞得太复杂……
     
    JDOM的毛病就是太简单了,就像直接写XML一样,没有对数据之间的关系做适当的封装……
    而DB4O恰恰相反,他的封装有点过了,有用的没用的联系,他统统都要表现……
    就好像你要找个电阻,却要在一垃圾筐的主板里翻来翻去一样
     
    把API搞好确实是门学问……
    October 04

    起大早,赶晚集&&习惯

    起一大早,赶个晚集……据说是形容一种状况的……
    不过……它在我这里,更适合用来形容性格……
     
    习惯的官方解释据说是:积久养成的生活方式。今泛指一地方的风俗、社会习俗、道德传统等
    照着这个框框往上套了套……却发现……我的习惯貌似都是继承来的……没什么自己养成的……