有关jndi的单元测试

最近用到tomcat下配置jndi的数据连接池。但对其做单元测试,有个问题

eclipse中的juit,要实现脱离tomcat服务器来配置jndi,这就要在test案例中做jndi单独配置

这里主要用到了DataSource,我们所做的主要是对DataSource 进行自配

我用到的是hsql数据库,下面是相关的取得DataSource的例子(从网上找的一遍比较不错的例子)

    public class Database {
      private DataSource ds;

      public Database() {
        org.hsql.jdbc.jdbcDataSource jds = new org.hsql.jdbc.jdbcDataSource();
        jds.setDatabase("jdbc:hsqldb:.");
        jds.setUser("sa");
        jds.setPassword("");
        ds = jds;
      }

      public boolean execute(String sql) throws Exception {
        Connection conn = ds.getConnection();
        Statement stmt = conn.createStatement();
        Boolean re = stmt.execute(sql);
        stmt.close();
        conn.close();
        return re;
      }
    }

下面是oracle 独立使用数据源的例子
实际应用中,你可以把OracleDataSource注册到JNDI,也可以单独使用。// 初始化数据源实例
OracleDataSource ods = new OracleDataSource();

ods.setDriverType("thin");
ods.setServerName("Chicago");
ods.setNetworkProtocol("tcp");
ods.setDatabaseName("chidb");
ods.setPortNumber(1521);
ods.setUser("guest");
ods.setPassword("guest");

// 从数据源中获取数据库连接
Connection conn = ods.getConnection();
// 通过数据库连接进行数据操作
   ………………

使用OracleDataSource时有几点需要注意:

如果使用的时服务器端内部驱动程序(server-side internal driver),driverType属性会被设置为kprb,其它所有属性失效。
如果使用Thin或OCI驱动程序:
URL中可以包括用户登录名和用户登录密码。例如:
jdbc:oracle:thin:guest/guest@Chicago:1521:chidb;
如果设定了url属性,tnsEntry, driverType, portNumber, networkProtocol, serverName,和databaseName属性将失效。
在没有设定url属性的情况下,如果设定了tnsEntry属性,portNumber, networkProtocol, serverName,和databaseName属性将失效。
如果使用OCI驱动程序,并且networkProtocol属性被设定为ipc,除user和password外的所有其他属性将失效。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值