标签: sqljdbc

运行JAR时ClassNotFoundException,在IntelliJ IDEA中运行时没有错误

我刚刚开始构建Java应用程序(我确实有.NET经验),我正在尝试构建一个小型测试应用程序,其整个代码是这样的:

package com.company;

import com.microsoft.sqlserver.jdbc.SQLServerDataSource;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class Main {

    public static void main(String[] args) throws SQLException {
        System.out.println("Buna lume!");

        SQLServerDataSource ds = new SQLServerDataSource();
        ds.setIntegratedSecurity(true);
        ds.setServerName("localhost");
        ds.setPortNumber(1433);
        ds.setDatabaseName("Test");
        Connection con = ds.getConnection();

        String SQL = "SELECT * FROM Test WHERE ID = ?";
        PreparedStatement stmt = con.prepareStatement(SQL);
        stmt.setInt(1, 2);
        ResultSet rs = stmt.executeQuery();

        while (rs.next()) {
            System.out.println(rs.getInt(1) + ", " + rs.getString(2));
        }
        rs.close();
        stmt.close();

        con.close();
    }
}
Run Code Online (Sandbox Code Playgroud)

如果我在IDE(IntelliJ IDEA 12.1.6社区版)中运行该应用程序,使SQL Server可用,该应用程序运行正常,它应该做到这一点. …

java jar intellij-idea sqljdbc classnotfoundexception

16
推荐指数
2
解决办法
3万
查看次数

jboss 7 AS数据源的sqlserver

我在独立模式下运行jboss并将数据源设置standalone.xml为以下内容:

<datasource jndi-name="MyDenaliDS" pool-name="MyDenaliDs_Pool" enabled="true" jta="true" 
                                                   use-java-context="true" use-ccm="true">
    <connection-url>
        jdbc:sqlserver://myip:1433;databaseName=mydb;integratedSecurity=true
    </connection-url>
    <driver>
        sqljdbc
    </driver>
    <security>
        <user-name>
            username
        </user-name>
        <password>
            password
        </password>
    </security>
</datasource>
<drivers>
    <driver name="sqljdbc" module="com.microsoft.sqlserver.jdbc">
        <driver-class>
            com.microsoft.sqlserver.jdbc.SQLServerDataSource
        </driver-class>
    </driver>                    
</drivers>
Run Code Online (Sandbox Code Playgroud)

在文件夹中%jbosshome%\modules\com\microsoft\sqlserver\jdbc\我有sqljdb4.jar以下内容module.xml:

<?xml version="1.0" encoding="UTF-8"?>
<module name="com.microsoft.sqlserver.jdbc" xmlns="urn:jboss:module:1.0">
    <resources>
        <resource-root path="sqljdbc4.jar"/> 
     </resources>
     <dependencies>
        <module name="javax.api"/>
        <module name="javax.transaction.api"/> 
     </dependencies>
</module>
Run Code Online (Sandbox Code Playgroud)

当我启动jboss时它会给我以下错误:

> New missing/unsatisfied dependencies:    service
> jboss.jdbc-driver.sqljdbc (missing)
Run Code Online (Sandbox Code Playgroud)

任何人都知道我做错了什么或我错过了什么?

jboss datasource sqljdbc jboss7.x

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

驱动程序无法使用安全套接字层(SSL)加密与SQL Server建立安全连接

我使用此代码创建到SQL Server的连接.

String connectionUrl = "jdbc:sqlserver://IP:1433;" +
        "databaseName=db;user=db;password=pwd";
    Connection con = null;
  try {
     // Establish the connection.
     Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
     con = DriverManager.getConnection(connectionUrl);
        return "true";
  }

  // Handle any errors that may have occurred.
  catch (Exception e) {
     e.printStackTrace();
  }
Run Code Online (Sandbox Code Playgroud)

但我得到了这个错误:

com.microsoft.sqlserver.jdbc.SQLServerException:驱动程序无法使用安全套接字层(SSL)加密与SQL Server建立安全连接.错误:"套接字已关闭".ClientConnectionId:5975fad5-8f8d-496A-a2bb-bff3a8d1a755

有谁能够帮我?提前致谢

java sql sql-server android sqljdbc

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

org.h2.jdbc.JdbcSQLException:找不到架构"DBO"

这是WildFly 10.0Hibernate版本不匹配的后续问题.

为了完整起见,请简要地重述问题.我有2个项目,一个是普通的java项目(有maven):, core另一个是非maven动态web项目:webapi.后者充当了休息层core.

core使用hibernate没有任何问题.它定义persistence.xml(内部src/META-INF/)如下:

<?xml version="1.0" encoding="utf-8"?>

