java.sql.SQL 예외:jdbc:microsoft:sqlserver에 적합한 드라이버를 찾을 수 없습니다.
이 프로그램을 실행하려고 하면 이 예외가 발생합니다.이것은 마이크로소프트의 예 중 하나입니다.프로젝트 속성을 통해 컴파일 및 실행 모두에 대한 netbeans의 클래스 경로에 sqljdbc4.jar를 추가했습니다.저는 또한 아래의 가져오기 문을 사용하여 클래스를 찾을 수 있는지 테스트했습니다. 컴파일 중에 오류가 발생하지 않았으므로 jar를 찾는 것이 틀림없습니다.
sqldbc4.jar가 참조하는 dll 또는 일부 sql dll과 관련이 있습니까?
이것은 정확한 예외이며, 아래는 비밀번호를 제외한 정확한 코드입니다.
예외:
run:
java.sql.SQLException: No suitable driver found for jdbc:microsoft:sqlserver://localhost:1433;databaseName=HealthCareDatabase
Error Trace in getConnection() : No suitable driver found for jdbc:microsoft:sqlserver://localhost:1433;databaseName=HealthCareDatabase
Error: No active Connection
at java.sql.DriverManager.getConnection(DriverManager.java:602)
at java.sql.DriverManager.getConnection(DriverManager.java:185)
at javaapplication1.Connect.getConnection(Connect.java:35)
at javaapplication1.Connect.displayDbProperties(Connect.java:50)
at javaapplication1.JavaApplication1.main(JavaApplication1.java:23)
BUILD SUCCESSFUL (total time: 1 second)
코드:
package javaapplication1;
import com.microsoft.sqlserver.jdbc.SQLServerDriver;
import java.*;
public class Connect {
private java.sql.Connection con = null;
private final String url = "jdbc:microsoft:sqlserver://";
private final String serverName = "localhost";
private final String portNumber = "1433";
private final String databaseName = "HealthCareDatabase";
private final String userName = "larry";
private final String password = "xxxxxxx";
// Constructor
public Connect() {
}
private String getConnectionUrl() {
return url + serverName + ":" + portNumber + ";databaseName=" + databaseName ;
}
private java.sql.Connection getConnection() {
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
con = java.sql.DriverManager.getConnection(getConnectionUrl(), userName, password);
if (con != null) {
System.out.println("Connection Successful!");
}
} catch (Exception e) {
e.printStackTrace();
System.out.println("Error Trace in getConnection() : " + e.getMessage());
}
return con;
}
public void displayDbProperties() {
java.sql.DatabaseMetaData dm = null;
java.sql.ResultSet rs = null;
try {
con = this.getConnection();
if (con != null) {
dm = con.getMetaData();
System.out.println("Driver Information");
System.out.println("\tDriver Name: " + dm.getDriverName());
System.out.println("\tDriver Version: " + dm.getDriverVersion());
System.out.println("\nDatabase Information ");
System.out.println("\tDatabase Name: " + dm.getDatabaseProductName());
System.out.println("\tDatabase Version: " + dm.getDatabaseProductVersion());
System.out.println("Avalilable Catalogs ");
rs = dm.getCatalogs();
while (rs.next()) {
System.out.println("\tcatalog: " + rs.getString(1));
}
rs.close();
rs = null;
closeConnection();
} else {
System.out.println("Error: No active Connection");
}
} catch (Exception e) {
e.printStackTrace();
}
dm = null;
}
private void closeConnection() {
try {
if (con != null) {
con.close();
}
con = null;
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) throws Exception {
Connect myDbTest = new Connect();
myDbTest.displayDbProperties();
}
}
URL은 다음과 같아야 합니다.jdbc:sqlserver://server:port;DatabaseName=dbname
그리고 학급 이름은 다음과 같아야 합니다.com.microsoft.sqlserver.jdbc.SQLServerDriver
Microsoft 사용SQL Server JDBC 드라이버 2.0
메이븐을 사용하여 동일한 문제를 해결하려는 사람.POM에 아래 종속성 추가:
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<version>7.0.0.jre8</version>
</dependency>
다음 코드를 사용하여 연결합니다.
String connectionUrl = "jdbc:sqlserver://localhost:1433;databaseName=master;user=sa;password=your_password";
try {
System.out.print("Connecting to SQL Server ... ");
try (Connection connection = DriverManager.getConnection(connectionUrl)) {
System.out.println("Done.");
}
} catch (Exception e) {
System.out.println();
e.printStackTrace();
}
이 링크에서 다른 CRUD 유형의 쿼리를 찾습니다.
다음은 SQL 데이터베이스에서 읽을 수 있는 간단한 코드입니다.데이터베이스 이름은 "database1"입니다.테이블 이름은 "table1"입니다.여기에는 "이름 없음"과 "통과" 두 개의 열이 열은 다음과 같습니다.프로젝트에 "sqljdbc4.jar"를 추가하는 것을 잊지 마십시오.sqljdbc4.jar 다운로드
public class NewClass {
public static void main(String[] args) {
Connection conn = null;
String dbName = "database1";
String serverip="192.168.100.100";
String serverport="1433";
String url = "jdbc:sqlserver://"+serverip+"\\SQLEXPRESS:"+serverport+";databaseName="+dbName+"";
Statement stmt = null;
ResultSet result = null;
String driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
String databaseUserName = "admin";
String databasePassword = "root";
try {
Class.forName(driver).newInstance();
conn = DriverManager.getConnection(url, databaseUserName, databasePassword);
stmt = conn.createStatement();
result = null;
String pa,us;
result = stmt.executeQuery("select * from table1 ");
while (result.next()) {
us=result.getString("uname");
pa = result.getString("pass");
System.out.println(us+" "+pa);
}
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
저도 같은 오류를 겪고 있었지만 연결 문자열이 제대로 되어 있었습니다.제 문제는 드라이버가 사용되지 않아 컴파일된 전쟁에서 최적화되었다는 것입니다.
드라이버를 가져와야 합니다.
import com.microsoft.sqlserver.jdbc.SQLServerDriver;
그런 다음 최종 전쟁에 강제로 포함시키기 위해 다음과 같은 작업을 수행할 수 있습니다.
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
그 선은 원래 질문에 있습니다.이 기능도 작동합니다.
SQLServerDriver driver = new SQLServerDriver();
sqljdbc4-2.0.jar를 사용하여 다음과 같이 시도할 수 있습니다.
public void getConnection() throws ClassNotFoundException, SQLException, IllegalAccessException, InstantiationException {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();
String url = "jdbc:sqlserver://<SERVER_IP>:<PORT_NO>;databaseName=" + DATABASE_NAME;
Connection conn = DriverManager.getConnection(url, USERNAME, PASSWORD);
System.out.println("DB Connection started");
Statement sta = conn.createStatement();
String Sql = "select * from TABLE_NAME";
ResultSet rs = sta.executeQuery(Sql);
while (rs.next()) {
System.out.println(rs.getString("COLUMN_NAME"));
}
}
라이브러리의 .JAR 아카이브를 NETBEANS 프로젝트에 추가해 보십시오.주의:프로젝트 범주는 "개미"여야 합니다.
언급URL : https://stackoverflow.com/questions/5616898/java-sql-sqlexception-no-suitable-driver-found-for-jdbcmicrosoftsqlserver
'sourcecode' 카테고리의 다른 글
Python에서 환경 변수 읽기 및 쓰기? (0) | 2023.06.23 |
---|---|
Oracle에서 JPA로 날짜와 시간을 저장하는 방법은 무엇입니까? (0) | 2023.06.23 |
ASP.NET MVC 4 베타를 설치한 후 InvalidCastException이 느려짐 (0) | 2023.06.18 |
Oracle 12c 설치에서 임시 위치에 액세스하지 못했습니다. (0) | 2023.06.18 |
올바른 유형 안전 방법으로 기록 키를 반복하려면 어떻게 해야 합니까? (0) | 2023.06.18 |