[英]JDBC connection from Eclipse to MSSQL server using sqljdbc4.jar
我正在尝试使用Eclipse Web项目中的sqljdbc4建立与MS SQL Server 2014的jdbc连接,没有任何运气。
到目前为止,这是我尝试过的:
大多数论坛的用户都成功完成了上面列表中的数字(2)。 我刚开始使用JDBC,甚至花了一些时间才到达这个阶段。 但不幸的是,此事再也无法解决。 我现在在这一点上停留了将近7个小时,令人沮丧的是它每次在常规Java项目中都能正常工作。 为什么这样,当IDE中的任何类型的项目都要求jar处于其类路径中时?
不知道这将对您有多大帮助,但是这是我想出的用于建立连接的代码。 它总是导致SQLException:在“ try”之后的第一行没有找到适合jdbc:sqlserver的驱动程序。
public class SQLConnector {
private static final String DB_SERVER = "jdbc:sqlserver://SAI;"
+ "DatabaseName=LibraryManagementSystem";
private static final String DB_USER="sa";
private static final String DB_PASS="abc732XYZ";
public static Connection getDatabaseConnection() {
Connection connection = null;
try {
connection = DriverManager.getConnection(DB_SERVER, DB_USER, DB_PASS);
if(connection != null) {
System.out.println("Connection successful");
}
}
catch(SQLException e) {
e.printStackTrace();
}
return connection;
}
}
请检讨和帮助。
是的,将jar放在项目的WEB-INF / lib下应该可以解决问题,但是放置哪个jar同样重要。
由于您尚未使用Class.forName()
加载类,因此我假设您正在使用JDBC 4.0(JAVA6 / 7)。 因此,您需要将jar sqljdbc4.jar
放在该目录下。
您可以从这里下载。
我最终使用了Tomcat连接池,并且可以正常工作。 这是通过在META-INF下在Web内容下创建具有以下内容的Context.xml文件来完成的。
<Context>
<!-- Specify a JDBC datasource -->
<Resource name="jdbc/LibraryManagementSystem" auth="Container"
type="javax.sql.DataSource" username="sa" password="abc732XYZ"
driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
url="jdbc:sqlserver://SAI:1433;DatabaseName=LibraryManagementSystem"
maxActive="10" maxIdle="4" />
</Context>
并通过使用DataSource和Initial Context适当地更改连接器类以反映连接池。 此外,建议使用普通jdbc进行连接池。
public class SQLConnector
{
private static final String DB_NAME = "jdbc/LibraryManagementSystem";
private static Connection connection;
public static Connection getDatabaseConnection() {
try {
Context initContext = new InitialContext();
Context envContext = (Context)initContext.lookup("java:/comp/env");
DataSource dataSource = (DataSource)envContext.lookup(DB_NAME);
connection = dataSource.getConnection();
}
catch (NamingException | SQLException e) {
e.printStackTrace();
}
return connection;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.