<persistence xmlns="http://java.sun.com/xml/ns/persistence"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
    version="2.0">

    <persistence-unit name="app" transaction-type="RESOURCE_LOCAL">

        <class>data.entities.Anything</class>
        <class>data.entities.Something</class>

        <properties>
            <property name="javax.persistence.jdbc.driver" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"></property>
            <property name="javax.persistence.jdbc.url" value="jdbc:sqlserver://localhost;databaseName=AppDb"></property>
            <property name="javax.persistence.jdbc.user" value="****"></property>
            <property name="javax.persistence.jdbc.password" value="****"></property>
            <property name="hibernate.default_schema" value="dbo"></property>           
            <property name="hibernate.dialect" value="org.hibernate.dialect.SQLServer2008Dialect"></property>
            <property name="hibernate.hbm2ddl.auto" value="update"></property>
            <property name="jboss.as.jpa.providerModule" value="org.hibernate:5.2.4.Final" />
        </properties>
    </persistence-unit>
</persistence>
Run Code Online (Sandbox Code Playgroud)

corewebapi现在正在使用hibernate-core 5.2.4.Final,使用maven和WildFly模块安装为描述这里分别.

但是,现在当我部署webapi到WildFly 10.0时,我收到以下错误:

[org.jboss.as.server.deployment](MSC服务主题1-8)WFLYSRV0027:开始部署"webapi.war"(运行时名称:"webapi.war")

[org.jboss.as.jpa](MSC服务主题1-1)WFLYJPA0002:为应用程序读取persistence.xml

