java中同一个包内一个类调用另一个类中构造函数的问题

//DBConnect.java内容如下:
package bean;
import java.sql.*;
public class DBConnect{
Connection con=null;
String drivername="com.mysql.jdbc.Driver";
String url="jdbc:mysql://localhost:3306/test";
String username="root";
String password="123456";
public DBConnect(){}
public Connection getConnection(){
try{
Class.forName(drivername);
con=DriverManager.getConnection(url,username,password);
}catch(ClassNotFoundException e){
e.printStackTrace();
}catch(SQLException e){
e.printStackTrace();
}
return con;
}
}
//UserUtil.java内容如下:
package bean;
import java.sql.*;
public class UserUtil{
private Connection con;
public boolean findUser(String username,String password){
con=(new DBConnect()).getConnection();//问题出现的地方,无法找到DBConnet函数
boolean flag=false;
Statement stmt;
ResultSet rs;
String sql="select * from users where username='"+username+"'and password='"+password+"'";
try{
stmt=con.createStatement();
rs=stmt.executeQuery(sql);
if(rs.next())
flag=true;
rs.close();
stmt.close();
con.close();
}catch(Exception e){
e.printStackTrace();
}
return flag;
}
}

//问题如下:UserUtil.java类无法调用DBConnet.java类中的构造函数DBConnect()
附加条件:DBconnect.java与UserUtil.java两个类文件在同一个目录WEB-INF/classes/bean下

第1个回答  2012-08-30
试运行过,在eclipse下正常,在dos下,如楼上说的,要带包名执行,能正常编译:
javac -d . UserUtil.java。(此时,UserUtil.class会在bean文件夹里)

但更难的问题没有解决:java UserUtil 执行时,出错,因为此时程序要加载mysql的驱动jar包,但dos下找不到。。。。网上搜索过,没有找到能在dos下带着conn-mysql-jar运行的例子。如果一定要在dos下运行,等待高手指点吧。建议在eclipse下,加个lib,把驱动jar放到lib下,直接运行得了。
第2个回答  2012-08-29
你需要用javac的带包编译

javac -d . DBConnect.java
javac -d . UserUtil.java

你会发现在目录中多了个bean文件夹,里面有编译好的两个类

d后面的 点 是指生成包的文件目录(. 代表当前目录)追问

那这两个文件应该放在哪个文件夹中,(目录如下:E:\code\7\WEB-INF\classes\bean)是bean文件夹还是classes文件夹?

追答

WEB-INF\classes 是执行环境, 编译好的那两个class文件package为bean, 肯定要放到bean文件夹里!

第3个回答  2012-08-31
new DBConnect() 改成DBConnect试下
相似回答