- 浏览: 697649 次
- 性别:
- 来自: 长沙
文章分类
- 全部博客 (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配置文件编写和加载方法介绍
4.14 主键的生成
bboss主键生成有两种模式,一种模式是在对象主键属性上加@PrimaryKey(uuid主键)或者@PrimaryKey(auto=true,pkname="xxxx")(pkname对应tableinfo中的TABLE_NAME子字段的值),另外一种模式就是通过DBUtil.getNextPrimaryKey方法再程序中获取(前提是表的主键信息需要配置到tableinfo中,可以支持uuid和oracle的sequence,以及mysql的自定义sequence)。
对于mysql之类可以自动产生主键的数据库,如果获取自动产生的主键请参考文档:
bboss持久层返回mysql自增主键功能说明
模式一 注解模式实例
自动生成uuid主键,生成的主键值会自动赋给id属性,这种模式不需要进行额外配置
默认采用com.frameworkset.common.poolman.sql.StrongUuidGenerator生成uuid,用户可以自己实现接口
com.frameworkset.common.poolman.sql.IdGenerator来自定义uuid主键生成机制,自定义的uuid生成组件可以在poolman.xml文件中配置:
如何在程序中使用IdGenerator来生成主键:
根据tableinfo中配置的主键信息生成记录主键,生成的主键值会自动赋给id属性
模式二实例 编程模式
主键信息表
Poolman可以自动生成表的主键,前提是将表的主键信息配置到tableinfo表中,其结构如下
[img]/upload/attachment/113888/557456e8-c104-35d1-83ba-866550098ee7.gif" alt="[/img]
TABLE_NAME VARCHAR2(255) 表名称
TABLE_ID_NAME VARCHAR2(255), 表的主键名称
TABLE_ID_INCREMENT NUMBER(5), 表的主键自增值
TABLE_ID_VALUE NUMBER(20), 表的主键的当前值
TABLE_ID_GENERATOR VARCHAR2(255), 表的主键自定义生成机制,
可提供poolman之外的生成机制,
比如数据库sequence名称,要求TABLE_ID_TYPE是sequence
TABLE_ID_TYPE VARCHAR2(255), 表主键类型,取值范围:string,int,long,sequence
TABLE_ID_PREFIX VARCHAR2(255) 主键前缀,如果TABLE_ID_TYPE的值为string,则可以添加前缀,否则不可以
4.14.2人工获取主键的接口
com.frameworkset.common.poolman.DBUtil组件定义了一组getNextPrimaryKey静态方法,用户在程序中获取主键配置在tableinfo表中的主键信息。
1. 获取数字类型的主键
获取缺省数据库中表的主键信息
public static long getNextPrimaryKey(String tableName) throws SQLException
获取指定数据库中表的主键信息
public static long getNextPrimaryKey(String dbName,String tableName) throws SQLException
2. 获取字符串类型的主键
获取缺省数据库中表的主键信息
public static String getNextStringPrimaryKey(String tableName) throws SQLException
获取指定数据库中表的主键信息
public static String getNextStringPrimaryKey(String dbName,String tableName) throws SQLException
特别声明
持久层框架在poolman.xml配置文件中新增了配置属性:
false
可以通过该开关来控制是否启用为sql语句自动补全主键的功能,这样能够避免持久层框架去分析每一条insert语句,提升系统性能。
控制的开关autoprimarykey的值为false时,表示不自动补全insert语句中的主键值;为true时,表示启用自动补全主键的功能,但是主键信息必须配置在tableinfo表中。
且数据库执行了打印序列的语句,但实际seq没有没有变化:
[2014-09-11 09:57:45][DEBUG][com.frameworkset.common.poolman.PreparedDBUtil] Execute JDBC prepared query statement:select SEQ_SD_CUSTOM_UNIT.nextval from dual
[2014-09-11 09:57:45][ERROR][com.bestride.pms.sd.service.CustomUnitService] 数据库操作出错:未指定绑定变量的值:id
bboss主键生成有两种模式,一种模式是在对象主键属性上加@PrimaryKey(uuid主键)或者@PrimaryKey(auto=true,pkname="xxxx")(pkname对应tableinfo中的TABLE_NAME子字段的值),另外一种模式就是通过DBUtil.getNextPrimaryKey方法再程序中获取(前提是表的主键信息需要配置到tableinfo中,可以支持uuid和oracle的sequence,以及mysql的自定义sequence)。
对于mysql之类可以自动产生主键的数据库,如果获取自动产生的主键请参考文档:
bboss持久层返回mysql自增主键功能说明
模式一 注解模式实例
自动生成uuid主键,生成的主键值会自动赋给id属性,这种模式不需要进行额外配置
public class POBean { @PrimaryKey private String id ; }
默认采用com.frameworkset.common.poolman.sql.StrongUuidGenerator生成uuid,用户可以自己实现接口
com.frameworkset.common.poolman.sql.IdGenerator来自定义uuid主键生成机制,自定义的uuid生成组件可以在poolman.xml文件中配置:
<datasource> .... <idGenerator>com.frameworkset.common.poolman.sql.StrongUuidGenerator</idGenerator> ...... </datasource>
如何在程序中使用IdGenerator来生成主键:
com.frameworkset.common.poolman.sql.IdGenerator ienerator = com.frameworkset.common.poolman.DBUtil.getPool("bspf").getIdGenerator();//指定数据源 或者 com.frameworkset.common.poolman.sql.IdGenerator ienerator = com.frameworkset.common.poolman.DBUtil.getPool().getIdGenerator();//默认数据源 String value = ienerator.getNextId();//获取主键
根据tableinfo中配置的主键信息生成记录主键,生成的主键值会自动赋给id属性
public class POBean { @PrimaryKey(pkname="ListBean",auto=true) private String id ; }
模式二实例 编程模式
主键信息表
Poolman可以自动生成表的主键,前提是将表的主键信息配置到tableinfo表中,其结构如下
[img]/upload/attachment/113888/557456e8-c104-35d1-83ba-866550098ee7.gif" alt="[/img]
TABLE_NAME VARCHAR2(255) 表名称
TABLE_ID_NAME VARCHAR2(255), 表的主键名称
TABLE_ID_INCREMENT NUMBER(5), 表的主键自增值
TABLE_ID_VALUE NUMBER(20), 表的主键的当前值
TABLE_ID_GENERATOR VARCHAR2(255), 表的主键自定义生成机制,
可提供poolman之外的生成机制,
比如数据库sequence名称,要求TABLE_ID_TYPE是sequence
TABLE_ID_TYPE VARCHAR2(255), 表主键类型,取值范围:string,int,long,sequence
TABLE_ID_PREFIX VARCHAR2(255) 主键前缀,如果TABLE_ID_TYPE的值为string,则可以添加前缀,否则不可以
4.14.2人工获取主键的接口
com.frameworkset.common.poolman.DBUtil组件定义了一组getNextPrimaryKey静态方法,用户在程序中获取主键配置在tableinfo表中的主键信息。
1. 获取数字类型的主键
获取缺省数据库中表的主键信息
public static long getNextPrimaryKey(String tableName) throws SQLException
获取指定数据库中表的主键信息
public static long getNextPrimaryKey(String dbName,String tableName) throws SQLException
2. 获取字符串类型的主键
获取缺省数据库中表的主键信息
public static String getNextStringPrimaryKey(String tableName) throws SQLException
获取指定数据库中表的主键信息
public static String getNextStringPrimaryKey(String dbName,String tableName) throws SQLException
特别声明
持久层框架在poolman.xml配置文件中新增了配置属性:
false
可以通过该开关来控制是否启用为sql语句自动补全主键的功能,这样能够避免持久层框架去分析每一条insert语句,提升系统性能。
控制的开关autoprimarykey的值为false时,表示不自动补全insert语句中的主键值;为true时,表示启用自动补全主键的功能,但是主键信息必须配置在tableinfo表中。
评论
3 楼
yin_bp
2014-09-11
/** 主健 */
@PrimaryKey(auto=true,pkname="sd_custom_unit")
private String id;
改为:
@PrimaryKey(auto=true)
private String id;
再看结果。
@PrimaryKey(auto=true,pkname="sd_custom_unit")
private String id;
改为:
@PrimaryKey(auto=true)
private String id;
再看结果。
2 楼
huangjia7
2014-09-11
huangjia7 写道
/** 主健 */
@PrimaryKey(auto=true,pkname="sd_custom_unit")
private String id;
为什么id的值没有被设置上,已经从ORACLE中取出序列的值了。
还还报错如下:
数据库操作出错:未指定绑定变量的值:id
@PrimaryKey(auto=true,pkname="sd_custom_unit")
private String id;
为什么id的值没有被设置上,已经从ORACLE中取出序列的值了。
还还报错如下:
数据库操作出错:未指定绑定变量的值:id
且数据库执行了打印序列的语句,但实际seq没有没有变化:
[2014-09-11 09:57:45][DEBUG][com.frameworkset.common.poolman.PreparedDBUtil] Execute JDBC prepared query statement:select SEQ_SD_CUSTOM_UNIT.nextval from dual
[2014-09-11 09:57:45][ERROR][com.bestride.pms.sd.service.CustomUnitService] 数据库操作出错:未指定绑定变量的值:id
1 楼
huangjia7
2014-09-11
/** 主健 */
@PrimaryKey(auto=true,pkname="sd_custom_unit")
private String id;
为什么id的值没有被设置上,已经从ORACLE中取出序列的值了。
还还报错如下:
数据库操作出错:未指定绑定变量的值:id
@PrimaryKey(auto=true,pkname="sd_custom_unit")
private String id;
为什么id的值没有被设置上,已经从ORACLE中取出序列的值了。
还还报错如下:
数据库操作出错:未指定绑定变量的值:id
发表评论
-
bboss 持久层数据源引用外部属性配置介绍
2018-12-29 21:47 1099bboss 持久层数据源外部属性配置引用介绍 bboss持久 ... -
bboss持久层开启和关闭自带主键机制
2017-08-17 11:56 755bboss持久层开启和关闭自带主键机制 请访问文档: bbos ... -
bboss高性能db批处理功能使用方法介绍
2017-05-14 21:28 2147bboss持久层在v5.0.3.5中新增简单的高效的db批处理 ... -
bboss持久层公共sql片段定义和引用方法说明
2017-03-03 13:05 1130bboss持久层公共sql片段定义和引用方法说明 在配置sq ... -
最新版本mysql jdbc驱动包获取表定义信息空指针异常处理方法
2016-12-15 10:24 1366在使用最新的mysql-connector-java 6.0. ... -
持久层快速入门系列一
2016-08-19 13:00 1266持久层快速入门 先在应用中导入bboss 持久层(bboss ... -
bboss与spring中配置和引用bboss数据源和bboss dao组件方法说明
2016-08-10 16:04 921首先在项目中导入bboss 持久层包: maven坐标 & ... -
bboss 持久层sql xml配置文件编写和加载方法介绍
2016-04-05 13:14 1699bboss 持久层sql xml配置文件编写和加载方法介绍 通 ... -
bboss持久层设置数据库查询fetchsize参数方法
2015-11-06 11:54 1018bboss持久层设置数据库查询fetchsize参数方法 j ... -
bboss持久层快速入门教程
2015-09-19 13:49 1594bboss持久层快速入门教程,快速搭建bboss持久层的开 ... -
bboss持久层数据库适配器编写和注册方法
2015-02-06 15:21 978bboss持久层数据库适配器编写和注册方法 bboss持久层默 ... -
bboss模糊查询、动态sql、批处理资料荟萃
2015-01-30 12:03 2375bboss模糊查询、动态sql、批处理资料荟萃 bboss持 ... -
bboss持久层查询元数据缓存机制开启方法
2014-11-18 12:03 1024bboss持久层为了提升数据库查询操作性能,提供了对查 ... -
bboss内置数据源apache dbcp与druid数据源切换方法
2014-09-23 09:59 1391bboss内置数据源与druid数据源切换方法 bboss内置 ... -
bboss持久层多数据源配置及多数据库事务控制使用方法
2014-05-11 20:24 2980bboss持久层多数据源配置及使用方法,持久层框架及demo下 ... -
bboss持久层demo使用说明
2014-03-11 09:38 1218持久层案例可以用svn客户端下载eclipse工程,导入ecl ... -
bboss持久层More分页查询API使用介绍
2013-10-18 16:17 1486为了更好地提高数据库分页查询的效率,bboss持久层在Conf ... -
bboss持久层操作Clob和Blob字段示例
2013-09-09 13:29 1232bboss持久层操作Clob和Blob非常方便,基于bboss ... -
bboss持久层ormaping机制详解
2013-09-04 21:04 1161bboss持久层针对db操作即提供了原始sql语句的支持,又提 ... -
bboss持久层改进支持模块sql配置文件引用其它模块sql配置文件中sql语句
2013-09-01 22:23 935bboss持久层改进支持模块sql配置文件引用其它模块sql配 ...
相关推荐
BBoss Persistent是一个轻量级的持久层框架,它提供了方便的方式来处理这些大字段。本文将深入探讨在BBoss Persistent 1.0.2中如何高效地管理CLOB和BLOB数据。 首先,CLOB用于存储大量的文本数据,如长篇文章或XML...
在“bboss mvc开发手册.doc”中,我们可能会找到关于如何使用BBoss MVCDemo进行开发的详细指南。 首先,让我们深入了解BBoss MVCDemo的核心特性: 1. **模型(Model)**:BBoss MVCDemo支持多种数据访问方式,如JDBC...
该工具是一款基于bboss...此工具能够自动生成bboss MVC、IOC、持久化、JSP、i18n、SQL配置文件、Web服务、Hessian服务等相关源代码,适用于快速开发和项目迭代。详细文档请参考:http://yin-bp.iteye.com/blog/2256948
2. **数据库操作**:BBoss提供了便捷的数据访问层(DAO),支持SQL动态生成、事务管理以及多种数据库的兼容性,使得数据库操作变得简单且高效。 3. **服务治理**:框架内置了服务注册与发现机制,可以实现微服务...
3. `bboss-util-5.5.0.jar`和`bboss-persistent-5.5.0.jar`:这是BBoss框架的核心组件,提供了许多实用工具类和持久化操作支持,如数据库连接、事务管理等,为Elasticsearch的数据导入提供底层支持。 4. `...
安全性方面,bboss会话共享通过在客户端基于cookie机制存储sessionid,并设置cookie的HttpOnly属性来防止XSS攻击窃取sessionid,通过设置Secure属性并在HTTPS环境下传输来防止sessionid被窃取。同时,还提供会话信息...
本实例是一个基于bboss es spring boot starter的demo maven工程,可供spring boot项目集成bboss elasticsearch rest client参考 展示了通过spring boot管理单集群功能和管理多集群功能 单集群测试用例:...
接下来,`bboss平台代码生成工具使用教程.wmv`可能涵盖了如何利用bboss的代码生成器提高开发效率。这个工具可以帮助开发者自动生成常见的CRUD操作,减少手动编写重复代码的时间。使用步骤可能包括: 1. **配置数据...
"说明.txt" 文件可能包含了关于这些教程的详细步骤和注意事项,务必仔细阅读。 总结来说,本教程旨在帮助开发者快速理解和掌握使用 BBoss 框架进行 Elasticsearch 开发的基本流程和技巧。通过提供的视频教程和源码...
springboot集成ElasticsearchBboss调用Elasticsearch的案例分享
**bboss-datatran** 是一个由 **bboss** 社区开源的高效数据处理工具,专注于数据采集、数据清洗转换以及数据入库等任务。它实现了流批一体化的数据处理能力,使得用户能够灵活地应对实时和批量的数据处理场景。在...
**bboss+es基本操作示例** 在Java开发中,Elasticsearch(ES)作为一种流行的分布式搜索引擎和数据分析工具,常用于大数据处理和实时分析。bboss(Business Basic Operation Support)框架则是针对Elasticsearch...
6. **会话超时与退出**:为了防止会话固定攻击,BBoss框架会设置会话超时机制。此外,用户可以通过点击退出按钮来清除会话,此时`SYSAuthenticateFilter`会确保所有相关的认证信息从会话中移除。 通过阅读`...
【bboss-db-elasticsearch-tool-master_java_】是一个Java ORM(对象关系映射)框架,它在功能上超越了MyBatis,提供了对多种数据库的广泛支持,包括MySQL、Oracle、PostgreSQL、SQLServer、DB2、DM以及MongoDB。...
官方版本,亲测可用
自动代码生成器是针对bboss框架和bboss开发平台的自动代码生成工具,可以根据模板,自动生成给定表的增,删,改,分页查询,列表查询,国际化功能对应的程序和配置文件: 1.mvc控制器 2.业务组件 3.实体类 4.jsp文件...
BBoss是一个轻量级的企业级应用开发框架,提供了IOC(Inversion of Control)功能,使得对象之间的依赖关系可以通过配置文件进行管理。本文将详细介绍如何在BBoss的IOC配置文件中引用外部属性文件,以便更好地管理和...
Elasticsearch rest client bboss介绍-Elastic2018中国开发者大会演讲稿