我正在尝试创建与我的数据库的连接,当我使用main方法测试我的代码时,它可以无缝地工作.但是,当尝试通过Tomcat 7访问它时,它会失败并显示错误:
No suitable driver found for jdbc:mysql://localhost/dbname.
Run Code Online (Sandbox Code Playgroud)
我正在使用汇集.我在WEB-INF/lib和.classpath中放入了mysql连接器(5.1.15),dbcp(1.4)和pool(1.4.5)库.我正在使用Eclipse IDE.我的数据库驱动程序代码是:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import org.apache.tomcat.dbcp.dbcp.ConnectionFactory;
import org.apache.tomcat.dbcp.dbcp.DriverManagerConnectionFactory;
import org.apache.tomcat.dbcp.dbcp.PoolableConnectionFactory;
import org.apache.tomcat.dbcp.dbcp.PoolingDriver;
import org.apache.tomcat.dbcp.pool.impl.GenericObjectPool;
public class DatabaseConnector {
public static String DB_URI = "jdbc:mysql://localhost/dbname";
public static String DB_USER = "test";
public static String DB_PASS = "password";
// Singleton instance
protected static DatabaseConnector _instance;
protected String _uri;
protected String _username;
protected String _password;
/**
* Singleton, so no public constructor
*/
protected DatabaseConnector(String uri, String username, String password) { …Run Code Online (Sandbox Code Playgroud) 命令是什么
Class.forName("oracle.jdbc.driver.OracleDriver")
Run Code Online (Sandbox Code Playgroud)
连接到Oracle数据库时确实做到了吗?是否有另一种做同样事情的方法?
我在示例应用程序中看到了使用商业JDBC驱动程序的这一行:
Class.forName("name.of.a.jcdb.driver")
Run Code Online (Sandbox Code Playgroud)
不使用返回值.
这条线的目的是什么?
在进行简单的 JDBC 连接时,所有资源都提供相同的代码
String driver = "com.mysql.jdbc.Driver";
Statement statement = null;
Class.forName(driver);
Connection conn = DriverManager.getConnection(url + dbName,userName, password);
Run Code Online (Sandbox Code Playgroud)
但我们实际上与“Class.forName(driver)”无关。我们没有把它存放在任何地方。这有什么用,因为我们与 Class.forName(driver) 的返回无关。
我已经把 mysql 驱动程序放进去了.../ROOT/WEB-INF/lib,Tomcat 8.0/lib但它没有效果。我正在使用以下类连接到数据库:
package db;
import java.sql.*;
public class ConnectToDB implements AutoCloseable {
Connection con;
public ConnectToDB(String server, String database, String user,
String password) throws SQLException {
con = DriverManager.getConnection("jdbc:mysql://" + server + "/"
+ database, user, password);
}
@Override
public void close() throws SQLException {
con.close();
}
public Connection getConnection() {
return con;
}
}
Run Code Online (Sandbox Code Playgroud)
Eclipse 项目中包含以下类:
1. src/nr3/模型
package nr3.model;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import db.ConnectToDB;
public …Run Code Online (Sandbox Code Playgroud) 正如"Class.forName()"和"Class.forName().newInstance()"之间的区别所解释的那样?,Class.forName()方法执行以下操作:
调用Class.forName(String)返回与具有给定字符串名称的类或接口关联的Class对象
但是,如果它只是这样做,为什么需要调用这个方法才能将MySQL与Java一起使用呢?没有它我得到以下错误:
java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:3306/calender
at java.sql.DriverManager.getConnection(DriverManager.java:689)
at java.sql.DriverManager.getConnection(DriverManager.java:247)
at Database.main(Database.java:25)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140)
Run Code Online (Sandbox Code Playgroud) 我正在开发一个Web应用程序,我正在动态创建MSSQLSERVER 2008数据库.
但它给了我
java.sql.SQLException: No suitable driver found for jdbc:sqlserver://localhost:1433;databaseName=master
Run Code Online (Sandbox Code Playgroud)
我的代码是:
String dbName = "db1";
try {
String url = "jdbc:sqlserver://localhost:1433;databaseName=master";
Connection connection = DriverManager.getConnection(
url,
"sa",
"roshan14121987");
Statement statement = connection.createStatement();
String sqlquery = "CREATE Database \"" + dbName + "\"; ";
statement.executeUpdate(sqlquery);
statement.close();
connection.close();
} catch(Exception e) {
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
我在lib中添加了sqljdbc4.jar.我已经在NetBeans(使用GlassFish和Tomcat Server)和Eclipse IDE(Tomcat Server)上尝试过它.
另一方面,我尝试使用简单的桌面应用程序,它在两个IDE上都运行良好.在lib中添加了sqljdbc4.jar.