我试图理解JDBC API,为了做到这一点,我只是编写了一些代码来建立与DB的连接。好像我不能...... 我试图手动加载mysql DB的驱动程序,但即使我在类路径中包含连接器.jar,编译器也会抱怨它无法找到com.mysql包。
另一方面,如果我省略了Class.forName()方法,代码会编译,但我在运行时会得到数百个异常行。
我在命令行中编译(和运行)包括jar:
javac -cp [path to jar] DBTest.java
这是我的代码:
import java.sql.*;
class DBTest {
**strong text**
static final String ADDRESS="jdbc:mysql://127.0.0.1:8888/customer";
static final String USER="myuser";
static final String PASSWORD="luca";
public static void main(String[] args) {
Connection conn=null;
Statement stat=null;
Class.forName("com.mysql.jdbc.Driver");
try {
conn=DriverManager.getConnection(ADDRESS,USER,PASSWORD);
stat=conn.createStatement();
String query="SELECT * FROM person";
ResultSet result=stat.executeQuery(query);
while (result.next()) {
String name=result.getString("name");
String surname=result.getString("surname");
int id=result.getInt("id");
String telephone=result.getString("telephone");
System.out.println(id+": first name: "+name+" second name: "+surname+" tel: "+telephone);
}
}
catch (SQLException e) {
e.printStackTrace();
}
finally {
try {
conn.close();
stat.close();
}
catch (Exception e) {
e.printStackTrace();
}
}
}
修改
使用双引号现在它编译得很好,但在运行时它会说:
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
答案 0 :(得分:2)
替换
Class.forName(com.mysql.jdbc.Driver);
带
Class.forName("com.mysql.jdbc.Driver");