获取数据库连接-bboss persistent

简介:   bboss persistent下载地址 https://sourceforge.net/project/showfiles.php?group_id=238653&package_id=302766&release_id=647144 获取数据库连接-bboss persistentbboss persistent获取数据链接的两种方式1.

 

bboss persistent下载地址

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


获取数据库连接-bboss persistent
bboss persistent获取数据链接的两种方式
1.从缺省数据库连接池中获取数据库连接:
   
        java.sql.Connection connection = DBUtil.getConection();
        poolman中缺省的数据库连接池就是在poolman.xml文件中配置的第一个连接池
   
2.从指定的数据库连接池中获取数据库连接
   
        java.sql.Connection connection = DBUtil.getConection(dbname);
        dbname为poolman.xml中<dbname></dbname>节点中间指定的数据库连接池的名称,例如:
        <dbname>bspf</dbname>

 

3.获取数据库连接的事务性


通过上述两种方式获取到的connection根据不同的环境具有不同特点,主要有两种环境,一种是事务环境,另一种是无事务环境,分别描述如下:
事务环境是指在数据库操作执行的上下文中使用TransactionManager组件开启了一个事务的环境。
如果在事务环境下获取connection,那么connection的事务将与上下文中的事务结合在一起,也就是说connection的事务随着上下文环境事务的提交而提交,也随着上下文事务的回滚而回滚,而且connection的回滚也会导致整个上下文事务的回滚。同时connection的setAutocommit方法和close方法将不会影响上下文事务,就是说不会起作用。
在事务环境下获取数据库链接后,不需显示关闭connection,也不需要显示commit,但是需要显示rollback,事务的提交和链接的关闭由外部事务自动关闭和提交。
在没有事务的环境下获取connection时,connection具有原始的jdbc connection的所有特性和方法,这里就不多说了。

 

4 .直接使用数据库连接需要注意的地方

 

数据库连接池有效地管理着一组高度重用的数据库连接,如果通过持久层框架提供的组件(DBUtil,PreparedDBUtil,CallableDBUtil)操作数据库时,数据库连接的使用和管理由这些组件自动管理,无需应用程序去处理;但是如果程序员如果直接从数据库连接池中获取连接使用的话,那就一定要确保连接使用完毕后关闭该链接,释放操作过程中使用的所有资源,操作的一般标准模式为:

                Connection con = null;
                Statement stmt = null;
                ResultSet rs = null;
                try {
                       
                        con = DBUtil.getConection();
                        //use the con varable。
                        stmt = con.create Statement;
                        rs = stmt.execute some sql ;
                         
                       
                } catch (SQLException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                }
                finally
                {
                        if(rs != null)
                        {
                                try {
                                        rs.close();
                                } catch (SQLException e) {
                                        // TODO Auto-generated catch block
                                        e.printStackTrace();
                                }
                        }
                        if(stmt != null)
                        {
                                try {
                                        stmt.close();
                                } catch (SQLException e) {
                                        // TODO Auto-generated catch block
                                        e.printStackTrace();
                                }
                        }
                        if(con != null)
                        {
                                try {
                                        con.close();
                                } catch (SQLException e) {
                                        // TODO Auto-generated catch block
                                        e.printStackTrace();
                                }
                        }
                }

 

 

目录
相关文章
|
关系型数据库 MySQL Java
Could not open Hibernate Session for transaction; nested exception is org.hibernate.TransactionExcep linux下mysql修改连接超时wait_timeout修改后就ok了
Could not open Hibernate Session for transaction; nested exception is org.hibernate.TransactionExcep linux下mysql修改连接超时wait_timeout修改后就ok了
197 1
bboss session listener实现和配置方法
bboss session listener类似于servlet规范中的session listener接口,本文介绍bboss session listener实现和配置方法 bboss session listener接口: package org.
897 0
bboss session介绍
本文将主要探讨集群环境session管理模式,bboss session架构及特点以及bboss session的运用。让大家对bboss session有更加深入地了解。
1769 0
|
人工智能 测试技术 数据格式
bboss-persistent结合bboss-aop实现注解事务
bboss-persistent结合bboss-aop也可以实现注解事务哦. 先看一个业务组件: package org.frameworkset.spi.transaction.annotation; import java.
629 0
|
SQL 数据库 Java
bboss persistent 实现数据库更新操作
4.5 更新操作代码段    4.5.1预编译更新操作        PreparedDBUtil preDBUtil = new PreparedDBUtil();        int pk = 0;        String sqlstr = "update OFFICE_...
589 0
|
SQL 关系型数据库 MySQL
关于bboss persistent主键生成机制的说明
4.14 主键的生成 bboss主键生成有两种模式,一种模式是在对象主键属性上加@PrimaryKey(uuid主键)或者@PrimaryKey(auto=true,pkname="xxxx")(pkname对应tableinfo中的TABLE_NAME子字段的值),另外一种模式就是通过DBUtil.getNextPrimaryKey方法再程序中获取(前提是表的主键信息需要配置到tableinfo中,可以支持uuid和oracle的sequence,以及mysql的自定义sequence)。
1044 0
|
数据库 Go
bboss persistent事务管理介绍 (五)
l       带返回值的模板方法使用实例   Object ret = TemplateDBUtil.executeTemplate(               new JDBCValueTemplate(){                   /**        ...
643 0
|
数据库
bboss persistent事务管理介绍 (四)
l       不带返回值的模板方法使用实例   TemplateDBUtil.executeTemplate(               new JDBCTemplate(){                   /**                    * 整个e...
649 0
|
数据库
bboss persistent事务管理介绍 (三)
2.事务挂起处理-【开始】>【挂起】>【恢复】>【提交】>【回滚】               TransactionManager tm = new TransactionManager();               try {            //开始事务,在...
656 0
bboss persistent事务管理介绍 (九)
      事务控制规则 根据实际情况事务控制规则划分为: 1.         不带参数方法   说明:指定需要控制事务的方法为testTXInvoke,这里没有声明事务类型,默认的事务类型为REQUIRED_TRANSACTION      在这种规则下一旦方法执行时向外抛出异常,则会导致事务回滚,如果方法正常结束则事务提交。
748 0