java.sql.SQLException : Io exception: Size Data Unit (SDU) mismatch

标签 java sql oracle jdbc

我正在尝试在独立的类中执行sql查询,下面是我的代码。我引用了一些链接,并且添加了jdbc-oracle jar和ojdbc14 jar,如图所示,我已经添加了环境中的路径变量。但我无法连接或执行查询

    package com.infomatics.orion.dao.impl;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;


public class EntityTest {


    public static void main(String[] args) 
    {
        EntityTest c1 = new EntityTest();
        c1.test();
    }
    private void test(){
         Connection con = null;
           try {
             Class.forName("oracle.jdbc.driver.OracleDriver");

                con = DriverManager.
                         getConnection("jdbc:oracle:thin:@localhost:3306:orion_db"
                             ,"root","orion123");
                  Statement stmt = con.createStatement();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (ClassNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }catch(Exception e ){
                e.printStackTrace();
            }

}

}

1 : enter image description here

java.sql.SQLException: Io exception: Size Data Unit (SDU) mismatch
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:113)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:147)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:257)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:389)
at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:454)
at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:165)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:35)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:802)
at java.sql.DriverManager.getConnection(DriverManager.java:571)
at java.sql.DriverManager.getConnection(DriverManager.java:215)
at com.infomatics.orion.dao.impl.EntityTest.test(EntityTest.java:23)
at com.infomatics.orion.dao.impl.EntityTest.main(EntityTest.java:15)

这是我在执行上述操作后遇到的异常。

最佳答案

您正在尝试使用 Oracle JDBC 驱动程序连接到 MySQL 数据库。

我在尝试使用 ojdbc14 连接到 MySQL 5.7 时遇到了该错误。

您需要使用MySQL Connector/J库而不是 ojdbc。您的连接 URL 应为 jdbc:mysql://localhost:3306/orion_db,而不是 jdbc:oracle:thin:@localhost:3306:orion_db

关于java.sql.SQLException : Io exception: Size Data Unit (SDU) mismatch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46716722/

相关文章:

java - 如何获取格式化日期?

java - AES 加密 - 密码、盐未解析?

performance - Oracle CLOB 性能

spring - 在 Oracle Timestamp 列中以 UTC 格式保存日期

java - PreparedStatement ResultSet - 列包含所选列名称作为字符串而不是所选列的实际值

Java ReSTLets——匹配任意长的URI路径参数

具有单列和增量 id 的 SQL 表

c# - SQL Server DateTime 和 C# DateTime

sql - 连接条件为 where 子句时使用的连接类型

java - JDBC获取列注释的方法