我编写了一个简单的Java文件来处理与SQL服务器集成的SQL。
我下载了相应的驱动程序并将JAR存储在正确的类路径中,但只有在我直接运行文件时它才有效。
我试过从另一个类调用sql类中的方法,我得到以下错误:
java.lang.ClassNotFoundException:com.microsoft.sqlserver.jdbc.SQLServerDriver
我知道这个问题已有详细记载,但它并没有解决我的独特问题,即它在文件中有效但不在外部。
另一个问题是程序关闭后重建我的程序会忘记将JAR添加为库并要求我再次添加它,这是不好的。
我尝试通过手动复制并将其粘贴到XML配置文件中来添加类路径,但这是一个hacky解决方案,我宁愿正确地执行它。请让我知道我哪里出错了。
#include
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm/5.0.4/da08b8cce7bbf903602a25a3a163ae252435795/asm-5.0.4.jar!/" />
<root url="jar://$USER_HOME$/IdeaProjects/r3prototypingCFS/contracts/src/main/kotlin/com/r3corda/protocols/sqljdbc42.jar!/" />
</CLASSES>
答案 0 :(得分:0)
使用jdts驱动程序..与Sql Server 2014一起使用。
的pom.xml
<dependencies>
<!-- https://mvnrepository.com/artifact/net.sourceforge.jtds/jtds -->
<dependency>
<groupId>net.sourceforge.jtds</groupId>
<artifactId>jtds</artifactId>
<version>1.3.1</version>
</dependency>
</dependencies>
和src
import java.sql.*;
public class Main {
public static void main(String[] args) throws SQLException {
// write your code here
Connection conn = null;
ResultSet rs = null;
String url = "jdbc:jtds:sqlserver://localhost:1433/DATABASENAME";
String driver = "net.sourceforge.jtds.jdbc.Driver";
String userName = "username";
String password = "yourpassword";
try {
Class.forName(driver);
conn = DriverManager.getConnection(url, userName, password);
System.out.println("Connected to the database!!! Getting table list...");
Statement stmt = conn.createStatement();
String sql = "SELECT top 10 PhoneNumber,RegistrationDate\n" +
" \n" +
" FROM tblProductRegistration";
// ResultSet resultSet = stmt.executeQuery(sql);
// String selectSQL = "SELECT USER_ID, USERNAME FROM DBUSER WHERE USER_ID = ?";
//Statement stmt = conn.createStatement();
ResultSet resultSet = stmt.executeQuery(sql);
// preparedStatement.setInt(1, 1001);
// ResultSet resultSet = preparedStatement.executeQuery( );
//STEP 5: Extract data from result set
while(resultSet.next()){
//Retrieve by column name
String PhoneNumber = resultSet.getString("PhoneNumber");
String RegistrationDate = resultSet.getString("RegistrationDate");
//Display values
System.out.print("PhoneNumber: " + PhoneNumber);
System.out.print("RegistrationDate: " + RegistrationDate);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
conn.close();
rs.close();
}
}
}