标签: mssql-jdbc

类路径设置,但是:java.lang.ClassNotFoundException:com.microsoft.sqlserver.jdbc.SQLServerDriver

好的,我很困惑.我的SQL Server JAR在这里:

     Volume in drive C has no label.
 Volume Serial Number is 8008-2D93

 Directory of c:\temp

03/07/2014  09:38 AM    <DIR>          .
03/07/2014  09:38 AM    <DIR>          ..
03/05/2014  10:34 PM           222,417 output.exd
02/17/2012  02:45 PM           563,117 sqljdbc.jar
02/17/2012  02:45 PM           584,207 sqljdbc4.jar
               3 File(s)      1,369,741 bytes
               2 Dir(s)  21,865,553,920 bytes free
Run Code Online (Sandbox Code Playgroud)

我的Classpath设置为:

C:\WINDOWS\system32>echo %CLASSPATH%
.;C:\Program Files (x86)\Java\jre7\lib\ext\QTJava.zip;c:\temp\sqljdbc4.jar
Run Code Online (Sandbox Code Playgroud)

它是一个JDBC 4.0驱动程序,所以我不需要这样做,但我已经尝试设置类名.

Properties connectionProps = new Properties();
            connectionProps.put("user", this.jdbcUser);
            connectionProps.put("password", this.jdbcPass);
            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
            conn = DriverManager.getConnection(this.jdbcUrl, connectionProps);
Run Code Online (Sandbox Code Playgroud)

我仍然执行我的程序,我收到错误:

java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver

C:\WINDOWS\system32>java -jar "C:\Users\MYUSER\Documents\NetBeansProjects\myappSource\dist\myappSource.jar" …
Run Code Online (Sandbox Code Playgroud)

java jdbc mssql-jdbc sql-server-2012-express

6
推荐指数
1
解决办法
5万
查看次数

我不能让sqljdbc使用AD用户名/密码

我需要连接到高可用性(HA)/灾难恢复(DR),也称为HADR,使用来自Linux上的Java的AD帐户启用SQL Server 2012.

  • integratedSecurity 不是一个选项,因为它在Linux上运行
  • 我不能使用jTDS JDBC驱动程序,因为它不支持HADR集群(不支持multiSubnetFailover=true)

jTDS实际上使用用户名,密码和域连接字符串参数,但超过25%的时间.

所以我似乎坚持使用MS SQL JDBC驱动程序,但我不能只使用用户名/密码凭据,因为我试图在没有Kerberos的情况下解决这个问题.

必须有可能(理论上),因为jTDS实际上可以做到这一点!

我发现驱动程序版本6.0具有属性,authentication=ActiveDirectoryPassword所以它看起来很有前途,但是一个SQL连接字符串就像

jdbc:sqlserver://server:port;database=DB;authentication=ActiveDirectoryPassword;username=name;password=PASSWORD
Run Code Online (Sandbox Code Playgroud)

即使尝试使用DOMAIN\username用户名或用户属性,也无法正常工作.

文档说它的原因

使用Azure AD主体名称和密码

但它会让我的生活变得如此简单.

我得到的错误是

用户''登录失败

并显示空用户,但单步执行反编译代码我可以看到用户名和密码值正被加载到变量中.

对此有何解决方案?我将任何AD用户名/密码连接到纯JAVA的HADR SQL Server 2012.

java connection-string database-connection jdbc mssql-jdbc

6
推荐指数
0
解决办法
663
查看次数

调用仅指定带有值的参数的存储过程

在 SQL Server 2016 的一个实例中,我有一个包含数十个参数的存储过程。例如:

CREATE PROCEDURE spName (
    @par1 INT = NULL,
    @par2 VARCHAR(10) = NULL,
        ....
        ....
    @par98 INT = NULL,
    @par99 INT = NULL,
) AS
BEGIN
    ....
    ....
END
Run Code Online (Sandbox Code Playgroud)

我有一个用 C# 编写的客户端,它调用仅指定带有值的参数的存储过程。前任:

SqlCommand cmd = new SqlCommand();

cmd.CommandText = "spName";
cmd.CommandType = CommandType.StoredProcedure;
cmd.Connection = dbConn;

