如何通过java代码连接sql server?

2023-12-10

我正在创建需要将我的服务连接到 sql server 的应用程序。当我添加依赖后运行测试代码时,它运行成功。这是成功运行的测试代码:

import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.*;

public class SQLConnection {

    public static void main(String[] args) throws ClassNotFoundException, SQLException {
                Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");  
                Connection conn = DriverManager.getConnection("jdbc:sqlserver://10.235.5.38\\name;user=sa;password=password;database=dbname");
                Statement sta = conn.createStatement();
                 if (conn != null) {
                        DatabaseMetaData dm = (DatabaseMetaData) conn.getMetaData();
                        System.out.println("Driver name: " + dm.getDriverName());
                        System.out.println("Driver version: " + dm.getDriverVersion());
                        System.out.println("Product name: " + dm.getDatabaseProductName());
                        System.out.println("Product version: " + dm.getDatabaseProductVersion());
                    }
            }
    }

但是,当我添加 jdbc 依赖项并在创建服务时运行相同的代码时,它会给出如下错误:

java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1308)
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1142)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:264)
    at com.zcon.vmh.dao.implementations.AdvisoryBoxDaoImpl.connectionTest(AdvisoryBoxDaoImpl.java:131)
    at com.zcon.vmh.services.implementation.AdvisoryBoxServiceImpl.connectionTest(AdvisoryBoxServiceImpl.java:19)
    at com.zcon.vmh.controller.AdvisoryBoxController.connectionTest(AdvisoryBoxController.java:40)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:221)
    at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)
    at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:110)
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:832)
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:743)
    at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:961)
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:895)
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:967)
    at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:858)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:622)
    at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:843)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:522)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1095)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:672)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1500)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1456)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:745)

我在 pom.xml 中添加了此依赖项:

<dependency>
            <groupId>com.microsoft.sqlserver</groupId>
            <artifactId>sqljdbc4</artifactId>
            <version>4.2</version>
            <scope>test</scope>
        </dependency>

我应该进行哪些更改才能在创建服务时成功连接?


您的依赖项的范围是test,这意味着当应用程序正常运行(不是作为测试)时它不会在类路径中。将范围更改为runtime,在这种情况下,里面的类.jar如果您在 IDE 中运行应用程序或使用 Maven 插件打包它,则在运行时可用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何通过java代码连接sql server? 的相关文章

