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
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.
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.
Joined: Mar 31, 2012
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.