bboss persistent 1.0.3 发布,功能变更清单见正文

本文涉及的产品
云数据库 RDS SQL Server,独享型 2核4GB
简介: 下载地址: https://sourceforge.net/project/showfiles.php?group_id=238653&package_id=302766&release_id=647144   archive directory:src--source codete...

下载地址:

https://sourceforge.net/project/showfiles.php?group_id=238653&package_id=302766&release_id=647144

 

archive directory:
src--source code
test--test source code
conf--contain database pool config files
listener--database transaction leak listener file
lib--bboss persistent framework depends jars
dist--bboss persistent release package.

update function list:

------------------------------
 1.0.3 - 2009-4-13
------------------------------

 o 单独使用poolman,未建立表tableinfo,后台报SQLException异常
修改程序:
com/frameworkset/common/poolman/management/BaseTableManager.java

 o sql server 2005翻页查询异常问题
原因是sqlserver中需要这样创建statement
Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
但是poolman中是这样获取Statement :stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
因此报下面的错误:
com.microsoft.sqlserver.jdbc.SQLServerException: 不支持此游标类型/并发组
合。

修改方法:
通过适配器方法来获取游标类型:

修改的程序
com\frameworkset\orm\adapter\DB.java
com\frameworkset\orm\adapter\DBMSSQL.java
com\frameworkset\common\poolman\StatementInfo.java
com\frameworkset\common\poolman\DBUtil.java


o 增加获取DataSource的接口
修改的程序:
com\frameworkset\common\poolman\util\SQLUtil.java
增加以下三个方法
获取缺省连接池对应的datasource
public static DataSource getDataSource()
 
获取给定数据库连接池名对应的datasource
 public static DataSource getDataSource(String dbname)
     
通过jndi名称查找数据源
  public static DataSource getDataSourceByJNDI(String jndiname) throws NamingException
     

com/frameworkset/common/poolman/handle/type/CallableStatementResultSet.java
增加以下方法:
public Object getObject(int arg0, Map arg1) throws SQLException


com/frameworkset/common/poolman/util/JDBCPool.java
增加方法:
public static DataSource find(String jndiName) throws NamingException


增加全局变量:
public static Context ctx = null;
 
o 新增bboss jndi 上下文环境
新增jndi上下文环境,解决系统脱离应用服务器单独运行时无法进行jndi绑定的问题。
新增和修改的程序如下:
com/frameworkset/common/poolman/jndi/DummyContext.java(新增)
com/frameworkset/common/poolman/jndi/DummyContextFactory.java(新增)
com/frameworkset/common/poolman/util/JDBCPool.java(修改)

 

o DBUtil执行两个表的联合查询,如果两表的查询字段中包含相同字段名但没有指定这些字段的别名时,查询结果中前面的表字段的值被后面的表字段的值覆盖。例如:
select table_a.id,table_b.id from table_a,table_b;

代码段如下:
DBUtil dbUtil = new DBUtil();
  dbUtil.executeSelect("select table_a.id,table_b.id from table_a,table_b ");
  System.out.println("table_a.id" + dbUtil.getInt(0, 0));
  System.out.println("table_b.id" + dbUtil.getInt(0, 1));

查询的结果显示table_a.id的值变为table_b.id字段的值。

原因分析:

