用JAVA连接ORACLE数据库的问题
我用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设置的(不知道为什么,直接在我的电脑—> 属性-> 高级-> 环境变量里面不能设置),这个没问题吧?
我是新手,请各位高手在解答问题时详细点(包括我说的环境变量设置的这个小问题),不甚感激!
[解决办法]
oracle的驱动包没有找到吧
[解决办法]
classes12.zip没有导入 将classes12.zip放到 webapp\WEB-INF\lib下就可以了不用设置环境变量
DriverManager.registerDriver(
new oracle.jdbc.OracleDriver()
);
Connection myConnection = DriverManager.getConnection(
"jdbc:oracle:thin:@127.0.0.1:1521:dbName ", "system ", "123456 ")
[解决办法]
can 't connection db:java.sql.SQLException: Io 异常
这个要查查看你的数据库是否能访问,试试用客户端工具或者telnet看能否连接
java.lang.NoClassDefFoundError
这个是没有找到你的数据库驱动类.要把class12加入到你的类路径下.
你这个不是web项目,没有webapp\WEB-INF\lib这个目录;运行时可以用-classpath来添加类路径
[解决办法]
你将你的class12.zip copy到你的jdk安装目录下的lib里面看看.然后环境变量中加入C:\j2sdk1.4.2_02\这个是你的jdk的安装路径,根据你自己的路径设置.
lib\classes12.zip
[解决办法]
我环境变量是这么设置的,你可以参考一下
classpath:
.;C:\j2sdk1.4.2_02\lib\tools.jar;C:\j2sdk1.4.2_02\lib\dt.jar;C:\j2sdk1.4.2_02\lib\classes12.jar
JAVA_HOME:
C:\j2sdk1.4.2_02
PATH:
D:\oracle\ora92\bin;C:\j2sdk1.4.2_02\bin;C:\Program Files\Oracle\jre\1.3.1\bin;C:\Program Files\Oracle\jre\1.1.8\bin;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%PATH%;%ANT_HOME%\bin
[解决办法]
can 't connection db:java.sql.SQLException: No suitable driver
query error:java.lang.Exception: datebase connection can 't use!
java.lang.NullPointerException
没有适当的驱动
数据库不能应用
空指针错误
有可能你的 数据库创建的有问题