Chinaunix首页 | 论坛 | 博客
  • 博客访问: 30464998
  • 博文数量: 708
  • 博客积分: 12163
  • 博客等级: 上将
  • 技术积分: 8240
  • 用 户 组: 普通用户
  • 注册时间: 2007-12-04 20:59
文章分类

全部博文(708)

分类: Java

2010-04-06 09:37:08

目录结构

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); 就可以获取到了。

 
 
 
 
 
 

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();
            }
        }
    }
}



阅读(2505) | 评论(0) | 转发(0) |
0

上一篇:hsqldb随tomcat启动

下一篇:P6spy属性文件

给主人留下些什么吧!~~