连接 Microsoft SQL 和 Java?
Connect Microsoft SQL with Java?
我正在处理我的项目,我必须将 Microsoft SQL 与 Java 连接起来。我想从我的数据库中提取信息。我不断收到此错误:
SEVERE: Java Runtime Environment (JRE) version 1.8 is not supported by this driver. Use the sqljdbc4.jar class library, which provides support for JDBC 4.0.
java.lang.UnsupportedOperationException: Java Runtime Environment (JRE) version 1.8 is not supported by this driver. Use the sqljdbc4.jar class library, which provides support for JDBC 4.0.
at com.microsoft.sqlserver.jdbc.SQLServerConnection.<init>(SQLServerConnection.java:304)
at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1011)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at SendEmails.main(SendEmails.java:22)
我的驱动程序出了点问题。我想不通是什么。也许我有错误的路径或其他东西。这是我的代码:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class SendEmails {
public static void main(String[] args) {
Connection conn = null;
String dbName = "Student";
String serverip="109.45.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 = "student";
String databasePassword = "admin";
try {
Class.forName(driver).newInstance();
conn = DriverManager.getConnection(url, databaseUserName, databasePassword);
stmt = conn.createStatement();
result = null;
String pa,us;
result = stmt.executeQuery("Select Top 45 * From Students ");
while (result.next()) {
us=result.getString("uname");
pa = result.getString("pass");
System.out.println(us+" "+pa);
}
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
如果有人知道我的代码有什么问题,请告诉我。
您的 class 路径中缺少 jar 文件。
将 class 路径设置为 sqlserverjdbc.jar
。
其中包含 com.microsoft.jdbc.sqlserver.sqlserverdriver
class.
首先检查你的jar文件是否包含com.microsoft.sqlserver.jdbc.SQLServerDriver
或com.microsoft.jdbc.sqlserver.sqlserverdriver
class.
作为例外说“java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver"
。
所以要么所需的 jar 不存在,要么包含的 jar 的路径有问题。
从 https://msdn.microsoft.com/en-us/sqlserver/aa937724.aspx 下载 jar 并将此 jar 添加为依赖项。
这是一个工作示例
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class ConnectMSSQLServer
{
public void dbConnect(String db_connect_string,
String db_userid,
String db_password)
{
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
Connection conn = DriverManager.getConnection(db_connect_string,
db_userid, db_password);
System.out.println("connected");
Statement statement = conn.createStatement();
String queryString = "select * from sysobjects where type='u'";
ResultSet rs = statement.executeQuery(queryString);
while (rs.next()) {
System.out.println(rs.getString(1));
}
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args)
{
ConnectMSSQLServer connServer = new ConnectMSSQLServer();
connServer.dbConnect("jdbc:sqlserver://<hostname>", "<user>",
"<password>");
}
}
您添加了一个 .newInstance()
调用,但此示例中没有。将 <hostname>
、<user>
和 <password>
替换为适当的值。
已添加参考资料
我正在处理我的项目,我必须将 Microsoft SQL 与 Java 连接起来。我想从我的数据库中提取信息。我不断收到此错误:
SEVERE: Java Runtime Environment (JRE) version 1.8 is not supported by this driver. Use the sqljdbc4.jar class library, which provides support for JDBC 4.0.
java.lang.UnsupportedOperationException: Java Runtime Environment (JRE) version 1.8 is not supported by this driver. Use the sqljdbc4.jar class library, which provides support for JDBC 4.0.
at com.microsoft.sqlserver.jdbc.SQLServerConnection.<init>(SQLServerConnection.java:304)
at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1011)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at SendEmails.main(SendEmails.java:22)
我的驱动程序出了点问题。我想不通是什么。也许我有错误的路径或其他东西。这是我的代码:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class SendEmails {
public static void main(String[] args) {
Connection conn = null;
String dbName = "Student";
String serverip="109.45.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 = "student";
String databasePassword = "admin";
try {
Class.forName(driver).newInstance();
conn = DriverManager.getConnection(url, databaseUserName, databasePassword);
stmt = conn.createStatement();
result = null;
String pa,us;
result = stmt.executeQuery("Select Top 45 * From Students ");
while (result.next()) {
us=result.getString("uname");
pa = result.getString("pass");
System.out.println(us+" "+pa);
}
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
如果有人知道我的代码有什么问题,请告诉我。
您的 class 路径中缺少 jar 文件。
将 class 路径设置为 sqlserverjdbc.jar
。
其中包含 com.microsoft.jdbc.sqlserver.sqlserverdriver
class.
首先检查你的jar文件是否包含com.microsoft.sqlserver.jdbc.SQLServerDriver
或com.microsoft.jdbc.sqlserver.sqlserverdriver
class.
作为例外说“java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver"
。
所以要么所需的 jar 不存在,要么包含的 jar 的路径有问题。
从 https://msdn.microsoft.com/en-us/sqlserver/aa937724.aspx 下载 jar 并将此 jar 添加为依赖项。
这是一个工作示例
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class ConnectMSSQLServer
{
public void dbConnect(String db_connect_string,
String db_userid,
String db_password)
{
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
Connection conn = DriverManager.getConnection(db_connect_string,
db_userid, db_password);
System.out.println("connected");
Statement statement = conn.createStatement();
String queryString = "select * from sysobjects where type='u'";
ResultSet rs = statement.executeQuery(queryString);
while (rs.next()) {
System.out.println(rs.getString(1));
}
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args)
{
ConnectMSSQLServer connServer = new ConnectMSSQLServer();
connServer.dbConnect("jdbc:sqlserver://<hostname>", "<user>",
"<password>");
}
}
您添加了一个 .newInstance()
调用,但此示例中没有。将 <hostname>
、<user>
和 <password>
替换为适当的值。
已添加参考资料