aspose file tools*
The moose likes JDBC and the fly likes Database connection servlet Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Databases » JDBC
Bookmark "Database connection servlet" Watch "Database connection servlet" New topic
Author

Database connection servlet

Mike Tabak
Ranch Hand

Joined: Mar 31, 2012
Posts: 41
I'm running a sample from a book that uses a servlet to connect to MySQL, the relevant code is:


Even if I try a simple SQL statement like SELECT * FROM User; I get the error message


SQL result:
Error executing the SQL statement:
No suitable driver found for jdbc:mysql://localhost:3306/murach


I am using a type 4 connection. According to the book all you need to do is download the Connector/J from MySQL (mysql-connector-java-5.0.8-bin.jar)
put it into the jdk/jre/lib/ext directory and the connector will be available to any app (in java 1.6 and up) and will be loaded automatically. I even added the jar
file to the project, but that had the same result.

Anyone have any answers?
Thanks in advance

Mike
jason cooper
Greenhorn

Joined: Aug 14, 2012
Posts: 1
Before you get a Connection, you need to load the Driver class.Try this:
Class.forName("com.mysql.jdbc.Driver");
Christophe Verré
Sheriff

Joined: Nov 24, 2005
Posts: 14687
    
  16

According to the book all you need to do is download the Connector/J from MySQL (mysql-connector-java-5.0.8-bin.jar)
put it into the jdk/jre/lib/ext directory

Not really recommended. You'd better put the jar in your WEB-INF/lib directory.


[My Blog]
All roads lead to JavaRanch
Bear Bibeault
Author and ninkuma
Marshal

Joined: Jan 10, 2002
Posts: 60991
    
  65

OK, this part is servlet related: if you are eventually going to use container-managed connection pooling (recommended) with Tomcat, the driver jar needs to be in Tomcat's lib folder.


[Asking smart questions] [Bear's FrontMan] [About Bear] [Books by Bear]
Mike Tabak
Ranch Hand

Joined: Mar 31, 2012
Posts: 41
Thanks all,

I did try Class.forName("com.mysql.jdbc.Driver"); and it started working. I think this initiates the driver instead of loading it? Anyway, I will also try putting it int Tomcats lib folder.
Nam Ha Minh
Ranch Hand

Joined: Oct 31, 2011
Posts: 498

jason cooper wrote:Before you get a Connection, you need to load the Driver class.Try this:
Class.forName("com.mysql.jdbc.Driver");


This is no longer needed, since JDBC 4.0 (Java 6). Just include Connector/J jar file to classpath and the driver manager will load the suitable driver automatically.


PM Me If You Want to get Urgent Help on Java Programming
Mike Tabak
Ranch Hand

Joined: Mar 31, 2012
Posts: 41
To Jason:

I did read that in java 6+ all you need to do is put the Connector/J jar in the classpath and it loads automatically. I did so (in NetBeans) but this didn't work. Using the forName() worked, I still need to try putting it in Tomcat's WEB-INF/lib directory. I guess my question to you is does the forName() call load the Driver or just initialize it? I read it initializes it which would mean it is being loaded automatically.

Thanks
Mike
Mike Tabak
Ranch Hand

Joined: Mar 31, 2012
Posts: 41
I tried putting the Connector/J jar file in the jdk/jre/lib/ext, in the library path of my project and in Tomcat's WEB-INF/lib directory. None of these worked. I still needed the Class.forName("com.mysql.jdbc.Driver"); statement for the app to work. It should load by itself, I don't understand why it isn't. I read somewhere that the Class.forName("..."); initializes a class, could it
be that it's loading but not initializing?

Anyway, I'll have to keep it in for now until I find the answer. By the way, I'm running on Windows 7 32 bit Pro. under bootcamp on a MacBook pro. Don't see where that should matter.
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Database connection servlet