我的数据库连接文件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
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
但是我是把DB.class 拿出来单独用命令提示符编译的
不过你可以用3楼的方法编译,你就不用考虑那个类先编译,那个类后编译了
不要在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了。
应该这样编译:javac -d . *.java
是这样的
不要在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了。
那样的话把ConnectionPool.class DBConnect.class放在classpath里