相关疑难解决方法(0)

java.lang.AbstractMethodError:oracle.jdbc.driver.T4CPreparedStatement.setCharacterStream(ILjava/io/Reader; J)V

尝试将CKEditor(用于CMS - 内容管理系统)的内容插入Oracle数据库 - Oracle 10g时,我遇到以下异常.

Oracle表中的字段是clob类型.

java.lang.AbstractMethodError:oracle.jdbc.driver.T4CPreparedStatement.setCharacterStream(ILjava/io/Reader; J)V

另一方面是当我尝试使用JSON通过AJAX将相同的内容插入数据库时​​,不会导致此异常.

我正在使用

  • 春季3.2.0
  • Hibernate 4.2.0.CR1
  • Oracle JDBC驱动程序版本 - 10.2.0.5.0
  • JDK - 1.7
  • Oracle 10g

由于我将Hibernate从3.2.5更改为4.2.0.CR1,因此导致异常

这个链接说

setCharacterStream()方法有3个版本,其中两个是作为JDBC 4.0(Java 1.6)的一部分添加的.您的JDBC驱动程序可能不支持它们:

这个答案建议升级JDBC驱动程序,但这个问题是关于我还没有使用的Oracle 11g.

我不太确定.JDBC 11.x驱动程序是否与Oracle 10g兼容?曾几何时,我曾试过一个,但它没有正常工作.

如何解决这个异常?


编辑:

我刚刚下载了 ojdbc6.jar(之前是ojdbc14.jar上面指定的驱动程序),其中包含Oracle JDBC Driver version - "11.1.0.7.0-Production".

异常异常消失了.请告诉我,如果此驱动程序版本与Oracle 10g完全兼容.

spring hibernate clob oracle10g

8
推荐指数
1
解决办法
9233
查看次数

在JDBC for Oracle中设置客户端信息

我有一个需要审计的Java应用程序(所以显然我需要一种可以使用应用程序名称识别应用程序的方法).我用Google搜索并发现ojdbc14有一个.setClientInfo允许使用自定义名称注册应用程序的方法,所以我试图让它工作,但是我收到以下错误:

线程"main"中的异常java.lang.AbstractMethodError:oracle.jdbc.driver.T4CConnection.setClientInfo(Ljava/lang/String; Ljava/lang/String;)V

我在oracle 10g express中使用ojdbc14.如果我没有设置该行:

connection.setClientInfo("ApplicationName","Customers");
Run Code Online (Sandbox Code Playgroud)

它工作得很好....通过检查审计信息我可以看到oracle获取应用程序名称:OS_program_name = JDBC瘦客户端,但我需要一种方法来更改它以获得自定义名称.

通过取消注释应该设置应用程序名称的那一行,它返回上面的错误.

每个oracle文档该方法可用于Connection对象.你知道如何解决这个问题吗?

java oracle jdbc driver

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

Java Hibernate与SQL Server 2012无法正常工作?

我有一个Java Hibernate项目配置,它与SQL Server 2008 R2一起使用,现在有了新的OS 8.1(从7开始)和SQL Server 2012(express),我无法连接到SQL服务器.

因为它适用于2008 R2 ,所以/应该在语法上正确的相关配置:

datasource.properties

jdbc.driverClassName=net.sourceforge.jtds.jdbc.Driver
jdbc.url=jdbc:jtds:sqlserver://localhost:1433/dbname;instance=SQLEXPRESS
jdbc.username=auser
jdbc.password=xyz
Run Code Online (Sandbox Code Playgroud)

我试过org.hibernate.dialect.SQLServerDialect在2008 R2工作的两种方言.

hibernate.hbm2ddl.auto=create-drop
hibernate.dialect=org.hibernate.dialect.SQLServerDialect
#hibernate.dialect=org.hibernate.dialect.SQLServer2012Dialect
hibernate.show_sql=true
Run Code Online (Sandbox Code Playgroud)

springConfiguration.xml

<bean id="dataSource" class="org.apache.tomcat.dbcp.dbcp2.BasicDataSource"> 
    <property name="driverClassName" value="${jdbc.driverClassName}" />
    <property name="url" value="${jdbc.url}" />
    <property name="username" value="${jdbc.username}" />
    <property name="password" value="${jdbc.password}" />
</bean>
Run Code Online (Sandbox Code Playgroud)

