`

bbossgroups持久层sql配置文件多数据库sql语句配置机制

阅读更多
bbossgroups持久层sql配置文件多数据库sql语句配置机制

bbossgroups持久层sql配置文件支持同一个配置名称对应不同数据库sql语句的配置机制,具体的原理如下:

1.多数据库sql语句配置机制
           可以通过名称属性name配置默认sql,特定数据库的sql通过在
名称后面加数据库类型后缀来区分,例如:
sqltest
sqltest-oracle
sqltest-derby
sqltest-mysql

bboss持久层支持的数据库类型有:
  • as400
  • db2app
  • db2net
  • cloudscape
  • hypersonic
  • interbase
  • instantdb
  • mssql
  • mysql
  • mariadb
  • oracle
  • postgresql
  • sapdb
  • sybase
  • weblogic
  • axion
  • informix
  • odbc
  • msaccess
  • derby

2.ConfigSQLExecutor执行数据库操作时,根据指定的数据源类型获取特定数据库sql语句机制
  我们以例子来说明这个机制,首先看一个sql配置文件示例:
<?xml version="1.0" encoding='gb2312'?>
<properties>
         <!--默认sql语句-->
	<property name="sqltest"><![CDATA[select name from LISTBEAN where id=1]]>
	</property>
         <!--mysql sql语句-->
	<property name="sqltest-mysql"><![CDATA[select ifnull(name,'匿名用户') from LISTBEAN where id=1]]>         
	</property>
         <!--oracle sql语句-->
         <property name="sqltest-oracle"><![CDATA[select nvl(name,'匿名用户') from LISTBEAN where id=1]]>         
	</property> 
</properties>


我们配置了名称为sqltest的三条sql语句,一条默认的sql语句,一条对应于mysql数据库,使用了mysql的ifnull函数,一条对应于oracle数据库,使用了oracle的nvl函数,然后根据配置文件内容实例化一个ConfigSQLExecutor对象,并根据sqltest做相应的查询操作:
ConfigSQLExecutor executor = new ConfigSQLExecutor("com/frameworkset/sqlexecutor/sqlfile.xml");
Map dbBeans  =  executor.queryObjectWithDBName(HashMap.class,"ds", "sqltest"); 


我们在poolman.xml文件中配置了一个名称为ds的mysql数据源:
<datasource>

    <dbname>ds</dbname>
    <loadmetadata>false</loadmetadata>
    <jndiName>jdbc/mysql-ds</jndiName>
    <driver>com.mysql.jdbc.Driver</driver>

     <url>jdbc:mysql://localhost:3306/cim</url> 

    <username>root</username>
    <password>123456</password>

   。。。。。。
  </datasource>


这样持久层框架在执行executor.queryObjectWithDBName(HashMap.class,"ds", "sqltest"); 查询操作时,会自动识别出数据源ds是一个mysql数据源,然后就会执行sqltest-mysql对应的sql语句,如果是oracle数据源则会执行sqltest-oracle对应的sql语句,其他类型数据库就会执行默认的sqltest对应的sql语句。

到此bbossgroups持久层sql配置文件多数据库sql语句配置和具体实现原理就介绍完毕了,如有疑问请留言讨论。









分享到:
评论

相关推荐

    bbossgroups 开发系列文章之一 最佳实践

    数据库访问组件和SQL语句配置文件是数据层的关键。bbossgroups提供了一套便捷的数据访问组件,允许开发者方便地操作数据库。在配置文件中,可以设定数据库连接池、事务管理等,以实现高效的数据库操作。 DAO组件...

    bbossgroups 3.1SQLExecutor组件ap使用实例

    在Java开发中,bbossgroups 3.1框架提供了一个名为...通过灵活的SQL构建和结果处理机制,它能够适应各种复杂的数据库应用场景。在实际开发中,掌握SQLExecutor的使用对于优化数据库操作和提升系统性能具有重要意义。

    bbossgroups 3.1培训教程.ppt

    持久层框架进一步完善,支持ORMapping和多数据库解决方案;AOP/IoC框架整合多种技术,如Quartz、JMS、WebService等;分布式事件管理框架逐步完善。 4. **2011年**:标签库与MVC框架融合,持久层API改进,增加了SQL...

    Bbossgroups体系架构.ppt

    6. **持久层框架**:Bboss提供了持久层框架,简化了数据库操作,支持SQL动态生成和ORM映射,与各种主流数据库如MySQL、Oracle等良好兼容。 7. **分布式事件框架**:通过JGroups、Minetty、RMI、HTTP、JMS、...

    bbossgroups 3.0 发布,国内首款集

    ### bbossgroups 3.0 发布,国内首款集成多技术的企业级J2EE开发框架 #### 概述 近日,bbossgroups 3.0 正式发布,这款国内首款集AOP(面向切面编程)、MVC(模型-视图-控制器)、Persistent(持久化)、JSP ...

    bbossgroups 3.0 培训教程

    1. **安装与配置**:如何下载并安装bbossgroups 3.0,以及配置相关的环境变量和启动参数。 2. **基本概念**:了解bbossgroups中的关键组件,如消息代理、消费者、生产者等,以及它们之间的交互方式。 3. **开发...

    基于Java和Shell的bboss session framework跨域集群节点会话共享与监控设计源码

    该框架包含222个文件,包括164个Java源文件、14个XML配置文件、6个Gradle构建文件、6个JAR包文件、6个属性文件等,旨在支持跨域应用集群节点的会话共享与监控,并提供示例站点http://session.bbossgroups.com/...

    企业级J2EE开源框架bboss

    2. **数据库操作**:BBoss提供了便捷的数据访问层(DAO),支持SQL动态生成、事务管理以及多种数据库的兼容性,使得数据库操作变得简单且高效。 3. **服务治理**:框架内置了服务注册与发现机制,可以实现微服务...

    bboss mvc 通过jsonp实现跨站跨域远程访问

    提供的压缩包文件"bbossgroups 框架培训教程.pptx"和"Bbossgroups演示文档.pptx"可能包含了更多关于bboss mvc框架的详细信息和使用示例,包括如何配置和使用JSONP等特性。建议查阅这些文档以获取更深入的理解。 总...

    2013年度中国优秀开源项目列表

    12. bboss:bbossgroups是首个集成AOP、MVC、持久层、JSP标签库、分布式RPC服务和序列化组件的JavaEE企业级开发框架。 13. BeeFramework:BeeFramework是iOS平台的快速开发框架,特点包括易学易用、组件丰富,提供...

    bboss-elastic-tran:bboss 数据同步工具

    它运行并访问像mybatis这样的elasticsearch来关联数据库。环境要求JDK要求:JDK 1.7+ Elasticsearch版本要求:1.X,2.X,5.X,6.X,7.x,+ Spring Booter 1.x,2.x,+从源代码构建首先从获取源代码然后转到目录...

    java版地图源码-bboss-elasticsearch:最好的elasticsearch高级javarest客户端api-----bbos

    java版地图源码弹性搜索Bboss Bboss 是一个很好的 elasticsearch Java rest 客户端。 它以类似于mybatis的方式操作和访问elasticsearch。 环保要求 JDK 要求:JDK 1.7+ Elasticsearch ...&gt;com.bbossgroups.p

Global site tag (gtag.js) - Google Analytics