我的数据库连接文件DB.java不能编译
package com.wxpn.tutorial.db;import java.io.PrintStream;
import java.sql.*;// Referenced classes of package com.wxpn.tutorial.db:
//            ConnectionPoolpublic class DB
{    static String driver = "org.gjt.mm.mysql.Driver";
    static String server = "jdbc:mysql://127.0.0.1/learnjsp?autoReconnect=true&useUnicode=true&characterEnco" +
"ding=UTF-8"
;
    static String dbuser = "root";
    static String dbpassword = "1234567";
    static int minconn = 5;
    static int maxconn = 20;
    static double maxconntime = 0.10000000000000001D;
    static ConnectionPool p = null;    public DB()
    {
    }    public static ConnectionPool getConnPool()
    {
        try
        {
            if(p == null)
            {
                p = new ConnectionPool(driver, server, dbuser, dbpassword, minconn, maxconn, maxconntime);
            }
            return p;
        }
        catch(Exception e)
        {
            e.printStackTrace();
        }
        return null;
    }    public static void main(String args[])
    {
        ConnectionPool connPool = getConnPool();
        Connection conn = connPool.getConnection();
        Statement stmt = null;
        ResultSet rs = null;
        try
        {
            int nextMessageid = 0;
            String relative_path = null;
            String sql = "select * from userinfo";
            stmt = conn.createStatement();
            sql = new String(sql.getBytes("gb2312"), "8859_1");
            for(rs = stmt.executeQuery(sql); rs.next(); System.out.println(rs.getString("UserName"))) { }
        }
        catch(SQLException sqlExc)
        {
            sqlExc.printStackTrace();
        }
        catch(Exception e)
        {
            e.printStackTrace();
        }
        finally
        {
            try
            {
                if(rs != null)
                {
                    rs.close();
                }
                if(stmt != null)
                {
                    stmt.close();
                }
                connPool.freeConnection(conn);
                System.out.println("free connection!");
            }
            catch(SQLException sqlExc)
            {
                sqlExc.printStackTrace();
            }
        }
        return;
    }}
老是报错说
D:\java>javac DB.java
DB.java:21: cannot resolve symbol
symbol  : class ConnectionPool
location: class com.wxpn.tutorial.db.DB
    static ConnectionPool p = null;
           ^
DB.java:27: cannot resolve symbol
symbol  : class ConnectionPool
location: class com.wxpn.tutorial.db.DB
    public static ConnectionPool getConnPool()
                  ^
DB.java:33: cannot resolve symbol
symbol  : class ConnectionPool
location: class com.wxpn.tutorial.db.DB
                p = new ConnectionPool(driver, server, dbuser, dbpassword, minco
nn, maxconn, maxconntime);
                        ^
DB.java:46: cannot resolve symbol
symbol  : class ConnectionPool
location: class com.wxpn.tutorial.db.DB
        ConnectionPool connPool = getConnPool();
        ^
4 errors

解决方案 »

  1.   

    package com.wxpn.tutorial.db里面有三个文件ConnectionPool.class DB.class DBConnect.class
     但是我是把DB.class 拿出来单独用命令提示符编译的
      

  2.   

    用*。java 去编译,因为如果你单独编译DB.java,但是他依赖其他两个类,势必造成错误~
      

  3.   

    你需要 import ConnectionPool 这个类
      

  4.   

    DB类的定义中要用到ConnectionPool类,所以你首先应该把它编译了,再来编译DB类
    不过你可以用3楼的方法编译,你就不用考虑那个类先编译,那个类后编译了
      

  5.   

    用开发工具比如eclipse,idea把工程整个编译一遍试一下。
      

  6.   

    你说的那三个类如果在一个包下面,就不用import进去
      

  7.   

    在没有成为骨灰级的高手之前,不要使用比如editplus或者jcreator之类的单独编译的开发工具,那样会疯的,整个打消你学习的积极性。用好的开发工具快速的整出几个可运行的例子,你会很有成就感,学习也会事半功倍。
      

  8.   

    告诉我你编译时候的目录结构是什么样的
    不要在com.wxpn.tutorial这个目录下编译
    假设你把com.wxpn.tutorial放在D盘下
    进入命令提示符d:\ javac com.wxpn.tutorial.db.java
    这样编译就对了
    如果你在com.wxpn.tutorial这个目录下编译,就会放生你上面的错误。
    因为ConnectionPool也是在这个包里,java认为com.wxpn.tutorial还有个com.wxpn.tutorial包,当然找不到
    ConnectionPool了。
      

  9.   

    如果程序前有package xxxx.xxxx;
    应该这样编译:javac -d . *.java
      

  10.   

    javaer更应该学会命令行手工编译,那是最基础的对于理解java,否则离开IDE都不会手工编译java
      

  11.   

    对不起上面写错了,晕,写快了
    是这样的
    不要在com.wxpn.tutorial这个目录下编译
    假设你把com.wxpn.tutorial放在D盘下
    进入命令提示符d:\ javac com\wxpn\tutorial\db.java
    这样编译就对了
    如果你在com.wxpn.tutorial这个目录下编译,就会放生你上面的错误。
    因为ConnectionPool也是在这个包里,java认为com.wxpn.tutorial还有个com.wxpn.tutorial包,当然找不到
    ConnectionPool了。
      

  12.   

    DB.class 已经都是编译好的文件了,你还想编译?你的意思是不是要执行?
    那样的话把ConnectionPool.class DBConnect.class放在classpath里