- 浏览: 695578 次
- 性别:
- 来自: 长沙
文章分类
- 全部博客 (364)
- quick start (57)
- bboss aop (43)
- bboss mvc (48)
- bboss persistent (96)
- bboss taglib (30)
- bboss event (10)
- bbossgroups (52)
- bboss (32)
- bboss会话共享 (17)
- bboss rpc (7)
- bboss 国际化 (5)
- bboss 序列化 (9)
- bboss cxf webservice (8)
- bboss hessian (3)
- bboss 安全认证SSO (15)
- bboss 工作流 (6)
- 平台 (18)
- bboss quartz (3)
- 杂谈 (5)
- 大数据 (1)
- bboss elastic (24)
- bboss http (1)
- bboss kafka (1)
- Elasticsearch Scroll和Slice Scroll查询API使用案例 (1)
最新评论
-
qianhao123:
...
采用gradle构建和发布bboss方法介绍 -
qianhao123:
[img][/img]
采用gradle构建和发布bboss方法介绍 -
yin_bp:
欢迎大家参与working
高性能elasticsearch ORM开发库使用介绍 -
qq641879434:
万分感谢
bboss 持久层sql xml配置文件编写和加载方法介绍 -
yin_bp:
qq641879434 写道怎么设置配置文件 可以查看执行的S ...
bboss 持久层sql xml配置文件编写和加载方法介绍
- 概述
bboss persistent的配置文件为poolman.xml,位于classes目录下即可
1.bboss persistent框架支持多个数据源配置
2.bboss persistent框架默认采用apache common dbcp作为数据库连接池
3.bboss persistent框架可以引用外部数据源,例如tomcat,weblogic和WebSphere平台提供的datasource
- 基本配置实例,只配置了一个datasource,如果需要配置多个datasource,只需要按照相应格式再加数据源就可以了:
<?xml version="1.0" encoding="gb2312"?>
<poolman>
<datasource>
<!--
连接池的逻辑名称,
应用程序通过该名称获取对应的数据库连接池的链接
持久层接口通过指定该名称在相应的数据库上执行增删改查操作
import java.sql.Connection;
import java.sql.SQLException;
import com.frameworkset.common.poolman.DBUtil;
.....
Connection con = DBUtil.getConection(“bspf”);
-->
<dbname>bspf</dbname>
<!--
数据库链接池启动时是否加载数据库表和视图的元数据 ,应用程序可以调用以下接口获取这些数据:
import com.frameworkset.common.poolman.DBUtil;
import com.frameworkset.common.poolman.sql.TableMetaData;
...
TableMetaData tableMetaData = DBUtil.getTableMetaData("V_VCH_FIXED_TAX_CF");
System.out.println(DBUtil.getTableMetaData("V_VCH_FIXED_TAX_CF"));
-->
<loadmetadata>false</loadmetadata>
<!--
datasource的jndi查找名称,如果指定了jndiName参数
bboss persistent框架将链接池绑定为datasource,应用程序可以通过
jndi查找获取数据库链接,例如:
Context ctx = new InitialContext();
DataSource ds = (DataSource)ctx.lookup("bspf_datasource_jndiname");
-->
<jndiName>bspf_datasource_jndiname</jndiName>
<!--
autoprimarykey
true表示启用insert自动补全功能,如果在insert sql语句中没有指定主键字段,那么bboss persistent将自动补全该条语句
首先分析sql语句得到table name,然后根据该表名到tableinfo表中查找表的主键信息,找到后根据主键配置生成一个主键,补全到sql语句中
当执行插入操作的方法时,该主键将作为方法的返回值返回给调用程序。
false表示不自动生成,默认值,这样避免分析sql语句,提高系统性能。
-->
<autoprimarykey>false</autoprimarykey>
<!--
cachequerymetadata 是否缓冲查询语句中查询列表中的字段信息
true表示缓冲,提高系统新能,一旦系统内存不够时,将自动释放这些缓冲
false,表示不缓冲
-->
<cachequerymetadata>false</cachequerymetadata>
<!--
driver 指定数据库驱动程序
-->
<driver>oracle.jdbc.driver.OracleDriver</driver>
<!--
url 指定数据库连接串
-->
<url>jdbc:oracle:thin:@//localhost:1521/orcl</url>
<!--
username 指定数据库用户
-->
<username>cmsnew</username>
<!--
password 指定数据库用户口令
-->
<password>cmsnew</password>
<!--
txIsolationLevel 指定数据库事务隔离级别
-->
<txIsolationLevel>READ_COMMITTED</txIsolationLevel>
<!--
initialConnections 指定数据库连接池初始连接数
-->
<initialConnections>2</initialConnections>
<!--
minimumSize 指定数据库连接池最小连接数
-->
<minimumSize>2</minimumSize>
<!--
maximumSize 指定数据库连接池最大连接数
-->
<maximumSize>8</maximumSize>
<!--控制connection达到maximumSize是否允许再创建新的connection
true:允许,缺省值
false:不允许-->
<maximumSoft>false</maximumSoft>
<!--
是否检测超时链接(事务超时链接),当数据库连接资源不够时,才会检测,否则不检测
true-检测,如果检测到有事务超时的链接,系统将强制回收(释放)该链接
false-不检测,默认值
-->
<removeAbandoned>true</removeAbandoned>
<!--
链接使用超时时间(事务超时时间)
单位:秒
-->
<userTimeout>120</userTimeout>
<!--
系统强制回收链接时,是否输出后台日志
true-输出,默认值
false-不输出
-->
<logAbandoned>true</logAbandoned>
<!--
数据库会话是否是readonly,缺省为false
-->
<readOnly>true</readOnly>
<!--
对应属性:timeBetweenEvictionRunsMillis
the amount of time (in seconds) to sleep between examining idle objects for eviction
空闲链接超时检测处理启动间隔时间
单位:秒
-->
<skimmerFrequency>86400</skimmerFrequency>
<!--对应于minEvictableIdleTimeMillis 属性:
minEvictableIdleTimeMillis the minimum number of milliseconds
an object can sit idle in the pool before it is eligable for evcition
单位:秒
空闲链接回收时间,空闲时间超过指定的值时,将被回收
-->
<connectionTimeout>120</connectionTimeout>
<!--
numTestsPerEvictionRun
the number of idle objects to
examine per run within the idle object eviction thread (if any)
每次检测时,检测的空闲链接个数 ,为零时检测所有的空闲链接
-->
<shrinkBy>4</shrinkBy>
<!--
/**
* 检测空闲链接处理时,是否对空闲链接进行有效性检查控制开关
* true-检查,都检查到有无效链接时,直接销毁无效链接
* false-不检查,缺省值
*/
-->
<testWhileidle>false</testWhileidle>
<!--
(1) 在tableinfo表中配置了sequence时,以下机制不起作用,
定义数据库主键生成机制
缺省的采用系统自带的主键生成机制,
外步程序可以覆盖系统主键生成机制
由值来决定
auto:自动,一般在生产环境下采用该种模式,
解决了单个应用并发访问数据库添加记录产生冲突的问题,效率高,如果生产环境下有多个应用并发访问同一数据库时,必须采用composite模式
composite:结合自动和实时从数据库中获取最大的主键值两种方式来处理,开发环境下建议采用该种模式,
解决了多个应用同时访问数据库添加记录时产生冲突的问题,效率相对较低, 如果生产环境下有多个应用并发访问同一数据库时,必须采用composite模式
(2)通过以下方法获取主键
DBUtil中的下述方法获取主键
DBUtil.getNextPrimaryKey(Connection, tablename)
DBUtil.getNextPrimaryKey(Connection, dbname, tablename)
DBUtil.getNextPrimaryKey(tablename)
DBUtil.getNextPrimaryKey(dbname, tablename)
DBUtil.getNextStringPrimaryKey(Connection, tablename)
DBUtil.getNextStringPrimaryKey(Connection, dbname, tablename)
DBUtil.getNextStringPrimaryKey(tablename)
DBUtil.getNextStringPrimaryKey(dbname, tablename)
前提是tablename对应的表的主键信息必须配置在tableinfo表中,tableinfo表的结构为:
名称 是否为空? 类型 描述
----------------------------------------- -------- ----------------------------
TABLE_NAME NOT NULL VARCHAR2(255) 表名称
TABLE_ID_NAME VARCHAR2(255) 表的主键名称
TABLE_ID_INCREMENT NUMBER(5) 表主键的自增值
TABLE_ID_VALUE NUMBER(20) 表主键当前值,已经不使用
TABLE_ID_GENERATOR VARCHAR2(255) 表主键生成机制,只有TABLE_ID_TYPE为sequence时才需填为相应sequence的名称
TABLE_ID_TYPE VARCHAR2(255) 表主键的数值类型,int,long,string,sequence,如果为sequence时必须指定TABLE_ID_GENERATOR为对应的sequence的名称
TABLE_ID_PREFIX VARCHAR2(255) 为表主键添加统一的前缀,默认为null,只有表主键类型为string时才能指定前缀。
-->
<keygenerate>composite</keygenerate>
<!-- 请求链接时等待时间,单位:秒
客服端程序请求链接等待时间,超过指定值时后台包报待超时异常
-->
<maxWait>10</maxWait>
<!--
链接有效性检查sql语句
-->
<validationQuery>select 1 from dual</validationQuery>
<!-- 如果在tableinfo表中配置了表的主键信息,而且主键通过sequence生成,则synsequence元素
用来控制是否同步sequence的当前值为最大的未使用的表的主键值+1。
-->
<synsequence>false</synsequence>
<!-- 每个connection预编译statement池化标记
true:池化
false:不池化,默认值
-->
<poolingPreparedStatements>false</poolingPreparedStatements>
<!--
每个connection最大打开的预编译statements数-1
-->
<maxOpenPreparedStatements>-1</maxOpenPreparedStatements>
<!--
设置为true,则相关的增删改查,批处理,预编译处理,存储函数调用sql语句将全部被输出的系统后台
否则不输出
-->
<showsql>true</showsql>
</datasource>
</poolman>
- 外部数据源实例
<?xml version="1.0" encoding="gb2312"?>
<poolman>
<datasource external=“true”>
<!--
连接池的逻辑名称,
应用程序通过该名称获取对应的数据库连接池的链接
持久层接口通过指定该名称在相应的数据库上执行增删改查操作
import java.sql.Connection;
import java.sql.SQLException;
import com.frameworkset.common.poolman.DBUtil;
.....
Connection con = DBUtil.getConection(“bspf”);
-->
<dbname>bspf</dbname>
<!--
数据库链接池启动时是否加载数据库表和视图的元数据 ,应用程序可以调用以下接口获取这些数据:
import com.frameworkset.common.poolman.DBUtil;
import com.frameworkset.common.poolman.sql.TableMetaData;
...
TableMetaData tableMetaData = DBUtil.getTableMetaData("V_VCH_FIXED_TAX_CF");
System.out.println(DBUtil.getTableMetaData("V_VCH_FIXED_TAX_CF"));
-->
<loadmetadata>false</loadmetadata>
<!--
datasource的jndi查找名称,如果指定了jndiName参数
bboss persistent框架将链接池绑定为datasource,应用程序可以通过
jndi查找获取数据库链接,例如:
Context ctx = new InitialContext();
DataSource ds = (DataSource)ctx.lookup("bspf_datasource_jndiname");
-->
<jndiName>bspf_datasource_jndiname</jndiName>
<!--
当dataSource的external属性指定为true时,必须指定外部数据源jndi绑定名称
如果系统需要通过内部的jndi查找该数据源,还必须指定jndiName名称,比如系统管理中hibernate
必需通过内部jndi访问数据源来获取数据库的链接,以及应用hibernate产生自定义数据库主键机制
-->
<externaljndiName>external_bspf_datasource_jndiname</externaljndiName>
<!--
autoprimarykey
true表示启用insert自动补全功能,如果在insert sql语句中没有指定主键字段,那么bboss persistent将自动补全该条语句
首先分析sql语句得到table name,然后根据该表名到tableinfo表中查找表的主键信息,找到后根据主键配置生成一个主键,补全到sql语句中
当执行插入操作的方法时,该主键将作为方法的返回值返回给调用程序。
false表示不自动生成,默认值,这样避免分析sql语句,提高系统性能。
-->
<autoprimarykey>false</autoprimarykey>
<!--
cachequerymetadata 是否缓冲查询语句中查询列表中的字段信息
true表示缓冲,提高系统新能,一旦系统内存不够时,将自动释放这些缓冲
false,表示不缓冲
-->
<cachequerymetadata>false</cachequerymetadata>
<!--
driver 指定数据库驱动程序,外部数据源需要指定数据库的驱动程序是为了识别不同类型的数据库
-->
<driver>oracle.jdbc.driver.OracleDriver</driver>
<!--
(1) 在tableinfo表中配置了sequence时,以下机制不起作用,
定义数据库主键生成机制
缺省的采用系统自带的主键生成机制,
外步程序可以覆盖系统主键生成机制
由值来决定
auto:自动,一般在生产环境下采用该种模式,
解决了单个应用并发访问数据库添加记录产生冲突的问题,效率高,如果生产环境下有多个应用并发访问同一数据库时,必须采用composite模式
composite:结合自动和实时从数据库中获取最大的主键值两种方式来处理,开发环境下建议采用该种模式,
解决了多个应用同时访问数据库添加记录时产生冲突的问题,效率相对较低, 如果生产环境下有多个应用并发访问同一数据库时,必须采用composite模式
(2)通过以下方法获取主键
DBUtil中的下述方法获取主键
DBUtil.getNextPrimaryKey(Connection, tablename)
DBUtil.getNextPrimaryKey(Connection, dbname, tablename)
DBUtil.getNextPrimaryKey(tablename)
DBUtil.getNextPrimaryKey(dbname, tablename)
DBUtil.getNextStringPrimaryKey(Connection, tablename)
DBUtil.getNextStringPrimaryKey(Connection, dbname, tablename)
DBUtil.getNextStringPrimaryKey(tablename)
DBUtil.getNextStringPrimaryKey(dbname, tablename)
前提是tablename对应的表的主键信息必须配置在tableinfo表中,tableinfo表的结构为:
名称 是否为空? 类型 描述
----------------------------------------- -------- ----------------------------
TABLE_NAME NOT NULL VARCHAR2(255) 表名称
TABLE_ID_NAME VARCHAR2(255) 表的主键名称
TABLE_ID_INCREMENT NUMBER(5) 表主键的自增值
TABLE_ID_VALUE NUMBER(20) 表主键当前值,已经不使用
TABLE_ID_GENERATOR VARCHAR2(255) 表主键生成机制,只有TABLE_ID_TYPE为sequence时才需填为相应sequence的名称
TABLE_ID_TYPE VARCHAR2(255) 表主键的数值类型,int,long,string,sequence,如果为sequence时必须指定TABLE_ID_GENERATOR为对应的sequence的名称
TABLE_ID_PREFIX VARCHAR2(255) 为表主键添加统一的前缀,默认为null,只有表主键类型为string时才能指定前缀。
-->
<keygenerate>composite</keygenerate>
<!-- 如果在tableinfo表中配置了表的主键信息,而且主键通过sequence生成,则synsequence元素
用来控制是否同步sequence的当前值为最大的未使用的表的主键值+1。
-->
<synsequence>false</synsequence>
<!--
设置为true,则相关的增删改查,批处理,预编译处理,存储函数调用sql语句将全部被输出的系统后台
否则不输出
-->
<showsql>true</showsql>
</datasource>
</poolman>
bboss项目下载列表 在sourceforge访问地址为:
https://sourceforge.net/project/showfiles.php?group_id=238653
发表评论
-
bboss 持久层数据源引用外部属性配置介绍
2018-12-29 21:47 1084bboss 持久层数据源外部属性配置引用介绍 bboss持久 ... -
bboss持久层开启和关闭自带主键机制
2017-08-17 11:56 754bboss持久层开启和关闭自带主键机制 请访问文档: bbos ... -
bboss高性能db批处理功能使用方法介绍
2017-05-14 21:28 2139bboss持久层在v5.0.3.5中新增简单的高效的db批处理 ... -
bboss持久层公共sql片段定义和引用方法说明
2017-03-03 13:05 1124bboss持久层公共sql片段定义和引用方法说明 在配置sq ... -
最新版本mysql jdbc驱动包获取表定义信息空指针异常处理方法
2016-12-15 10:24 1357在使用最新的mysql-connector-java 6.0. ... -
持久层快速入门系列一
2016-08-19 13:00 1261持久层快速入门 先在应用中导入bboss 持久层(bboss ... -
bboss与spring中配置和引用bboss数据源和bboss dao组件方法说明
2016-08-10 16:04 918首先在项目中导入bboss 持久层包: maven坐标 & ... -
bboss 持久层sql xml配置文件编写和加载方法介绍
2016-04-05 13:14 1671bboss 持久层sql xml配置文件编写和加载方法介绍 通 ... -
bboss持久层设置数据库查询fetchsize参数方法
2015-11-06 11:54 1017bboss持久层设置数据库查询fetchsize参数方法 j ... -
bboss持久层快速入门教程
2015-09-19 13:49 1589bboss持久层快速入门教程,快速搭建bboss持久层的开 ... -
bboss持久层数据库适配器编写和注册方法
2015-02-06 15:21 977bboss持久层数据库适配器编写和注册方法 bboss持久层默 ... -
bboss模糊查询、动态sql、批处理资料荟萃
2015-01-30 12:03 2369bboss模糊查询、动态sql、批处理资料荟萃 bboss持 ... -
bboss持久层查询元数据缓存机制开启方法
2014-11-18 12:03 1022bboss持久层为了提升数据库查询操作性能,提供了对查 ... -
bboss内置数据源apache dbcp与druid数据源切换方法
2014-09-23 09:59 1388bboss内置数据源与druid数据源切换方法 bboss内置 ... -
bboss持久层多数据源配置及多数据库事务控制使用方法
2014-05-11 20:24 2974bboss持久层多数据源配置及使用方法,持久层框架及demo下 ... -
bboss持久层demo使用说明
2014-03-11 09:38 1209持久层案例可以用svn客户端下载eclipse工程,导入ecl ... -
bboss持久层More分页查询API使用介绍
2013-10-18 16:17 1475为了更好地提高数据库分页查询的效率,bboss持久层在Conf ... -
bboss持久层操作Clob和Blob字段示例
2013-09-09 13:29 1230bboss持久层操作Clob和Blob非常方便,基于bboss ... -
bboss持久层ormaping机制详解
2013-09-04 21:04 1157bboss持久层针对db操作即提供了原始sql语句的支持,又提 ... -
bboss持久层改进支持模块sql配置文件引用其它模块sql配置文件中sql语句
2013-09-01 22:23 932bboss持久层改进支持模块sql配置文件引用其它模块sql配 ...
相关推荐
BBoss Persistent是一个轻量级的持久层框架,它提供了方便的方式来处理这些大字段。本文将深入探讨在BBoss Persistent 1.0.2中如何高效地管理CLOB和BLOB数据。 首先,CLOB用于存储大量的文本数据,如长篇文章或XML...
该项目是基于Java语言的bboss开源框架构建的设计源码,包含3075个文件,涵盖2700个Java源文件、85个XML配置文件、52个HTML文件、39个properties和prefs文件、23个GIF图片、18个Gradle文件、17个gitignore文件、10个...
当需要使用外部属性文件时,我们可以创建一个独立的`.properties`文件,如`config.properties`,这个文件可以包含应用程序的配置参数,如数据库连接字符串、服务器端口等。 在`config.properties`中,键值对的形式...
- 安装与配置指南:如何下载和设置BBoss MVCDemo环境,包括JDK、应用服务器(如Tomcat)、数据库等的配置。 - 快速入门:简单的示例展示如何创建第一个BBoss MVCDemo应用,包括编写控制器、模型和视图。 - 请求处理...
BBoss(全称为bbossgroups)是一个专为企业级J2EE应用设计的开源框架,它为Java开发者提供了一系列强大的工具和服务,以简化Web应用程序的开发过程。该框架旨在提高开发效率,降低维护成本,同时保持高度的灵活性和...
该工具是一款基于bboss...此工具能够自动生成bboss MVC、IOC、持久化、JSP、i18n、SQL配置文件、Web服务、Hessian服务等相关源代码,适用于快速开发和项目迭代。详细文档请参考:http://yin-bp.iteye.com/blog/2256948
bboss-datatran 支持多种数据源的接入,如关系型数据库(MySQL、Oracle等)、NoSQL数据库(HBase、MongoDB等)、消息队列(Kafka、RabbitMQ等)以及文件系统(HDFS、FTP等)。通过内置的适配器,用户可以方便地将...
3. `bboss-util-5.5.0.jar`和`bboss-persistent-5.5.0.jar`:这是BBoss框架的核心组件,提供了许多实用工具类和持久化操作支持,如数据库连接、事务管理等,为Elasticsearch的数据导入提供底层支持。 4. `...
5. **数据库连接**:bboss通常需要与数据库进行交互,所以要确保你有合适的数据库服务器(如MySQL、Oracle等)并配置相应的数据库连接参数。 6. **启动服务器**:根据bboss提供的文档,启动内置的应用服务器(如...
在Java中,传统的JDBC编程方式往往需要编写大量重复的SQL代码,而ORM框架如BBoss-DB-Elasticsearch-Tool则通过元数据(如注解或XML配置)将Java对象与数据库表映射起来,实现了数据的透明访问。这极大地提高了开发...
在配置文件中,可以设定数据库连接池、事务管理等,以实现高效的数据库操作。 DAO组件管理涉及到如何管理和注入数据库访问组件。DAO(Data Access Object)是访问数据库的对象,通常包含对数据库的基本操作方法。...
单集群演示功能测试用例,spring boot配置项以spring.elasticsearch.bboss开头 对应的配置文件为application.properties文件 多集群测试用例:eshelloword-spring-boot-starter\src\test\java\org\bboss\...
集成bboss和Elasticsearch时,首先需要在项目中引入bboss的依赖,并配置Elasticsearch的相关连接信息,如集群名称、节点地址等。然后可以通过bboss提供的API进行索引创建、数据插入、查询、更新、删除等操作。 4. ...
标题中的“bboss mvc 通过jsonp实现跨站跨域远程访问”指的是使用bboss MVC框架来处理JSONP(JSON with Padding)请求,以克服浏览器的同源策略限制,实现跨域数据交互。bboss MVC是一个Java Web开发框架,它提供了...
SYSAuthenticateFilter就是BBoss框架中专门用于安全认证的过滤器,它负责拦截请求,检查用户是否已经登录并拥有访问特定资源的权限。 首先,我们来看一下`SYSAuthenticateFilter.java`这个文件。作为过滤器的实现类...
5. **配置BBoss**: 根据项目需求,配置 BBoss 的连接参数,如集群地址、端口等。 **四、开发入门** 1. **创建索引**: 使用 BBoss 提供的 API 创建索引,指定映射(Mapping)以便对数据类型进行定义。 2. **插入数据...
bboss会话共享是一种分布式会话管理技术,它针对在集群环境下应用部署时如何解决会话数据丢失和单点登录问题提供了专门的解决方案。根据提供的文档内容,我们可以详细探讨bboss会话共享涉及的关键知识点。 首先,...
bboss是一个j2ee开源框架,为企业级应用开发提供一站式解决方案,并能有效地支撑移动应用开发。bboss功能涵盖ioc,mvc,jsp自定义标签库,持久层,全局事务托管,安全认证,SSO,web会话共享,cxfwebservice服务发布...