随机推荐

  • Web api 2 Web 服务中的 Dispose 方法

    我正在使用 Web api 2 Web 服务编写 MVC 5 互联网应用程序 我是否需要 Web 服务中的 DbContext 类的 dispose 方法 默认情况下它不存在 实际上 System Web Http ApiControlle
  • JMS Serializer:如何限制对象图的序列化深度

    也许这只是我对此注释的误解 但它似乎没有按预期工作 我有以下对象图 User gt Company gt Users gt Groups gt Permissions 正如你所看到的 会有一些递归 JMS 很好地处理了这个问题 它不序列化其
  • 使用 CSharpCodeProvider 允许用户创建函数

    我有一个现有的 asp net c 应用程序 我需要为用户提供一种创建灵活规则的方法 以计算给定雇用日期和注册日期的生效日期 可能使用的规则的一些示例 雇用日期或注册日期中较晚的一个 雇用日期 90 天 入学日期后的第一个月 如果注册日期在
  • 无扩展名 URL 尾部斜杠重定向

    我在几个 Dreamhost 域上测试了下面的代码 它可以工作 但 2012 年左右添加的新域除外 RewriteEngine on unless directory remove trailing slash RewriteCond RE
  • asp.net jquery ajax json:交换数据的简单示例

    在两个回复帖子的帮助下解决了问题 见下文 我希望能帮助您获得在浏览器 使用 JavaScript JQuery 和 ASP NET 使用 Visual Studio 2010 之间交换数据 JSON 数据的简单示例 当我单击按钮时 将执行以
  • 在 C 和 C++ 中访问数组超出限制 [重复]

    这个问题在这里已经有答案了 int data 8 data 9 1 C 标准对此有何规定 这是未定义的行为吗 至少C编译器 gcc std c99 pedantic W Wall 没有对此说什么 访问数组边界之外是未定义的行为 从c99标准
  • 获取 UIBezierPath Stroke 的轮廓路径

    我有一个UIBezierPath笔划 现在我想获取笔划的轮廓路径 不是笔划的路径本身 有什么方法可以得到吗 或者至少NSLog the UIBezierPath笔画的轮廓路径 谢谢 您可以使用CGPathCreateCopyByStroki
  • 如何制作一个只能订阅一次的轻量级“Replay”算子?

    在不同的场合我都希望有一个 RxReplay操作符缓冲传入的通知 在第一次订阅时同步重放其缓冲区 然后停止缓冲 这款轻量级Replay运营商应该只能为一名订户提供服务 可以找到此类运算符的一个用例here 在第一次订阅后继续缓冲只是浪费资源
  • Delphi中的串口同步

    我仍然遇到 TComPort 组件的问题 但这一次不是组件本身 而是它背后的逻辑 我有一个设备女巫通过串行端口发送一些 ascii 字符串 我需要解析这些字符串 问题是计算机反应非常快 所以在事件 char 中它只捕获字符串的一部分 字符串
  • 是否可以将 64 位 dll 加载到 32 位进程中?

    是否可以将 64 位 dll 加载到 32 位进程中 一般来说 我知道这不可能发生 然而 也许有一些例外 不可以 64 位进程都无法加载 32 位 DLL 如果您使用的是 64 位操作系统 则可以在 64 位进程中加载 DLL 并通过以下方
  • 如何在单击 CursorAdapter 中的按钮时在列表视图项行中执行更新和删除操作

    在 sqlite 数据库的帮助下 我添加了板球运动员姓名 最后它在列表视图中显示了姓名 我在 CustomCursorAdapter java 中添加了更新和删除按钮 下面我发布了相应的适配器代码 自定义CursorAdapter java
  • @Nullable注解用法

    我看到java中的一些方法声明为 void foo Nullable Object obj 是什么意思 Nullable这里 这是否意味着输入可以是null 如果没有注解 输入仍然可以为null 所以我猜不仅仅是这样 它清楚地表明该方法接受
  • 将点击事件添加到 IOS NSMutableAttributedString

    我有一个 NSMutableAttributedString 例如 鲍勃喜欢你的照片 我想知道是否可以向 Bob 和 图片 添加两个不同的点击事件 理想情况下 点击 Bob 将呈现一个带有 Bob 个人资料的新视图控制器 点击 图片 将呈现
  • JavaScript 中如何检查对象是否具有任何属性?

    假设我声明 var ad 如何检查该对象是否包含任何用户定义的属性 您可以使用内置的Object keys方法获取对象上的键列表并测试其长度 var x some code where value of x changes and than
  • 当开发名称以数字开头时,Android studio中的包名称?

    我想以我公司的名义创建应用程序 Android Studio 建议使用您的域名 例如 域名 example com 应用程序 我的应用程序 给出 com example myApp 的包名称 没关系 但我的公司名称以数字开头 Android
  • 如何在 Spotfire 中显示前 10 个列值

    我需要使用 Spotfire 显示前 10 个值 我用谷歌搜索了很多 但找不到最好的解决方案 我按照这个教程进行操作 创建动态前十图表但没有找到成功 我怎样才能做到这一点 如何通过前 10 个值限制可视化 有两种方法可以做到这一点 我将列出
  • django-postman扩展了一个不存在的base.html

    我已经安装并配置了django postman基于文档 in urls py在我的项目的根目录中 r messages include postman urls 在设置 py中 INSTALLED APPS django contrib a
  • php - move_uploaded_file - 为什么它很重要?

    我无法想象为什么我应该使用这个函数而不是简单的重命名 手册写道 移动上传文件 该函数检查以确保 filename 指定的文件 是一个有效的上传文件 意味着它是通过 PHP 的 HTTP 上传的 POST 上传机制 如果文件有效 它将被移动到
  • sscanf 函数更改另一个字符串的内容

    我在读取字符串时遇到问题sscanf 我简化了代码以专注于问题 下面是整个代码中的一个函数 它应该打开一个文件并读取一些内容 但sscanf表现得很奇怪 例如我声明一个名为atm与内容 ATOM 之前sscanf它将这个字符串打印为ATOM
  • 如何通过java代码连接sql server?

    我正在创建需要将我的服务连接到 sql server 的应用程序 当我添加依赖后运行测试代码时 它运行成功 这是成功运行的测试代码 import java sql Connection import java sql DatabaseMet