我正在尝试连接到计算机运行的同一设备上的WAMP服务器上的数据库。以下是zetcode教程中的代码。除了SQL登录详细信息之外,我几乎完全复制了它。我收到错误,它显示在代码下方。
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.logging.Level;
import java.util.logging.Logger;
import com.sun.corba.se.impl.util.Version;
public class TestDb {
public static void main(String[] args) {
Connection con = null;
Statement st = null;
ResultSet rs = null;
String url = "jdbc:mysql://localhost:3306/mltest";
String user = "mlcomponents";
String password = "color12";
try {
con = DriverManager.getConnection(url, user, password);
st = con.createStatement();
rs = st.executeQuery("SELECT VERSION()");
if (rs.next()) {
System.out.println(rs.getString(1));
}
} catch (SQLException ex) {
Logger lgr = Logger.getLogger(Version.class.getName());
lgr.log(Level.SEVERE, ex.getMessage(), ex);
} finally {
try {
if (rs != null) {
rs.close();
}
if (st != null) {
st.close();
}
if (con != null) {
con.close();
}
} catch (SQLException ex) {
Logger lgr = Logger.getLogger(Version.class.getName());
lgr.log(Level.WARNING, ex.getMessage(), ex);
}
}
}
}
我收到的错误讯息:
May 25, 2016 3:51:28 PM TestDb main
SEVERE: No suitable driver found for jdbc:mysql://localhost:3306/mltest
java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:3306/mltest
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at TestDb.main(TestDb.java:21)
答案 0 :(得分:1)
我之前遇到过同样的问题,请先尝试先运行:
Class.forName("com.mysql.jdbc.Driver");
这将使驱动程序自行注册。
检查有关Drive Manager的更多信息,MySQL Connector。
从上一个链接:
在应用程序服务器之外使用JDBC时,DriverManager类管理连接的建立。 指定DriverManager尝试与哪些JDBC驱动程序建立连接。最简单的方法是在实现java.sql.Driver接口的类上使用Class.forName()。
编辑:我正在添加一个名为MySQLConnector的java类,它可以根据你的第二个问题连接到mysql(在localhost中)。看看我如何导入java.sql.DriverManager
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class MySQLConnector {
//JDBC driver name and database URL
private String JDBC_DRIVER;
private String DB_URL;
//Database credentials
private String USER;
private String PASS;
private Connection conn;
public MySQLConnector(){
JDBC_DRIVER = "com.mysql.jdbc.Driver";
DB_URL = "jdbc:mysql://localhost/db_name?useUnicode=yes&characterEncoding=UTF-8";
USER = "root";
PASS = "123";
conn = null;
}
public void openConnection(){
try{
//Register JDBC driver
Class.forName(JDBC_DRIVER);
//Open a connection
System.out.print("Connecting to a selected database... ");
conn = DriverManager.getConnection(DB_URL, USER, PASS);
System.out.println("Success!");
}catch(Exception e){
//Handle errors for JDBC
e.printStackTrace();
}
}
public void closeConnection(){
try{
if(conn!=null)
conn.close();
}catch(SQLException se){
se.printStackTrace();
}
System.out.println("Connection closed");
}
public Connection getConnection(){
return conn;
}
}
答案 1 :(得分:1)
首先在您的电脑上启动Wamp,您不需要另外一个类来建立连接,使用此代码并提供您的wamp登录的用户名和密码,此代码仅用于建立连接,自己添加上述功能
insert into caliper.log_per_day ( timeStampValue,dateValue ) values ('2015-12-30 16:10:31','2015-12-30');