我试图使用下面的DbQuery.
java类执行简单查询,该类使用DbConnector从DriverManager获取连接.
注意:
>我已经在我的网站上加入了“MysqL-connector-java-5.1.25-bin.jar”
classpath via:export
CLASSPATH = $CLASSPATH:/home/me/ocpjp/chapter-10/MysqL-connector-java-5.1.25/MysqL-connector-java-5.1.25-bin.jar
>我能够使用“MysqL -uroot -ptcial”连接到MysqL
地址簿“,如果重要的话.
>还尝试使用’-cp’运行
争论无济于事.
>我能够让我的#3 DbConnect.java类说“已建立数据库连接”.
>#4 DbQueryWorking.java没有问题,并提供预期的输出.
你能帮我理解这里的问题吗?
1)DbConnector.java
package com.me.ocpjp.chapter10; import java.sql.Connection; import java.sql.DriverManager; import java.sql.sqlException; public class DbConnector{ public static Connection connectToDb() throws sqlException{ String url = "jdbc:MysqL//localhost:3306/"; String db = "addressBook"; String username = "root"; String password = "tcial"; return DriverManager.getConnection(url+db,username,password); } }
2)DbQuery.java
package com.me.ocpjp.chapter10; import java.sql.Connection ; import java.sql.Statement ; import java.sql.ResultSet ; import java.sql.sqlException ; import com.me.ocpjp.chapter10.DbConnector; public class DbQuery{ public static void main(String[] args){ try(Connection connection = DbConnector.connectToDb(); Statement statement = connection.createStatement(); ResultSet resultSet = statement.executeQuery("select * from contact")){ System.out.println("ID \tfName \tlName \temail \t\tphoneNo"); while(resultSet.next()){ System.out.println(resultSet.getInt("id") + "\t" + resultSet.getString("firstName") + "\t" + resultSet.getString("lastName") + "\t" + resultSet.getString("email") + "\t" + resultSet.getString("phoneNo") ); } }catch(sqlException sqle){ sqle.printStackTrace(); System.exit(-1); } } }
3)DbConnect.java
package com.me.ocpjp.chapter10; import java.sql.Connection; import java.sql.DriverManager; public class DbConnect{ public static void main(String[] args){ String url = "jdbc:MysqL://localhost:3306/"; String database = "addressBook"; String userName = "root"; String password = "tcial"; try(Connection connection = DriverManager.getConnection(url+database,userName,password)){ System.out.println("Database connection established"); }catch(Exception e){ System.out.println("Database connectioni NOT established"); e.printStackTrace(); } } }
4)DbQueryWorking.java
package com.me.ocpjp.chapter10; import java.sql.Connection ; import java.sql.Statement ; import java.sql.ResultSet ; import java.sql.sqlException ; import java.sql.DriverManager; public class DbQuery{ public static void main(String[] args){ String url = "jdbc:MysqL://localhost:3306/"; String database = "addressBook"; String userName = "root"; String password = "tcial"; try(Connection connection = DriverManager.getConnection(url + database,password); Statement statement = connection.createStatement(); ResultSet resultSet = statement.executeQuery("select * from contact")){ System.out.println("ID \tfName \tlName \temail \t\tphoneNo"); while(resultSet.next()){ System.out.println(resultSet.getInt("id") + "\t" + resultSet.getString("firstName") + "\t" + resultSet.getString("lastName") + "\t" + resultSet.getString("email") + "\t" + resultSet.getString("phoneNo") ); } }catch(sqlException sqle){ sqle.printStackTrace(); System.exit(-1); } } }