SQL Server 2012安装了混合模式身份验证,SQL Server Management Studio连接没有问题(有或没有实例名称).

我已经更新了SQL Server Network Configurationfor SQLEXPRESS.

SQLEXPRESS的协议:

TCP/IP Enabled 以及TCP/IP Properties - TCP Port到1433年的所有.

我试过禁用Windows防火墙只是为了测试它是否在路上,但它会导致相同的错误.

我最终添加了防火墙规则,并按照这个优秀的配置SQL Express 2012中的一些步骤来接受远程连接文章. …

java sql-server hibernate jtds sql-server-2012

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

为什么我一直收到"java.lang.AbstractMethodError:oracle.jdbc.driver.OracleConnection"错误?它让我疯狂..

我已经读过 为什么在尝试在db中加载blob时会得到java.lang.AbstractMethodError?,下载了我能找到的所有11g jdbc驱动程序,并将它们作为库和/或jar文件添加到我的NetBeans应用程序中.我仍然继续得到相同的AbstractMethodError,这让我变得多了!任何指导将不胜感激!

try {

    stmt = conn.createStatement();
    inputFileInputStream = new FileInputStream(inputBinaryFile);  

    Blob vBlob = conn.createBlob();
    BufferedImage vGImage=ImageIO.read(name);
    int offset =0;
    OutputStream out = vBlob.setBinaryStream(offset);
    ImageIO.write(vGImage, "JPG", out);
    PreparedStatement stat = conn.prepareStatement("INSERT INTO item VALUES (?,?,?,?,?)");
    stat.setString(1, itemNo);
    stat.setString(2, itemName);
    stat.setBlob(3,vBlob);
    stat.setString(4, invenType);
    stat.setDouble(5, vPrice);
    stat.executeUpdate();

} catch (IOException e) {
    System.out.println("Caught I/O Exception: (Write BLOB value - Put Method).");
    e.printStackTrace();
    throw e;
} catch (SQLException e) {
    System.out.println("Caught SQL Exception: (Write BLOB value - Put Method).");
    System.out.println("SQL:\n" + …
Run Code Online (Sandbox Code Playgroud)

java oracle jdbc

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

Java文件上传到MySQL

我有这个问题java.io.File从选择a JFileChooser上传所述java.io.File对象到具有此表结构的MySQL表

     COL_NAME  COL_TYPE     ATTRIBUTES        EXTRA
(PK) idSample  int(10)      UNSIGNED ZEROFILL AUTO_INCREMENT
     FileName  varchar(250)
     FileBin   blob         BINARY 
Run Code Online (Sandbox Code Playgroud)

从这个Java代码中,该newConnection方法是该类的静态方法,其中它将DriverManager的新实例默认返回到所述MySQL数据库.另一件事,我使用的java.sql包不是com.mysql.jdbc包.

public static boolean insert(final String filename, File file) throws SQLException, IOException {
    boolean flag = false;
    try {
        Connection connection = newConnection();
        PreparedStatement statement = connection.prepareStatement(SQL_INSERT);
        statement.setString(1, filename);
        statement.setBlob(2, new FileInputStream(file), file.length());
        flag = statement.executeUpdate() > 0;
        statement.close();
        connection.close();
    } catch (SQLException ex) {
        throw ex;
    } catch (IOException ex) { …
Run Code Online (Sandbox Code Playgroud)

java mysql blob jdbc r.java-file

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

使用java.sql.Connection在运行时抛出AbstractMethodError

我正在尝试创建一个非常简单的类来向Oracle XE 11g实例发送查询,实际上是创建一个非常简单的SQL*Plus来获取JDBC的基础知识.

我目前正在使用的源代码是:

public class Example {
    static String username, password;
    static String dbDriver = "oracle.jdbc.driver.OracleDriver";
    static String dbConnection = "jdbc:oracle:thin:@//localhost:1521/xe";

    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        String line;
        Connection c = null;
        Statement stmt = null;
        int loginAttempts = 0;

        // Log in loop
        do {
            try {
                Class.forName(dbDriver);
                System.out.print("Enter username: ");
                line = input.nextLine();
                if (line.contains("/")) {
                    String[] login = line.split("/");
                    if (login.length != 2) {
                        System.out
                                .println("Unrecognized information, exiting..."); …
Run Code Online (Sandbox Code Playgroud)

java oracle jdbc

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