文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>tomcat配置hsqldb数据源

tomcat配置hsqldb数据源

时间:2010-04-06  来源:qbq

目录结构

E:\Projects\Java\TestHsql.
├─src
│  └─com
│      └─qbq
│              DBUtil.java
│              PathServlet.java
│             
└─WebRoot
    ├─index.jsp
    │ 
    ├─META-INF
    │      MANIFEST.MF
    │     
    └─WEB-INF
        ├─lib.lck
        ├─lib.log
        ├─lib.properties
        ├─lib.script
        ├─web.xml
        │             
        └─lib
                commons-dbcp.jar
                commons-pool.jar
                hsqldb.jar
               

 

<Context path="/testhsql" docBase="E:/Projects/Java/TestHsql/WebRoot" debug="0" reloadable="true">
            <Resource name="jdbc/hsql" auth="Container" type="javax.sql.DataSource" factory="org.apache.commons.dbcp.BasicDataSourceFactory"
                                driverClassName="org.hsqldb.jdbcDriver" url="jdbc:hsqldb:hsql://localhost:8086/test"
                                username="sa" password="123" initialSize="5" maxActive="5" maxIdle="5" maxWait="10000"
                                removeAbandoned="true" logAbandoned="false" removeAbandonedTimeout="3000" poolPreparedStatements="true"/>
        </Context>

原来的web项目是HTServer。context节点没有内容。然后如上,我添加一段Resource ,内容很简单,也如上。 name 是命名。 auth 和 type ,factory都是 固定写法。 当然 若是要改进的话,可以换成自己喜欢的 数据源类。   我这里记得需要把 dbcp 数据源jar包拷贝到 tomat6 的lib 里面。

driverClassName 是 hsqldb的 driver类 名字。 url 是 hsqldb 服务器模式的写法。 这个随自己喜欢。 用户密码。

然后 initialSize 以及之后的所有参数。   

然后添加 hsqldb 的jar包 到 tomcat6.0 的 lib下面。 启动tomcat 。 HTServer 项目里面就可以通过

Context ctx = new InitialContext();

String jndi_name="java:comp/env/jdbc/htlogdb";

DataSource ds = (DataSource)ctx.lookup(jndi_name); 就可以获取到了。

    配合:http://blog.chinaunix.net/u1/55983/showart.php?id=2208597 使用,效果更好.        

package com.qbq;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;

public class DBUtil {
    public void query() throws SQLException, NamingException {
        Connection conn = null;
        Statement stmt = null;

        try {
            Context ctx = new InitialContext();
            String jndi_name = "java:comp/env/jdbc/hsql";
            DataSource ds = (DataSource) ctx.lookup(jndi_name);
            conn = ds.getConnection();
            stmt = conn.createStatement();

            /*
             * stmt.execute("create table test (name varchar)");
             * stmt.execute("insert into test values('a')");
             * stmt.execute("insert into test values('b')");
             * stmt.execute("insert into test values('c')");
             * stmt.execute("insert into test values('d')");
             */

            ResultSet rs = stmt.executeQuery("SELECT * FROM test");

            while (rs.next()) {

                System.out.println(rs.getObject(1));

            }

            ResultSetMetaData rsmd = rs.getMetaData();
            int count = rsmd.getColumnCount();
            for (int i = 1; i <= count; i++) {
                System.out.println(rsmd.getColumnTypeName(i));
                System.out.println(rsmd.getColumnName(i));
            }
        } catch (SQLException e) {
            throw e;
        } catch (NamingException e) {
            throw e;
        } finally {
            if (stmt != null) {
                stmt.close();
            }
            if (conn != null) {
                conn.close();
            }
        }
    }
}



相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载