有个java web作业,要求数据库用sqlite。 我用sqliteDev工具创建了一个数据库叫 helloword.db; 在E盘根目录下。 现在我要在tomcat下配置数据源,驱动我已经下载完了,但是不知道怎么正确的配置。 我尝试过这样配置(是错误的):<Resource name="jdbc/mySqlite"
          auth="Container"
  type="javax.sql.DataSource"
  username=""
  password=""
  driverClassName="org.sqlite.JDBC"
  url="jdbc:sqlite:E:\helloword.db;"
  maxActive="2"   
  maxIdle="1"    
  maxWait="5000"
/> 散分请教高手,帮我改正这个错误,先谢谢了。

解决方案 »

  1.   

    sqlite 嵌入式数据库
    配置的方法有很多,能不能阐明你的需求。在tomcat下配置数据源。是不是可以理解为数据源随着tomcat启动时加载?
      

  2.   

    废话不多说,上代码,首先我们来排除是不是因为驱动不对,而导致的问题public static Connection getConnect() {
    Connection conn = null;
    try {
    Class.forName("org.sqlite.JDBC");
     conn = DriverManager
    .getConnection("jdbc:sqlite:test.db");
     conn.setAutoCommit(false);
    return conn;
    } catch (ClassNotFoundException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    return null;
    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    return null;
    }
    }
    }你看看能不能获取到连接尝试建立表
    public void test() {
    Connection conn = sqliteFactory.getConnect();
    try {
    Statement statement = conn.createStatement();
    String sql = "create table xingnengtest (aa varchar(20),bb varchar(20),cc varchar(20),dd varchar(20),ee varchar(20),ff varchar(20),gg varchar(20),hh number(20),ii number(20), jj number(20))";
    statement.executeUpdate(sql);
    System.out.println("建表hehe成功!");
    conn.commit();
    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }
      

  3.   

    如果上述操作可以执行,不报错。你命令行,查询是否存在该表。如果建表成功。那我们下面讲配置信息写在xml配置文件中
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <!-- the proxool configuration can be embedded within your own application's.
    Anything outside the "proxool" tag is ignored. -->
    <something-else-entirely>
     <proxool>
        <alias>0</alias>
        <driver-url>jdbc:sqlite:test.db</driver-url> ### test.db 注意路径
        <driver-class>org.sqlite.JDBC</driver-class>
        <minimum-connection-count>2</minimum-connection-count>  ####最小连接数
        <maximum-connection-count>10</maximum-connection-count> ####最大连接数
        <test-before-use>true</test-before-use>
        <house-keeping-test-sql>select now()</house-keeping-test-sql>
      </proxool> 
    </something-else-entirely>
    然后我们在web.xml中加载连接池<servlet>
    <servlet-name>ServletConfigurator</servlet-name>
    <servlet-class>org.logicalcobwebs.proxool.configuration.ServletConfigurator</servlet-class>
    <init-param>
    <param-name>xmlFile</param-name>
    <param-value>WEB-INF/proxool.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet>
    <servlet-name>Admin</servlet-name>
    <servlet-class>org.logicalcobwebs.proxool.admin.servlet.AdminServlet</servlet-class>
    </servlet>
    <servlet-mapping>
    <servlet-name>Admin</servlet-name>
    <url-pattern>/admin</url-pattern>
    </servlet-mapping>
      

  4.   

    我给一段你我用过的正确配置的数据源供你参考:<Context path="/MySQLDeptDemo" docBase="MySQLDeptDemo" reloadable="true">
    <Resource name="jdbc/mysql" auth="Container" 
    type="javax.sql.DataSource"
    maxActive="100" 
    maxIdle="30" 
    maxWait="10000"
    username="root" 
    password="mysqladmin" 
    driverClassName="org.gjt.mm.mysql.Driver"
    url="jdbc:mysql://localhost:3306/mldn"/></Context>
    我用的是mysql 你把这一段直接拷贝到tomcat下的conf/service.xml的</HOST>上面就可以用了,你记得要改一下驱动和密码
      

  5.   

    context.xml配置
    <Resource name="jdbc/mySqlite"
                  auth="Container"
                  type="javax.sql.DataSource"
                  username=""
                  password=""
                  driverClassName="org.sqlite.JDBC"
                  url="jdbc:sqlite:E:\helloword.db;"
                  maxActive="2"   
                  maxIdle="1"    
                  maxWait="5000" />
    web.xml配置
    <resuorce-ref>
      <res-ref-name>jdbc/mySqlite</res-ref-name>
      <res-type>javax.sql.DataSource</res-type>
      <res-auth>Container</res-auth>
    </resource-ref>
    能加载到驱动那就没问题了,最好是把你报的错误帖上来