草庐IT

java - 如果我们在事务执行期间杀死 JVM 进程会发生什么?

我正在使用PostgreSQL9.4。当批处理中的某些查询已经执行时,如果有人在执行事务性批处理更新(批处理大小=50)期间终止JVM进程,会发生什么情况?数据库中会有什么? 最佳答案 预期的行为是未提交的事务在数据库端超时并回滚。已提交的事务是已提交的。整合各种评论的答案:Ifsomehaveactuallyexecutedbutnotothersthenit'snotabatch.Inatransactionalbatch,eitherallofthemareexecutedinreality,ornoneofthemare.–

java - 在 JDBC ResultSet 中,当对 int 结果列调用 getLong() 或 getShort() 时会发生什么情况?

假设我有一个JDBCResultSet,我调用了getLong()或getshort()方法。对于以下哪种SQL类型{SMALLINT,INT,BIGINT}我应该得到long,对于哪些类型我应该得到错误?换句话说,如果我有一个INT并且我想要一个SMALLINT(Ashort),我会得到它,还是会得到一个错误?同样,如果我有一个INT并想要一个BIGINT(长整数),我会得到它,还是会得到一个错误?Javadocs(下面列出)什么也没说。publiclonggetLong(intcolumnIndex)throwsSQLExceptionRetrievesthevalueofthed

java - 从对象创建对象输出流

我想在ObjectOutputStream上创建,但我不想将对象持久保存在文件中,那么该怎么做呢?所有教程(我发现的)都只说文件方式:FileOutputStreamfos=newFileOutputStream("t.tmp");ObjectOutputStreamoos=newObjectOutputStream(fos);oos.writeObject(newDate());oos.close();我想将对象存储到数据库中,因此我需要在PreparedStatement类的方法setBinaryStream()中指定一个流。感谢您的回答... 最佳答案

java - 使用 CQL jdbc 驱动程序时连接字符串应该是什么

使用CQLjdbc驱动程序时,连接字符串应该是什么?我能否在Java中在线找到使用CQLJDBC驱动程序的CQL的正确/完整示例? 最佳答案 您需要来自apache站点的cqljar。这是我通过CLI输入数据后使用的基本测试(使用来自wiki的示例):publicclassCqlJdbcTestBasic{publicstaticvoidmain(String[]args){Connectioncon=null;try{Class.forName("org.apache.cassandra.cql.jdbc.CassandraDri

java - JDBC:是否仅当调用 commit() 方法不成功时,调用 rollback() 方法才有效?

我是JavaJDBC新手,开发了一个小型数据库应用程序。我正在学习O'Reilly-DatabaseProgrammingwithJDBCandJava2ndEdition。con.rollback()只有在con.commit不成功时才会生效吗?我预计即使con.commit()成功调用con.rollback()也会产生效果。换句话说,将其用作“撤消”操作。我尝试在con.commit()成功后调用con.rollback(),但它没有按预期工作。那么好/预料之中吗?这个例子来self上面提到的那本书:对con.rollback()的调用被注释掉了。在con.close()之前接近

java - 是否可以使 oracle 数据库程序忽略提交语句?

我正在开发与遗留系统集成的Java应用程序,该系统编写为OraclePL/SQL。不幸的是我无法改变这个遗留系统。该系统的问题在于,有时COMMIT语句会写入过程。但这导致我无法在我的应用程序级别正确处理事务。那么是否可以让oracle数据库程序忽略commit语句呢?我发现在连接开始时执行ALTERSESSIONDISABLECOMMITINPROCEDURE会在PL/SQL过程尝试提交时导致异常。但是是否可以让Oracle在不更改PL/SQL代码的情况下忽略提交? 最佳答案 我认为你做不到。您必须向这些过程添加一个参数,如默认值

java - Maven ojdbc jar依赖报错: package oracle. jdbc不存在

标题我正在尝试在我的JavaEE6应用程序(类名VisualizerRepository.java)中使用jdbc连接,我在nexus存储库中有jdbc驱动程序该类必须执行一个存储过程并打印该过程的结果。由于JPA2.0不支持调用过程,因此我使用jdbc。包com.nfsmith.crm.data.repository;importjava.sql.CallableStatement;importjava.sql.Connection;importjava.sql.SQLException;importjavax.sql.DataSource;importoracle.jdbc.Ora

java - ODBC 与 JDBC 性能对比

我有一项任务是将Java和C与MySQL数据库一起使用,并比较结果并给出为什么会出现这样的结果的原因。No.ofRecordsExecutiontime(ms)RecordsJavaC100586765006282162000733697500096310561000014692178如您所见,从数据库中提取的记录数量越少,C(ODBC)的性能越好。但随着记录数量的增加,Java(JDBC)胜出。我想到的原因可能是ODBC的驱动加载速度比JDBC快很多,但是JDBC的访问速度比ODBC好,所以才会有这样的结果。但是,我无法在任何地方找到这样的推理。有什么建议吗?

java - 无法获得与 PostgreSQL 的 JDBC 连接

我正在尝试建立到PostgreSQL的JDBC连接。依赖的驱动版本为:9.4-1204-jdbc42,Postgres版本为9.5.0。以下是堆栈:Causedby:java.lang.UnsupportedClassVersionError:org/postgresql/Driver:Unsupportedmajor.minorversion52.0atjava.lang.ClassLoader.defineClass1(NativeMethod)atjava.lang.ClassLoader.defineClass(ClassLoader.java:791)atjava.secur

java - 如何使用 SQL 查询转义用户提供的参数?

尝试开始使用JDBC(使用Jetty+MySQL)。我不确定如何在SQL语句中转义用户提供的参数。示例:Stringusername=getDangerousValueFromUser();Statementstmt=conn.createStatement();stmt.execute("somestatementwhereusername='"+username+"'"));我们如何在使用语句之前转义“用户名”? 最佳答案 使用Preparedstatement.例如:con.prepareStatement("updateOr