先上代码:
import java.sql.*;
public class TestJDBC {
public static void main(String[] args)throws Exception{
/*
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/mydata?user=root&password=");
Statement stmt = conn.createStatement();
//stmt.executeQuery("select * from JDBC");
ResultSet rs = stmt.executeQuery("select * from dept");
while(rs.next()){
System.out.println(rs.getString("deptno"));
System.out.println(rs.getInt("deptno"));
}
rs.close();
stmt.close();
conn.close();
*/
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try{
Class.forName("com.mysql.jdbc.Driver").newInstance();
}catch(Exception e){
e.printStackTrace();
}
try{
conn = DriverManager.getConnection("jdbc:mysql://localhost/mydata?user=root&password=");
stmt = conn.createStatement();
rs = stmt.executeQuery("select * from dept");
while(rs.next()){
System.out.println(rs.getString("deptno"));
}
}catch(SQLException e){
System.out.println("SQLException:"+ e.getMessage());
System.out.println("SQLState:" + e.getSQLState());
System.out.println("VenderError:" + e.getErrorCode());
}finally{
try{
if(rs != null){
rs.close();
rs = null;
}
if(stmt != null){
stmt.close();
stmt = null;
}if(conn != null){
conn.close();
conn = null;
}
}catch(SQLException e){
e.printStackTrace();
}
//rs.close();
//stmt.close();
//conn.close();
}
}
}
再解释:
从昨天夜里到今天下午,终于把这个理顺了。
我的问题主要出在这一句:
conn = DriverManager.getConnection("jdbc:mysql://localhost/mydata?user=root&password=");
mydata 是mysql里建好的database的名称
我的mysql没有设置用户名和密码,默认的用户名是root,密码是空。
我怎么这么聪明,就把密码设为空,然后就通过了。
打印的结果就是database里dept这张表的deptno里的数据。