DbConnector를 사용하여 DriverManager에서 Connection을 가져 오는 아래 DbQuery.java 클래스를 사용하여 간단한 쿼리를 실행하려고합니다.java.sql.SQLException : 적합한 드라이버가 없습니다.
참고 : 수출 CLASSPATH = $ CLASSPATH에 :
- 은 이미 "MySQL의 커넥터 - 자바-5.1.25-bin.jar를"내 클래스 경로를 통해에 포함했다/홈/나 /ocpjp/chapter-10/mysql-connector-java-5.1.25/mysql-connector-java-5.1.25-bin.jar
- "mysql -uroot -ptcial addressBook"을 사용하여 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, userName, 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);
}
}
}
당신이 ** 전체 ** 스택 추적을 게시하시기 바랍니다 수 있지? – BackSlash
더 이상 필요 없다고 생각합니다. 감사. – user749665