我用JAVA连接ORACLE数据库,但是出现问题了,提示:
Exception in thread "main" java.lang.NoClassDefFoundError: JDBCConn
我的源程序如下:
import java.sql.*;public class JDBCConn
{
private static String url="";
private static String username="";
private static String password="";
private Connection conn()
{
try
{
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection con=DriverManager.getConnection(url,username,password);
return con;
}
catch(ClassNotFoundException cnf)
{
System.out.println("driver not find:"+cnf);
return null;
}
catch(SQLException sqle)
{
System.out.println("can't connection db:"+sqle);
return null;
}
catch(Exception e)
{
System.out.println("failed to load JDBC driver.");
return null;
}
} public void query(Connection con,String sql)
{
try
{
if(con==null)throw new Exception("datebase connection can't use!");
if(sql==null)throw new Exception("check your parameter:'sql'! don't input null!");
Statement stmt =con.createStatement();
ResultSet rs=stmt.executeQuery(sql);
ResultSetMetaData rmeta=rs.getMetaData();
int numColumns=rmeta.getColumnCount();
while(rs.next())
{
for(int i=0;i<numColumns;i++)
{
String sTemp=rs.getString(i+1);
System.out.println(sTemp+"");
}
System.out.println("");
}
}
catch(Exception e)
{
System.out.println("query error:"+e);
}
}
public void execute(Connection con,String sql)
{
try
{
if(con==null)return;
Statement stmt =con.createStatement();
stmt.executeUpdate(sql);
}
catch(Exception e)
{
System.out.println("execute error:sql="+sql);
System.out.println(e);
}
} public void demo()
{
try
{
JDBCConn oc=new JDBCConn();
Connection conn=oc.conn();
String sql="insert into TBL_USER(id,name,password) values (seq_user.nextval,'switch','haorenpingan')";
oc.execute(conn,sql);
sql="select * from TBL_USER";
oc.query(conn,sql);
conn.close();
}
catch(SQLException se)
{
System.out.println(se);
}
catch(Exception e)
{
System.out.println(e);
}
}
public static void main(String[] arg)
{
if(arg.length!=3)
{
System.out.println("use :java JDBCConn url username password");
return;
}
JDBCConn oc=new JDBCConn();
oc.url=arg[0];
oc.username=arg[1];
oc.password=arg[2];
oc.demo();
}
}在运行时我输入:
java JDBCConn jdbc:oracle:thin:@127.0.0.1:1521:MISDB scott tiger
得到刚才的提示的,还想请问下,我的JDBC驱动就是oracle10g安装程序下的...\OraHome_1\jdbc\lib\classes12.zip 环境变量classpath是在命令行窗口用set设置的(不知道为什么,直接在我的电脑—>属性->高级->环境变量里面不能设置),这个没问题吧?我在网上找到的这个例子:
import java.sql.*;
public class tt
{
public static void main(String[] args)
{
try
{
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:MISDB",
"scott","tiger");
Statement stmt=conn.createStatement();
ResultSet rs=stmt.executeQuery("select * from emp");
while(rs.next())
{
//int i=rs.getInt("id");
//System.out.println (i);
//System.out.println (rs.getString("userid"));
System.out.println (rs.getString(2));
}
conn.close();
}
catch (Exception ex)
{
}
}
}
运行后的结果和我的程序结果一样,都是出现:
Exception in thread "main" java.lang.NoClassDefFoundError: classname
我是新手,请各位高手在解答问题时详细点(包括我说的环境变量设置的这个小问题),不甚感激!
在线等,谢谢!
Exception in thread "main" java.lang.NoClassDefFoundError: JDBCConn
我的源程序如下:
import java.sql.*;public class JDBCConn
{
private static String url="";
private static String username="";
private static String password="";
private Connection conn()
{
try
{
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection con=DriverManager.getConnection(url,username,password);
return con;
}
catch(ClassNotFoundException cnf)
{
System.out.println("driver not find:"+cnf);
return null;
}
catch(SQLException sqle)
{
System.out.println("can't connection db:"+sqle);
return null;
}
catch(Exception e)
{
System.out.println("failed to load JDBC driver.");
return null;
}
} public void query(Connection con,String sql)
{
try
{
if(con==null)throw new Exception("datebase connection can't use!");
if(sql==null)throw new Exception("check your parameter:'sql'! don't input null!");
Statement stmt =con.createStatement();
ResultSet rs=stmt.executeQuery(sql);
ResultSetMetaData rmeta=rs.getMetaData();
int numColumns=rmeta.getColumnCount();
while(rs.next())
{
for(int i=0;i<numColumns;i++)
{
String sTemp=rs.getString(i+1);
System.out.println(sTemp+"");
}
System.out.println("");
}
}
catch(Exception e)
{
System.out.println("query error:"+e);
}
}
public void execute(Connection con,String sql)
{
try
{
if(con==null)return;
Statement stmt =con.createStatement();
stmt.executeUpdate(sql);
}
catch(Exception e)
{
System.out.println("execute error:sql="+sql);
System.out.println(e);
}
} public void demo()
{
try
{
JDBCConn oc=new JDBCConn();
Connection conn=oc.conn();
String sql="insert into TBL_USER(id,name,password) values (seq_user.nextval,'switch','haorenpingan')";
oc.execute(conn,sql);
sql="select * from TBL_USER";
oc.query(conn,sql);
conn.close();
}
catch(SQLException se)
{
System.out.println(se);
}
catch(Exception e)
{
System.out.println(e);
}
}
public static void main(String[] arg)
{
if(arg.length!=3)
{
System.out.println("use :java JDBCConn url username password");
return;
}
JDBCConn oc=new JDBCConn();
oc.url=arg[0];
oc.username=arg[1];
oc.password=arg[2];
oc.demo();
}
}在运行时我输入:
java JDBCConn jdbc:oracle:thin:@127.0.0.1:1521:MISDB scott tiger
得到刚才的提示的,还想请问下,我的JDBC驱动就是oracle10g安装程序下的...\OraHome_1\jdbc\lib\classes12.zip 环境变量classpath是在命令行窗口用set设置的(不知道为什么,直接在我的电脑—>属性->高级->环境变量里面不能设置),这个没问题吧?我在网上找到的这个例子:
import java.sql.*;
public class tt
{
public static void main(String[] args)
{
try
{
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:MISDB",
"scott","tiger");
Statement stmt=conn.createStatement();
ResultSet rs=stmt.executeQuery("select * from emp");
while(rs.next())
{
//int i=rs.getInt("id");
//System.out.println (i);
//System.out.println (rs.getString("userid"));
System.out.println (rs.getString(2));
}
conn.close();
}
catch (Exception ex)
{
}
}
}
运行后的结果和我的程序结果一样,都是出现:
Exception in thread "main" java.lang.NoClassDefFoundError: classname
我是新手,请各位高手在解答问题时详细点(包括我说的环境变量设置的这个小问题),不甚感激!
在线等,谢谢!
我个人觉得有可能是没找到驱动,可是不知道到底该怎么弄,有人知道吗?谢谢
query error:java.lang.Exception: datebase connection can't use!
java.lang.NullPointerException
设置了以后就是:Exception in thread "main" java.lang.NoClassDefFoundError: JDBCConn
用楼上的办法了,还是不行。
http://www.jguru.com/faq/view.jsp?EID=455768,
有事Google查询,都会有相关解决办法的.
代表你的java编译没有找到目标类,编译的时候命令行切换到JDBCConn所在目录再编译。
另外需要说的是oracle驱动(classes12.jar)可以拷到JAVA_HOME/jre/lib/ext下再编译你的程序。