执行本次查询后,结果集元数据为:
[id,id]
可见两个查询字段的列名相同,有没有指定别名字段,由于DBUtil临时存放结果集的数据结构为一个hash表,key为字段名,值为相应字段的值,这样就导致原来的字段的值被前面的字段的值覆盖。
解决办法:
A. 为字段指定不同的别名
B. 修改原来的存储机制,为相同的列名建立不同的别名
建立别名的规则为:列名+#$_+列索引,例如:
将原来的[id,id]转换为[id,id#$_1]


修改的程序清单为:
/common_old_dbcp/src/com/frameworkset/common/poolman/sql/PoolManResultSetMetaData.java
/common_old_dbcp/src/com/frameworkset/common/poolman/ResultMap.java
/common_old_dbcp/src/com/frameworkset/common/poolman/Record.java
/common_old_dbcp/src/com/frameworkset/common/poolman/DBUtil.java

测试脚本:
create table TABLE_A
(
  ID  NUMBER(10),
  ID1 NUMBER(10)
)
/
create table TABLE_b
(
  ID  NUMBER(10),
  ID1 NUMBER(10)
)
/
insert into table_a (id,id1) value(1,11)
/
insert into table_b (id,id1) value(2,22)
/

测试程序:
/common_old_dbcp/test/com/frameworkset/common/TestTwoTablewithSameCol.java
执行查询结果正确。

o  sqlserver中如果数据库表有列的类型是char(1),那么, DBUtil查询这个字段的时候,就报错
出错的原因可能是poolman.xml文件中指定的数据库驱动程序不正确。
<jndiName>hb_datasource_jndiname</jndiName>
<driver>com.microsoft.sqlserver.jdbc.SQLServerDriver</driver>
正确的配法为:
<jndiName>hb_datasource_jndiname</jndiName>
<driver>com.microsoft.jdbc.sqlserver.SQLServerDriver</driver>
现在不明确是否存在com.microsoft. sqlserver.jdbc.SQLServerDriver驱动程序,
估计这个驱动程序是sqlserver 2005版本的驱动程序。
需要修正程序:
/common_old_dbcp/src/com/frameworkset/orm/adapter/DBFactory.java
以便能够正确地找到sql server的适配器(不同数据库的适配器,是通过驱动程序查找的)。修正后,问题解决。

o  改造oracle分页机制
修改程序:
com/frameworkset/orm/adapter/DBOracle.java

 


------------------------------
 1.0.2 - DEC 24, 2008
------------------------------

 o Improved  blob/clob handle perfermence.
 o Fixed maybe memery leaker in handle blob/clob columns.

First version of bboss persitent released.

------------------------------
 1.0.1 - DEC 14, 2008
------------------------------

First version of bboss persitent released.

[http://blog.csdn.net/yin_bp]

相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS&nbsp;SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/sqlserver
目录
相关文章
|
2月前
|
Web App开发 小程序 专有云
mPaaS问题之文档配置flavor后报错如何解决
mPaaS配置是指在mPaaS平台上对移动应用进行的各项设置,以支持应用的定制化和优化运行;本合集将提供mPaaS配置的操作指南和最佳实践,助力开发者高效管理和调整移动应用的设置。
39 2
|
3月前
|
SQL 算法 Java
若依框架---更新删除注意点
若依框架---更新删除注意点
103 0
|
5月前
|
设计模式 Java API
使用Spring框架创建一个RESTful API,实现学生信息的管理,包括资源的创建、读取、更新和删除。
在当今的Web应用程序开发中,RESTful API(Representational State Transferful Application Programming Interface)变得越来越重要。Spring框架提供了强大的工具和功能,以便轻松创建、读取、更新和删除(CRUD)资源。在这篇文章中,我们将深入探讨如何使用Spring框架创建一个RESTful API,并通过一个完整的示例演示。
|
12月前
|
JSON 前端开发 Java
无需额外注解的 SpringBoot API文档生成工具介绍-japidocs
轻松生成api接口文档,使用pandoc导出word接口文档,应用了https://japidocs.agilestudio.cn/的说明
187 0
|
缓存
jira学习案例90-用useQuery缓存列表
jira学习案例90-用useQuery缓存列表
76 0
jira学习案例90-用useQuery缓存列表
|
存储 API
Revit API 修改项目文档中族参数的几个要点
Revit API 修改项目文档中族参数的几个要点
Revit API 修改项目文档中族参数的几个要点
|
Java API 数据安全/隐私保护
SpringBoot高级篇搜索Solr之文档新增与修改使用姿势
大多涉及到数据的处理,无非CURD四种操作,对于搜索SOLR而言,基本操作也可以说就这么几种,在实际应用中,搜索条件的多样性才是重点,我们在进入复杂的搜索之前,先来看一下如何新增和修改文档
366 0
SpringBoot高级篇搜索Solr之文档新增与修改使用姿势
|
消息中间件 Kafka API
Kafka原理解析-旧版本0.8高级Api的Demo和配置信息获取技巧
旧版本高级Api封装: package xxxxxx; import kafka.producer.KeyedMessage; import kafka.producer.ProducerConfig; import java.util.Properties; public class KafkaProducerTest implements Runnable {
534 0
|
缓存 Ruby 前端开发
ODOO 开发异步限制规范【表单类】
ODOO 开发异步限制规范【表单类】 异步类型一:同时操作异步; 描述:两个访问者,同时对一张表单进行编辑。可能出现异步,导致最终存值出错。故此,需要在表单方法中添加检测是否有其他人在操作。 【未来,需要添加此表单正在被 N 人浏览及此表单正在被 partner_id 改写,等前端显示功能】 ODOO 框架支持并发控制,以防止由于同一文档的并发修改而导致数据丢失,即使这不是一个常见的问题(请参见下面的原因)。
1513 0
Fundebug 微信小程序BUG 监控插件更新至 1.3.1,新增 httpTimeout 配置选项,支持监控 HTTP 慢请求
摘要: 1.3.1新增 httpTimeout 配置选项,支持监控 HTTP 慢请求,同时修复了记录的 HTTP 响应时间偏小的 BUG。 Fundebug是专业微信小程序 BUG 监控服务,可以第一时间捕获线上环境中小程序的异常、错误或者 BUG,及时给开发者推送报警,帮助您快速修复 BUG。
1074 0

热门文章

最新文章