cmd.Parameters.Add(new SqlParameter("par1", "val1"));
cmd.Parameters.Add(new SqlParameter("par47", "val47"));

...

cmd.ExecuteNonQuery();
Run Code Online (Sandbox Code Playgroud)

它工作完美!因此,该过程被执行,并且只有 2 个参数(par1 和 par47)具有值。其他参数保持默认值(NULL)。

我会从使用 Microsoft JDBC 驱动程序 6.2 的 Java 客户端执行相同的操作。我用 指定参数List<Map<String, Object>>,所以有一个参数名称-->参数值的列表。以下方法构建PreparedStatement对象:

private CallableStatement prepareStatement(String …
Run Code Online (Sandbox Code Playgroud)

sql-server parameters stored-procedures jdbc mssql-jdbc

6
推荐指数
1
解决办法
3391
查看次数

“ SQL错误与Node.js连接”的“ ConnectionError:已连接到数据库!在连接到其他数据库之前调用关闭”

下面是我正在使用的代码,有时它不输入.then(function(),请让我知道如何关闭现有连接,连接后我尝试了诸如conn.close()之类的各种选项,但它仍然有点工作。

var sql = require("C:/Protractor_Scripts/node_modules/mssql");

function getEmp() {
    console.log('results'); 
    var conn = new sql.Connection("Server=, 1433;Database=;User Id=;Password=;Encrypt=true");
    console.log(conn); 
    console.log(conn.connect());
    conn.connect().then(function () { 
        console.log(conn.connect()); 
        var req = new sql.Request(conn); 
        req.query("select * from").then(function (recordset) {
            console.log(recordset);   
            conn.close();
        }).catch(function (err) {
            console.log(err);   
            conn.close();
        }); 
    }).catch(function (err) {
        console.log(err);  
    });
}

getEmp();
Run Code Online (Sandbox Code Playgroud)

以下是完整的错误消息

[ConnectionError:已经连接到数据库!在连接到其他数据库之前,请先调用close。

  name: 'ConnectionError',
Run Code Online (Sandbox Code Playgroud)

消息:“已连接到数据库!在连接到其他数据库之前,请先调用关闭。',

  code: 'EALREADYCONNECTING' }
Run Code Online (Sandbox Code Playgroud)

node.js npm mssql-jdbc sql-server-2012 protractor

5
推荐指数
1
解决办法
3200
查看次数

msSql hex到base64

我有一个sql数据库,jpeg图像存储为十六进制(0xFFD8 ...)有没有办法进行查询,其中结果将在base64而不是Hex?

试图google tho我找不到类似的东西:/

sql sql-server sql-server-2008 mssql-jdbc

5
推荐指数
2
解决办法
1285
查看次数

如何使用 DBeaver 创建 SQL Server 存储过程?

我需要使用 Dbeaver 软件在 SQL Server 中创建一个存储过程,我想知道您是否有使用该软件创建存储过程的经验,因为我使用的是 Mac,并且无法安装 SQL Server Management Studio。

情况是,我需要在分配给该用户的所有课程(大约 20 个)中更新该用户的字段。

它将是这样的:

UPDATE tablename 
SET date = '2018-03-15' 
WHERE UserID = 1234 AND ProgramID = 1234;
Run Code Online (Sandbox Code Playgroud)

它正在更新日期。

从这一点来看,我的问题是使用或其他东西会更好吗UPDATE,因为他们只需要在 UI 内查看此数据的报告?您将如何启动此过程的脚本以及您将使用什么?谢谢

sql-server stored-procedures insert mssql-jdbc dbeaver

5
推荐指数
1
解决办法
3万
查看次数

使用 Maven 设置 mssql-jdbc_auth

您好,我遇到了 mssql-jdbc_auth-<Version/Arch>.dll 的问题,如果我手动将其添加到我的路径中,它可以工作,但由于我使用 mave,这不是想要的方式:(。

我将以下几行添加到我的 pom.xml 中

    <!-- https://mvnrepository.com/artifact/com.microsoft.sqlserver/mssql-jdbc -->
    <dependency>
        <groupId>com.microsoft.sqlserver</groupId>
        <artifactId>mssql-jdbc</artifactId>
        <version>8.4.1.jre14</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/com.microsoft.sqlserver/mssql-jdbc_auth -->
   <dependency>
       <groupId>com.microsoft.sqlserver</groupId>
       <artifactId>mssql-jdbc_auth</artifactId>
       <version>8.4.1.x64</version>
       <type>dll</type>
   </dependency>
Run Code Online (Sandbox Code Playgroud)

dll已下载但似乎未加载:(,因为我仍然遇到SQLServerException :此驱动程序未配置为集成身份验证问题。我如何解决这个问题,它只与maven一起使用,而不是将所有计算机上的dll添加到小路?

maven mssql-jdbc java-14

5
推荐指数
1
解决办法
1529
查看次数

如何通过重用cfg.xml和util类来连接多个数据库?

我想连接多个数据库,如SQL和Oracle与不同的数据库.所以我已经有MSSQL hibernate.cfg.xml和Hibernateutil类用于会话工厂.现在我正在尝试连接oracle与不同的表.

请指教我可以使用相同的cgf.xml和util类也可以配置oracle数据库.

这是util类.

public class HibernateUtil {
    private static final SessionFactory sessionFactory = buildSessionFactory();

    @SuppressWarnings("deprecation")
    private static SessionFactory buildSessionFactory()
    {
        try
        {

            SessionFactory sessionFactory = new Configuration().configure("/DAO/hibernate.cfg.xml").buildSessionFactory();
            return sessionFactory;        
        }
        catch (Throwable ex) {
            System.err.println("Initial SessionFactory creation failed." + ex);
            throw new ExceptionInInitializerError(ex);
        }
    }

    public static SessionFactory getSessionFactory() {
        return sessionFactory;
    }

    public static void shutdown() {
        // Close caches and connection pools
        getSessionFactory().close();
    }

}
Run Code Online (Sandbox Code Playgroud)

java orm hibernate hibernate-mapping mssql-jdbc

4
推荐指数
1
解决办法
2万
查看次数

如何获得表上的所有约束?

我想将表元数据存储到其他表中。那么如何获取所有约束及其类型,例如 MS SQL 服务器中的主键、唯一键或外键。

表名constraint_nameconstraint_type

用户 pk_user_id PRIMARY_KEY

user_role fk_role FOREIGN_KEY

用户 unique_email UNIQUE_KEY

sql-server mssql-jdbc

4
推荐指数
1
解决办法
8315
查看次数

result_fetch(res@ptr, n)': nanodbc/nanodbc.cpp:2966: 07009: [Microsoft][ODBC Driver 13 for SQL Server]描述符索引无效

我在 R 语言中遇到 MSSQL 问题,类似于R DBI ODBC 错误:nanodbc/nanodbc.cpp:3110: 07009: [Microsoft][ODBC Driver 13 for SQL Server]Invalid Descriptor Index,但还有一点,或者我不知道不明白某事。

我与数据库有明显的联系,当我发送如下内容时,我的 SELECT 起作用:

third <- DBI::dbGetQuery(con, "SELECT TOP 1 
                         arr_delay_new,
                         fl_date,
                         carrier,
                         origin_city_name,
                         dest_city_name
                   FROM Flight_delays 
                   ORDER BY arr_delay_new DESC")
Run Code Online (Sandbox Code Playgroud)

问题出在列顺序上。我必须以其他顺序显示响应 - 像这样:

third <- DBI::dbGetQuery(con, "SELECT TOP 1 
                         carrier,
                         arr_delay_new,
                         fl_date,
                         origin_city_name,
                         dest_city_name
                   FROM Flight_delays 
                   ORDER BY arr_delay_new DESC")
Run Code Online (Sandbox Code Playgroud)

当我发送此请求时 - 出现错误:“result_fetch(res@ptr, n)': nanodbc/nanodbc.cpp:2966: 07009: [Microsoft][ODBC Driver 13 for SQL Server]无效描述符索引”

我如何设置这个或哪种解决方法可以帮助我更改订单?

我对 R 语言很陌生,很抱歉,如果它太简单了

sql r dbi mssql-jdbc

4
推荐指数
1
解决办法
6730
查看次数