[org.jboss.as.jpa](ServerService线程池 - …

java hibernate jpa sqljdbc wildfly

9
推荐指数
1
解决办法
2690
查看次数

sqljdbc:JDBC驱动程序sqljdbc.jar与sqljdbc4.jar

我有一个关于jars sqljdbc.jar和sqljdbc4.jar的查询,它们分别用于连接到JDK版本1.5和1.6的系统的MS SQL Server 2005.现在我想知道,当尝试使用sqljdbc从JDK版本为1.5和1.6的系统进行访问时,这些jar如何解释MS SQL Server 2005中某个DB表中数据类型为"XML"的列. jar和sqljdbc4.jar分别?

使用sqljdbc.jar和sqljdbc4.jar解释XML数据类型有什么不同吗?

非常感谢你提前,

此致,Laaksha

sqljdbc

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

Java7 sqljdbc4 - getConnection()上的SQL错误08S01

我正在尝试编写一个非常简单的GUI应用程序,用于将一些记录插入数据库,并读回一些记录(没什么特别的,只有1个表有3行,没有关系).来源...

package EntryProg;
import java.sql.*;
import com.microsoft.sqlserver.jdbc.*;



public class CourseDataEntryHandler
{
    private Connection connect;
    private CallableStatement callState;
    private ResultSet rSet;
    private SQLServerDataSource dSource;

    public CourseDataEntryHandler()
    {
        rSet = null;
        callState = null;

        dSource = new SQLServerDataSource();
        dSource.setUser(REDACTED);
        dSource.setPassword(REDACTED);
        dSource.setServerName(REDACTED);
        dSource.setPortNumber(REDACTED);
        dSource.setDatabaseName(REDACTED);
        dSource.setEncrypt(true);
        dSource.setTrustServerCertificate(true);
        try
        {
Run Code Online (Sandbox Code Playgroud)

这里错了

            connect = dSource.getConnection();
Run Code Online (Sandbox Code Playgroud)

结束错误

        }
        catch (SQLServerException e)
        {
            //TODO Figure out how to handle -- logging for now, console
            do
            {
                System.out.println(e.getErrorCode());
                System.out.println(e.getMessage());
                System.out.println(e.getSQLState());
                e = (SQLServerException) e.getNextException();
            } while (e != null); …
Run Code Online (Sandbox Code Playgroud)

java sql-server-2008 sqljdbc

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

让JTDS驱动程序接受sendStringParametersAsUnicode = false的问题?

从我的所有应用程序使用net.sourceforge.jtds.jdbc.Driver作为我的MSSQL驱动程序.我在准备好的语句中遇到了性能问题,并了解到sendStringParametersAsUnicode = false应该可以解决问题.不幸的是,我似乎无法让司机接受这个价值.我可以得到Microsoft驱动程序com.microsoft.sqlserver.jdbc.SQLServerDriver接受参数就好了:

jdbc:sqlserver://servername:1433;databaseName=dbname;sendStringParametersAsUnicode=false
Run Code Online (Sandbox Code Playgroud)

在persistence.xml和我的ds.xml中工作.准备好的陈述很快就会在22秒内完成.

但是,我似乎无法从JTDS获得相同的性能提升.它仍然围绕着准备好的语句,每次迭代需要几秒钟.

我在字符串上尝试了几种变体,并且在我的测试中看到了相同的延迟(使用Hibernate.connection.url的persistence.xml)和使用JTA和ds.xml的服务器.

jdbc:jtds:sqlserver://server:1433/dbname;sendStringParametersAsUnicode=false

jdbc:jtds:sqlserver://server:1433;sendStringParametersAsUnicode=false;databaseName=dbname

jdbc:jtds:sqlserver://server:1433;sendStringParametersAsUnicode=false;selectMethod=cursor;socketKeepAlive=true;databaseName=dbname
Run Code Online (Sandbox Code Playgroud)

我读过的所有内容都表明Microsoft驱动程序速度较慢,而且我的公司过去也遇到过问题.如果可能的话,我真的很想使用JTDS,但是不能等待准备好的声明10秒!

有人有什么想法吗?

谢谢

java sql-server hibernate jtds sqljdbc

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

此驱动程序未配置为集成身份验证

尝试使用sqljdbc41for将我的 Java Web 应用程序与 MS-SQL 服务器连接起来jdk 1.8。这是数据库连接代码-

    Connection connection;
    String url = "jdbc:sqlserver://localhost:1433;databaseName=Lista;integratedSecurity=true";
    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
    connection = DriverManager.getConnection(url);
Run Code Online (Sandbox Code Playgroud)

当我尝试向数据库中插入一些值时,例如 -

    PreparedStatement ps = connection.prepareStatement("INSERT INTO user_informations VALUES(?,?,?)");

    ps.setString(1, "value");
    ps.setString(2, "value");
    ps.setString(3, "value");

    ps.executeUpdate();
Run Code Online (Sandbox Code Playgroud)

每次都收到以下错误-

com.microsoft.sqlserver.jdbc.SQLServerException: 此驱动程序未配置为集成身份验证

以下是有关我尝试过的内容的一些信息-

  • sqljdbc41在路径变量中添加了路径。
  • sqljdbc_auth.dll在路径变量中添加了路径。
  • 我已将其添加sqljdbc41.jar到我的Nebeans项目库中。
  • 我已经添加了sqljdbc_auth.dll下到两个bin文件夹jdkjre
  • jdk就是64 bit在Program Files文件夹没有程序文件(x86)的。
  • jdbc 驱动程序文件夹也在程序文件目录中。
  • sql server 和 sql server 浏览器服务也在运行。

编辑

现在我遇到了一个新事物 - 在我第一次部署项目时重新启动我的电脑后,它运行良好,但是当我对代码进行任何更改并重新运行该项目时,它无法正常工作!

java sql-server servlets glassfish sqljdbc

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

在代码上获取ClassNotFoundException:"Class.forName("com.microsoft.sqlserver.jdbc.SqlServerDriver");"

这是我的第一个Java应用程序,我对JavaNetBeans完全缺乏经验.

我一直在尝试连接到sql并获取一些记录2天.问题是关于jdbc驱动程序,让我解释一下.我已经下载了sqljdbc驱动程序,然后按照以下步骤操作:

右键单击Project-> Select Properties->在左侧单击Libraries-> Compile选项卡 - 单击Add Jar/Folder按钮并选择sqljdbc4.jar文件.那应该没问题吧?

然后我写了这段代码但是我无法摆脱这个异常:

  Exception in thread "main" java.lang.ClassNotFoundException: 
  com.microsoft.sqlserver.jdbc.SqlServerDriver
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:190)
at javaapplication1.JavaApplication1.main(JavaApplication1.java:30)
Run Code Online (Sandbox Code Playgroud)

这是代码

public static void main(String[] args) throws ClassNotFoundException, SQLException {
    String url = "jdbc:sqlserver://.\\SQLEXPRESS;databaseName=Northwind; Integrated Security = SSPI ";

    Connection con = null;
    Statement stmt = null;

    ResultSet rs = …
Run Code Online (Sandbox Code Playgroud)

java classpath sqljdbc classnotfoundexception

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

SQL Server 2005 到 2012 com.microsoft.sqlserver.jdbc.SQLServerException:不允许从数据类型 varbinary 到 datetime2 的隐式转换

我们正在从 SQL Server 2005 迁移到 2012。其中一项功能因此错误而失败

com.microsoft.sqlserver.jdbc.SQLServerException:不允许从数据类型 varbinary 到 datetime2 的隐式转换。使用 CONVERT 函数运行此查询。

我们用来SQLJDBC driver 3.0与 SQL Server 2012 进行通信。当我们尝试将 NULL 值插入列DATETIME(可为空)时,我发现会发生此问题。但在 2005 年也同样有效。对于此问题的任何帮助,我们将不胜感激。

这是一个INSERT使用 MyBatis ORM 从 Java 到 SQL Server 2012 失败的简单语句:

Insert into temp_test (date1, name, date2) values ('2010-10-10 00:00:00.0','test',null) 
Run Code Online (Sandbox Code Playgroud)

当我们尝试从我们的应用程序(使用 SQL JDBC 驱动程序)时,此插入失败...但是相同的代码库在 SQL 2005 中可以正常工作,没有任何问题。

sql-server-2005 sqljdbc mybatis sql-server-2012

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