`

bboss 持久层框架使用最佳实践-带连接(connection)参数接口和不带连接参数接口的选择

阅读更多

bboss 持久层框架使用最佳实践-带连接(connection)参数接口和不带连接参数接口的选择

bboss项目下载列表 在sourceforge访问地址为:
https://sourceforge.net/project/showfiles.php?group_id=238653

 

bboss 持久层框架提供了两类访问数据库的接口:带connection参数的接口和不带connection参数的接口。这两类接口在各种场合下面都可以使用,实现的功能都是一样的,但是适用的场合还是不一样的,下面分别描述。

 

  1. 带连接connection参数的接口

带连接connection参数的接口在访问数据库时不再向bboss数据库连接池申请连接而直接使用外部参数传入的connection,这样一个connection可以供多个数据库操作使用,适用于数据库操作比较密集的环境,这样能够大大地提升应用程序的性能;如果在这种情况下使用不带connection参数的接口,意味着每次访问数据库都要向bboss连接池申请connection,由于连接池是一种串行化的带并发锁定的组件,频繁的申请和释放将导致严重的系统性能开销,最终导致系统性能缓慢。使用带connection参数的方法时需要确保最后关闭connection,防止连接泄漏。使用的步骤如下:

   a.调用DBUtil.getConnection()或者DBUtil.getConnection(String dbname)方法申请一个数据库连接

   b.访问DBUtil或者PreparedDBUtil或者CallableDBUtil的带connection参数的方法传入刚申请的connection对象进行数据库操作

   c.操作完毕后在finally块中关闭连接

 

这里以预编译操作接口(其他接口都提供了类似功能不一一枚举)为例,举例如下:

 

PreparedDBUtil db = new PreparedDBUtil();
  Connection con = null;
  try {
   con = DBUtil.getConection(); //申请连接
   db.preparedDelete("delete from test");
   db.executePrepared(con);//使用连接
   
   db.preparedInsert("insert into test(id,name) values(?,?)");
   db.setString(1, "1");
   db.setString(2, "name");
   db.executePrepared(con);//使用连接
   
   db.preparedInsert("insert into test(name) values(?)");

   db.setString(1, "name");
   db.executePrepared(con);//使用连接
   
   db.preparedInsert("insert into test(name,clobname,blobname) values(?,?,?)");

   db.setString(1, "name");
   db.setClob(2, "content");
   db.setBlob(3, "content".getBytes());
   db.executePrepared(con);//使用连接
   
   db.preparedSelect("select * from test where name=?");
   //db.setString(1, "1");
   db.setString(1, "name");
   db.executePrepared(con);//使用连接
   
   
   for(int i = 0; i < db.size(); i ++)
   {
    System.out.println(i + " id=" + db.getString(i, "id"));
    System.out.println(i + " name=" + db.getString(i, "name"));
    
   }
   
  } catch (Exception e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  finally
  {
   try {

   if(con != null)
        con.close();//关闭连接
   } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
  }

 

 

 

2.不带连接参数的接口

 

不带connection参数的方法适用于以下场景:

    单一的数据库操作环境

    事务环境中的数据库操作接口

 

下面举例说明:

 

  • 单一的数据库操作

 

PreparedDBUtil db = new PreparedDBUtil();
    try {
     db.preparedDelete("delete from test");
     db.executePrepared();//使用不带连接的方法


} catch (Exception e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }

  • 事务环境下的多次数据库操作

PreparedDBUtil db = new PreparedDBUtil();
  TransactionManager tm = new TransactionManager();
  try {
   tm.begin();
   db.preparedDelete("delete from test");
   db.executePrepared();
   
   db.preparedInsert("insert into test(id,name) values(?,?)");
   db.setString(1, "test1");
   db.setString(2, "name");
   db.executePrepared();
   
   db.preparedInsert("insert into test(name) values(?)");

   db.setString(1, "name auto id");
   db.executePrepared();
   
   db.preparedInsert("insert into test(name,clobname,blobname) values(?,?,?)");

   db.setString(1, "name with clob and blob");
   db.setClob(2, "content");
   db.setBlob(3, "content".getBytes());
   db.executePrepared();
   
   db.preparedSelect("select * from test where name=?");
   //db.setString(1, "1");
   db.setString(1, "name");
   db.executePrepared();
   
   
   for(int i = 0; i < db.size(); i ++)
   {
    System.out.println(i + " id=" + db.getString(i, "id"));
    System.out.println(i + " name=" + db.getString(i, "name"));
    
   }
   tm.commit();
  } catch (Exception e) {
   try {
    tm.rollback();
   } catch (RollbackException e1) {
    // TODO Auto-generated catch block
    e1.printStackTrace();
   }
  }

分享到:
评论

相关推荐

    bboss-db-elasticsearch-tool-master_java_

    【bboss-db-elasticsearch-tool-master_java_】是一个Java ORM(对象关系映射)框架,它在功能上超越了MyBatis,提供了对多种数据库的广泛支持,包括MySQL、Oracle、PostgreSQL、SQLServer、DB2、DM以及MongoDB。...

    bboss elasticsearch-5.7.8.rar

    3. `bboss-util-5.5.0.jar`和`bboss-persistent-5.5.0.jar`:这是BBoss框架的核心组件,提供了许多实用工具类和持久化操作支持,如数据库连接、事务管理等,为Elasticsearch的数据导入提供底层支持。 4. `...

    企业级J2EE开源框架bboss

    BBoss框架的最新版本bbossgroups-bboss-389b83a可能包含了对原有功能的优化、新特性的添加以及bug修复。开发者在使用时,应详细阅读官方文档,了解其具体变更,以便更好地利用这一强大的工具进行企业级应用的开发。 ...

    springboot集成ElasticsearchBboss调用Elasticsearch.md

    springboot集成ElasticsearchBboss调用Elasticsearch的案例分享

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

    1.X,2.X,5.X,6.X,7.x,+ Spring Booter 1.x,2.x,+从源代码构建首先从获取源代码然后转到目录bboss-elastic-tran下的cmd窗口并运行gradle build命令: gradle install从源代码构建指南:如何使用Elasticsearch ...

    bboss mvcdemo 下载地址

    BBoss MVCDemo 是一个基于Java的企业级应用框架,它主要为开发者提供了一种高效、灵活的MVC(Model-View-Controller)开发模式。这个框架的目的是简化企业级Web应用的开发流程,提高开发效率,并且具备良好的可扩展...

    bboss-elasticsearch开发环境搭建和开发入门视频教程.

    5. **配置BBoss**: 根据项目需求,配置 BBoss 的连接参数,如集群地址、端口等。 **四、开发入门** 1. **创建索引**: 使用 BBoss 提供的 API 创建索引,指定映射(Mapping)以便对数据类型进行定义。 2. **插入数据...

    springboot整合bboss es增删改查测试demo代码

    本实例是一个基于bboss es spring boot starter的demo maven工程,可供spring boot项目集成bboss elasticsearch rest client参考 展示了通过spring boot管理单集群功能和管理多集群功能 单集群测试用例:...

    基于Java的bboss开源框架设计源码

    bboss框架集成了AOP/iOC、MVC、持久化标签库、RPC、事件处理、Bean-XML序列化等多种功能。本项目基于bboss框架构建了数据采集ETL工具、流批一体化Stream工具、Elasticsearch客户端工具和WebSession共享框架等应用。

    由 bboss 开源的数据采集&流批一体化工具,提供数据采集、数据清洗转换处理和数据入库以及数据指标统计计算流批一体化处理功能

    **bboss-datatran** 是一个由 **bboss** 社区开源的高效数据处理工具,专注于数据采集、数据清洗转换以及数据入库等任务。...通过深入学习和使用bboss-datatran,用户可以提升数据处理效率,更好地挖掘数据的价值。

    由 bboss 开源的数据采集同步ETL工具,提供数据采集、数据清洗转换处理和数据入库以及数据指标统计计算流批一体化处理功能

    bboss-datatran 由 bboss 开源的数据采集&流批一体化工具,提供数据采集、数据清洗转换处理和数据入库以及数据指标统计计算流批一体化处理功能。 同时也是一个高性能Elasticsearch orm 客户端,100%兼容es各个版本 ...

    bboss ioc配置文件中使用外部属性文件介绍

    当需要使用外部属性文件时,我们可以创建一个独立的`.properties`文件,如`config.properties`,这个文件可以包含应用程序的配置参数,如数据库连接字符串、服务器端口等。 在`config.properties`中,键值对的形式...

    bboss 安全认证过滤器功能介绍

    BBoss安全认证过滤器是Java Web开发中一种用于实现用户身份验证和权限控制的重要组件。在Web应用程序中,过滤器(Filter)是Servlet规范的一部分,它允许开发者在请求到达目标Servlet或JSP之前进行预处理,以及在...

    Bboss国际化实践.ppt

    【Bboss国际化实践】主要涉及了软件系统的全球化适应性改造,以便支持多语言环境。以下是对这个主题的详细解析: 1. **界面元素国际化**: - 界面文字:所有用户可见的文字都需要进行翻译,确保不同语言环境下的...

    bboss会话共享培训文档

    bboss会话共享是一种分布式会话管理技术,它针对在集群环境下应用部署时如何解决会话数据丢失和单点登录问题提供了专门的解决方案。根据提供的文档内容,我们可以详细探讨bboss会话共享涉及的关键知识点。 首先,...

    bboss 插件工程,持久层hibernate/hibernate4插件

    bboss-plugins project.包含kafka、log4j、spring、dubbo、activemq、word转pdf、pdf转swf项目,持久层hibernate/hibernate4插件

    bboss+es基本操作示例.zip

    **bboss+es基本操作示例** ...总之,bboss+es基本操作示例是学习和实践Elasticsearch与Java集成的优秀资源,通过这个示例,开发者可以快速掌握bboss框架下的DSL操作,为实际项目开发打下坚实基础。

    bboss-http.jar

    官方版本,亲测可用

Global site tag (gtag.js) - Google Analytics