关注JEECG发展历程 关注最新动态和版本, 记录JEECG成长点滴 更新日志 - 技术支持 - 招聘英才

JEECG最新版本下载 JEECG智能开发平台 - 显著提高开发效率 常见问题 - 入门视频 - 参与开源团队

商务QQ: 69893005、418799587 商务热线(5*8小时): 010-64808099 官方邮箱: jeecgos@163.com

查看: 13582|回复: 0

浅谈JEECG多数据源的使用

[复制链接]
发表于 2015-5-16 22:40:39 | 显示全部楼层 |阅读模式
        首先,简单的介绍下什么是JEECG?JEECG(J2EE Code Generation)是一款基于代码生成器的免费开源的快速开发平台,使用JEECG可以简单快速地开发出企业级的Web应用系统。JEECG提倡简单功能由代码生成器直接生成,复杂业务采用表单自定义,业务流程使用工作流来实现、扩展出任务接口,由开发者编写特殊业务逻辑。
        下面我们重点讲解下JEECG3.5GA版本多数据源的使用。在使用多数据源之前我们有必要了解什么是多数据源?为什么我们需要使用多数据源呢?多数据源是指同一个系统中处理的数据来自不同的数据源。比如我们在用ETL做数据同步、清洗和整合的时候经常要配置源库、整合库、清洗库、目标库等,如此多的数据源,我们需要采用灵活的机制配置,保证数据源间的自由切换。JEECG3.5提供了多数据源的功能,JEECG多数据源的设计直接利用了Springjdbc连接,跟Hibernate、Mybatis等持久化框架无关,就跟我们采用最原始的JDBC连接一样,简单方便。JEECG数据库中t_s_data_source表用来存放动态的数据源,系统在启动时通过org.jeecgframework.web.system.listener.InitListener把t_s_data_source表中的所有动态数据源信息配置到静态的Map中,其中t_s_data_source.db_key字段作为Map的key,以t_s_data_source的实体类作为value。
        下面简单介绍下如何在JEECG3.5GA中使用多数据源。
        1、配置多数据源管理菜单并分配权限。
        (1)    配置多数据源管理菜单。
        找到DynamicDataSourceController数据源配置控制类,可以方便的看出数据源配置的url是dynamicDataSourceController.do?dbSource。
        进入“系统管理”à“菜单管理”,单击“菜单录入”,录入菜单信息如下:
         1.jpg
        其中菜单地址为:dynamicDataSourceController.do?dbSource,单击“确定”按钮,保存菜单信息。
        (2)    为角色分配菜单权限。
        进入“系统管理”à“角色管理”,单击“角色列表”下的【权限设置】,加载“菜单列表”,勾选“多数据源管理”前面的复选框,单击“菜单列表”旁边的保存图标进行保存角色菜单权限。
         2.jpg
        (3)    退出系统重新登录。可以看到“系统管理”中增加“多数据源管理”菜单。
        2、录入数据源信息。
        (1) 进入“系统管理”à“多数据源管理”,进入如下页面。
         3.jpg
        (2) 单击“录入”,录入数据源信息,并保存。
         4.jpg
        说明:每次新增或者编辑数据源的时候,系统都会动态刷新缓存中的数据源信息。
        3、动态使用多数据源。
        具体各个方法使用请查看org.jeecgframework.core.util.DynamicDBUtil工具类。重点关注下面三个方法:

    public static List<Map<String, Object>> findList(final String dbKey, String sql, Object... param);

    public static Object findOne(finalString dbKey, String sql, Object... param);

    public static int update(finalString dbKey, String sql, Object... param);


        创建Service实现类,同时在页面必须上传要调用数据源的dbKey.

   /**

     * 动态数据源测试

     * @param dbKey 数据源KEY

     * @return

     */

    public List<Map<String,Object>> queryDynamicDB(String dbKey){

        final String sql = "select * from tbl_sys_user";

        List<Map<String,Object>> userList = DynamicDBUtil.findList(dbKey, sql, null);

        return userList;

}


        以上就是我对JEECG3.5GA多数据源使用的简单分析,通过以上分析我们知道JEECG把数据源存放在数据库里,方便灵活的管理和维护数据源,同时采用SpringJdbc进行多数据源的处理,简单直接,同时效率较高。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表