hibernate动态多数据库

作者: 云计算机网 分类: 云计算知识 发布时间: 2016-08-21 20:34
最近老师给了一个任务,需求是这样的
服务器A上有一张表,里面存放了若干个服务器的信息,表的字段包括:
    private int id;    private String serverName;    private String host;    private String userName;    private String passWord;
我们要通过读取A数据库上的服务器信息,去对应的数据库里获得数据。

首先咱们分析一下这个问题,多数据库对hibernate来说不是难事,网上资料有很多,例如:
Hibernate访问多个数据库
但是网上的大多数例子都和上面那篇博客一样,是事先知道有几个数据库,每个库的信息,然后手动产生xml。

可是我们的需求是,在程序运行的时候才知道到底有几个数据库。
事先产生xml的路是走不通的。

这时,我想能不能每次我在对服务器A里面的那张表进行增删改的时候,用dom4j的方式自动产生xml?
最后的结论是太复杂。 舍弃。

难道hibernate就只能从xml开始?
当然不,还可以从hibernate.properties开始嘛。
properties和xml都是文件嘛,说了等于没说。

不,难道亲们忘了,java.util.Properties这个类么?
请参考 Hibernate入门 :不使用hibernate.cfg.xml


上面面有一个东西我比较不爽
//创建映射(只需要指定Class对象,自动搜索映射文件)
如果hibernate与spring配合使用
    <bean id="sessionFactory"        class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">        <property name="dataSource">            <ref bean="dataSource" />        </property>        <property name="packagesToScan">            <list>                <value>com.core.model</value>            </list>        </property>    </bean>
还可以有packagesToScan这个属性扫描一下。
现在 只能一个一个加addClass了。

ok现在我们来看看代码
再hibernate得使用中,我们会抽象出UtilDAO这个类。
package com.core.dao;@Componentpublic class UtilDAO extends HibernateDaoSupport {    protected void initDao() {        // do nothing    }    public void save(Object transientInstance) {        try {            getHibernateTemplate().save(transientInstance);            // log.debug("save successful");        } catch (RuntimeException re) {            // log.error("save failed", re);            throw re;        }    }        public void update(Object transientInstance) {        try {            getHibernateTemplate().update(transientInstance);            // log.debug("save successful");        } catch (RuntimeException re) {            // log.error("save failed", re);            throw re;        }    }    public List<?> findAllList(String entity){        try {            String queryString = null;            queryString = "from "+entity;            return getHibernateTemplate().find(queryString);        } catch (RuntimeException re) {            // log.error("find by property name failed", re);            throw re;        }    }        public void delete(Object transientInstance){        try {            getHibernateTemplate().delete(transientInstance);            // log.debug("save successful");        } catch (RuntimeException re) {            // log.error("save failed", re);            throw re;        }    }       @Resource    public void setSessionFactory0(SessionFactory sessionFactory){          super.setSessionFactory(sessionFactory);      }} 
  • 随着科技发展很多人将放在传统笔记本的目光转移到了超极本身上,不少朋友们都会注意到很多超极本用到的都是巧克力键盘,但是你知道什么是巧克力键盘吗?现在小编为大家讲解巧克力键盘的介绍。

      随着科技发展很多人将放在传统笔记本的目光转移到了超极本身上,不少朋友们都会注意到很多超极本用到的都是巧克力键盘,但是你知道什么是巧克力键盘吗?现在小编为大家讲解巧克力键盘的介绍。

      其实巧克力键盘并不只有最新的超级本采用,很多最新的笔记本也均采用了巧克力键盘。那么什么是巧克力键盘呢?简单来说巧克力键盘就是悬浮式键盘,很薄,按起来比较舒服,一般来说巧克力键盘按键之间的间隙比一般笔记本键盘按键间隙要大,因此用起来比较方便与舒服,由于键盘是采用悬浮式,因此按键比较轻柔,用力很小即可,并且弹性不粗,因此用户体验更好,目前很多键盘均采用这种巧克力型。

    巧克力键盘外观

      巧克力键盘外观

      专业来说,采用巧克力块独立式键帽,让每个按键如巧克力键盘同巧克力块浮在水面上一般放置在键盘底座上。在保证了键盘区尺寸的情况下,增大了手指与键帽接触的面积,击键更加准确,手感更加舒适。依据人体工学特征设计出凹帽状按键,同时,非粘连设计也减少了按错键的几率,这与传统键盘相比,不论是键程还是键距都有着明显的提高,增加了操作的舒适度,设计更科学,因此使用更出色。

    采用巧克力键盘的戴尔笔记本

      采用巧克力键盘的戴尔笔记本

      最后我们再来简单介绍下巧克力键盘有什么特点?

      ①巧克力键盘外观更时尚漂亮

      由于巧克力键盘采用更加轻薄的悬浮设计,因此键盘高度很低,不同于一般的键盘,按键凸起很高,按键需要比较用力,外观也不够好看。

      ②巧克力键盘更易清洁,并且不容易卡手

      由于巧克力键盘按键之间具有较大的间距,因此在清洁方面具有独特的优势,不同于传统的键盘按键空隙过于狭小,当有异物掉入间隙,不容易清洁,另外间隙更大也不容易卡手。

      ③巧克力键盘手感更舒适

      巧克力键盘采用悬浮式,按键仅需要用很小的力,加之悬浮式按键设计,弹性很好,手感更舒服。而一般传统键盘按键需要用力较大,并且按键之间间隙较小,很多时候也容易出现卡键等情况。#p#分页标题#e#

    传统键盘

      传统键盘

      巧克力键盘的优点非常多,在这里小编就不一一介绍了,关于巧克力键盘的知识,小编就为大家介绍到这里,希望对大家有所参考与帮助。

  • 相关推荐:

  • 巧克力键盘的介绍
  • Google Play是什么?
  • 红米卢伟冰:很多人会逐
  • 惠普和微软联合推出多款
  • 两大新招让多核心处理器
  • 到底部署vSphere需要消耗
  • 多云解决方案将主导云计
  • 你啊,改变不了测试服务
  • 爆料|某数据中心故障致
  • 在北京开发一个APP到底需
  • 网站内容禁止违规转载,转载授权联系中国云计算网