File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
http://aspose.com/file-tools
The moose likes JDBC and the fly likes Could not locate DB driver Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Soft Skills this week in the Jobs Discussion forum!
JavaRanch » Java Forums » Databases » JDBC
Bookmark "Could not locate DB driver" Watch "Could not locate DB driver" New topic
Author

Could not locate DB driver

Rob Petterson
Ranch Hand

Joined: Jan 23, 2002
Posts: 149
I thought I had sorted this little problem out on a previous program - but here it is again!(different program / different code):
I'm getting an exception thrown saying:
Could not locate DB driver
package com.wrox.databases;
import java.sql.*;
import java.util.*;
public class Books {
String error;
Connection con;
public Books() { }
public void connect() throws ClassNotFoundException,
SQLException,
Exception {
try {
Driver mySqlDriver = (Driver) (Class.forName("com.mysql.jdbc.Driver").newInstance());
DriverManager.registerDriver(mySqlDriver);
con = DriverManager.getConnection(
"jdbc:mysql://localhost/Wrox ?user=root&password=booboomimi");
} catch (ClassNotFoundException cnfe) {
error = "ClassNotFoundException: Could not locate DB driver.";
throw new ClassNotFoundException(error);
} catch (SQLException cnfe) {
error = "SQLException: Could not connect to database.";
throw new SQLException(error);
} catch (Exception e) {
error = "Exception: An unknown error occurred while connecting " +
"to database.";
throw new Exception(error);
}
}
public void disconnect() throws SQLException {
try {
if ( con != null ) {
con.close();
}
} catch (SQLException sqle) {
error = ("SQLException: Unable to close the database connection.");
throw new SQLException(error);
}
}
public ResultSet viewBooks() throws SQLException, Exception {
ResultSet rs = null;
try {
String queryString = ("SELECT * FROM Book;");
Statement stmt = con.createStatement();
rs = stmt.executeQuery(queryString);
} catch (SQLException sqle) {
error = "SQLException: Could not execute the query.";
throw new SQLException(error);
} catch (Exception e) {
error = "An exception occured while retrieving books.";
throw new Exception(error);
}
return rs;
}
public void addBooks(int id, String title, float price, int cid)
throws SQLException, Exception {
if (con != null) {
try {
PreparedStatement updatebooks;
updatebooks = con.prepareStatement(
"insert into Book values(?, ?, ?, ?);");
updatebooks.setInt(1, id);
updatebooks.setString(2, title);
updatebooks.setInt(3, cid);
updatebooks.setFloat(4, price);
updatebooks.execute();
} catch (SQLException sqle) {
error = "SQLException: update failed, possible duplicate entry";
throw new SQLException(error);
}
} else {
error = "Exception: Connection to database was lost.";
throw new Exception(error);
}
}
public void removeBooks(String [] pkeys) throws SQLException, Exception {
if (con != null) {
try {
PreparedStatement delete;
delete = con.prepareStatement("DELETE FROM Book WHERE Title_ID=?;");
for (int i = 0; i < pkeys.length; i++) {
delete.setInt(1, Integer.parseInt(pkeys[i]));
delete.execute();
}
} catch (SQLException sqle) {
error = "SQLException: update failed, possible duplicate entry";
throw new SQLException(error);
} catch (Exception e) {
error = "An exception occured while deleting books.";
throw new Exception(error);
}
} else {
error = "Exception: Connection to database was lost.";
throw new Exception(error);
}
}
}


Rob Petterson
SCJP
Rob Petterson
Ranch Hand

Joined: Jan 23, 2002
Posts: 149
I've ammended the code by using a different driver, but I'm now getting this exception being thrown:
java.sql.SQLException: SQLException: Could not connect to database.
This is part of my ammended code:
package com.wrox.databases;
import java.sql.*;
import java.util.*;
public class Books {

String error;
Connection con;
public Books() { }
public void connect() throws ClassNotFoundException,
SQLException,
Exception {
try {
System.setProperty("jdbc.drivers", "sun.jdbc.odbc.JdbcOdbcDriver");
Driver mySqlDriver = (Driver)(Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance());
DriverManager.registerDriver(mySqlDriver);
con = DriverManager.getConnection(
"jdbc dbc://localhost/wrox?user=root&password=booboomimi");
} catch (ClassNotFoundException cnfe) {
error = "ClassNotFoundException: Could not locate DB driver.";
throw new ClassNotFoundException(error);
} catch (SQLException cnfe) {
error = "SQLException: Could not connect to database.";
throw new SQLException(error);
} catch (Exception e) {
error = "Exception: An unknown error occurred while connecting " +
"to database.";
throw new Exception(error);
}
}
I noticed when posting this that a red face appears where there should be a colon in the original program - odd.
Any suggestions as where I'm going wrong?
[ December 15, 2002: Message edited by: Rob Petterson ]
[ December 15, 2002: Message edited by: Rob Petterson ]
[ December 15, 2002: Message edited by: Rob Petterson ]
[ December 15, 2002: Message edited by: Rob Petterson ]
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Could not locate DB driver