JDBC批处理INSERT,RETURNING IDs
有什么方法可以使用返回进入受影响的行的值? 我必须插入相同的行X次并获取插入行的ID. 查询看起来如下: public static final String QUERY_FOR_SAVE = "DECLARE " + " resultId NUMBER ; " + "BEGIN " + " INSERT INTO x " + " (a, b, c, d, e, f, g, h, i, j, k, l, m) " + " values (sequence.nextVal, :a, :b, :c, :d, :e, :f, :g, :h, :i, :j, :k, :l) " + " RETURNING a INTO :resultId;" + "END;"; 现在,我可以使用AddBatch 将其添加到批处理
0 2024-04-05
编程技术问答社区
从java应用程序中批量插入数据库的不同方法
我正在寻找从Java应用程序中执行批量插入到数据库(例如SQL Server 2012)的不同方法.我需要非常有效地将大量实体插入数据库中,而无需与实体呼叫那么多的数据库. 我的要求是执行实体的大量插入,其中数据库中的实体插入物可能涉及将数据插入一个或多个表中.以下是我能想到的两种方法: 动态生成一批SQL语句,并通过使用本机JDBC支持来对数据库执行. 构造所有实体的XML表示,然后通过传递生成的XML来调用存储过程.存储的过程负责解析XML并将实体插入数据库. 我是Java的新手,对可用框架没有足够的了解. IMO,上述两种方法似乎很幼稚,并且不利用可用框架. 我要求专家分享不同的批量插入方式以及其优点和缺点.我对Mybatis,Spring-Mybatis,Spring-JDBC,JDBC,JDBC等开放,这可以有效地解决问题方式. 谢谢. 解决方案 我有一个演示,JDBC批处理处理 文件:demo.txt 内容 1899942,demo
0 2024-04-05
编程技术问答社区
一个数据库连接应该一直保持开放状态,还是只在需要时才打开?
我有一个需要与数据库的连接的Bukkit插件(Minecraft). 数据库连接应始终保持打开,还是在需要时打开和关闭? 解决方案 数据库连接只有在需要并在完成所有必要的工作后关闭时才能打开数据库连接.代码样本: Java 7: Connection con = null; try { con = ... //retrieve the database connection //do your work... } catch (SQLException e) { //handle the exception } finally { try { if (con != null) { con.close(); } } catch (SQLException shouldNotHandleMe) { //.
4 2024-04-05
编程技术问答社区
如何在Gradle项目中使用Oracle JDBC驱动
我是Gradle项目的新手,我有一个问题.我已经在互联网上搜索了,但是我找不到我需要的东西,或者也许我不知道该如何搜索. 首先,我要告诉你我的案子.我有一个Gradle项目,将来我想与Jenkins一起执行几个自动测试,但是现在我想尝试Eclipse. 我在/lib目录中有Oracle JDBC驱动程序,这是我的build.gradle apply plugin: 'java' // In this section you declare where to find the dependencies of your project repositories { jcenter() //mavenCentral() } // In this section you declare the dependencies for your production and test code dependencies { compile 'org.slf4j:
0 2024-04-04
编程技术问答社区
将csv加载到mysql表中
我正在遇到我正在处理的Java-CSV-MYSQL GUI应用程序的问题. 我将在以下功能中分解应用程序: 1.使用Jfilechooser选择CSV, 2.阅读CSV 3.将CSV导入MySQL表 4.将CSV内容导入到表中. 我设法使它执行以下功能. 1.选择一个CSV文件 2.读取CSV文件...-仅读取一行 3.显示读取记录 我有以下问题 1.阅读"全部" CSV中的记录 2.上传到CSV. 我得到的错误是arrayindexoutofboundsexception:3 这是由于读取了CSV. CSV具有以下格式: 2018/01/25,58,294616/0 2018/01/27,102,298970/0 CSV在读取CSV时需要执行以下操作 1.阅读CSV, 2.将最后一列分开,该列将被A'/'. 分开 这将导致有4列而不是3列. 这是我到目前为止的代码. public class Payment_import_
4 2024-04-04
编程技术问答社区
如何在java中为jdbc连接从tomcat的context.xml中传递加密相关属性?
我们在struts2中开发了一个应用程序.使用的应用程序服务器是WebLogic.我们正在使用Sybase ASE数据库.我们正在使用普通的JDBC连接到数据库. 最近,我们打开了WebLogic Server中的加密.因此,我们添加了3个属性 key="ENCRYPT_PASSWORD" value="true" key="JCE_PROVIDER_CLASS" value="org.bouncycastle.jce.provider.BouncyCastleProvider" key="RETRY_WITH_NO_ENCRYPTION" value="true" 在产品环境中使用了WebLogic服务器.在Weblogic中,它运行良好.但是我们使用Tomcat 7.0进行本地开发.在tomcat中,我们使用context.xml和以下标签.
2 2024-04-03
编程技术问答社区
存储的功能-发送/接收布尔-BD
找到了解决方案,请参见Bellow* 我正在尝试通过SimpleJDBCCALL(使用Java + JPA)执行存储的函数,但我无法执行,它显示了: [Request processing failed; nested exception is org.springframework.jdbc.UncategorizedSQLException: CallableStatementCallback; uncategorized SQLException for SQL [{? = call PK_BACKOFFICE.SET_PROFESSIONAL(?, ?, ?, ?, ?, ?, ?, ?, ?, ?)}]; SQL state [null]; error code [17004]; Invalid column type; nested exception is java.sql.SQLException: Invalid column type] with ro
4 2024-04-01
编程技术问答社区
为什么Oracle'的JDBC驱动程序不支持Oracle'的布尔类型?
我是JDBC的新手,并且一直在玩它.论坛中的其他帖子表明,Oracle的JDBC驱动程序不支持Oracle PLSQL布尔类型.我发现真的很奇怪: 来自 Oracle JDBC Document IT好像确实如此: 但在它不允许将布尔参数传递到PL/SQL存储过程中. 文档本身不是矛盾的吗? 它不允许我通过PL/SQL过程/函数通过或接受布尔值.它给我以下例外: Exception occured in the database Exception message: Invalid column type: 16 Database error code: 17004 java.sql.SQLException: Invalid column type: 16 at oracle.jdbc.driver.OracleStatement.getInternalType(OracleStatement.java:3963) at oracle.jd
4 2024-04-01
编程技术问答社区
在Java中向一个新的Blob写东西
我希望能够创建一个新的斑点对象,然后写入它.最初,我对此的一般计划如下: 创建一个新的斑点(null,因为没有斑点构造函数) 创建一个新的OutputStream并将其设置为blob.setbinarystream(0) 写入输出流. 但是,当我尝试执行此代码时,我会得到一个NullPoInterException.我应该采取不同的方式吗?任何帮助,将不胜感激. 谢谢! 〜B 解决方案 java.sql.Blob是一个接口,而不是类,因此不存在构造函数.但是您可以实例化实现类SerialBlob,该类允许您从字节数组构造斑点. 其他解决方案 创建一个新的blob(null,因为没有斑点构造函数)创建一个新的outputStream并将其设置为blob.setbinarystream(0)写入输出流. 但是,当我尝试执行此代码时,我会得到一个NullPoInterException. 是的,这不足为奇 - 当您尝试调用null变量的方
2 2024-04-01
编程技术问答社区
从数据库中获取BLOB,如何把它们放回去
我从数据库中获取了blob数据,然后使用以下代码将其放入字符串中(RS是结果集,文件是映射),是否有办法将此字符串值放回斑点列? Blob blob = rs.getBlob("FILE_DATA"); if(blob != null) { byte[] bdata = blob.getBytes(1, (int) blob.length()); String data = new String(bdata); file.put("FILE_DATA", data); } 我尝试了一些这样的建议,但是它们效果不佳. Blob blbVal = getConnection().createBlo
4 2024-04-01
编程技术问答社区
在JDBC中,将blob插入oracle的最佳方式是什么?
我有一个Java代码,该代码应将字节阵列插入到Oracle数据库中. 功能签名为: void loadBlob(Connection connection, byte[] byteData, PreparedStatement ps) {...} 字节阵列作为参数传递(无需从任何源/流读取). PS是使用: 创建的 connection.prepareStatement("insert into mytable values(?)") mytable脚本是:create table mytable (myblob blob) 有很多加载斑点的方法: 使用标准JDBC BLOB对象 Blob blob = connection.createBlob(); blob.setBytes(1, byteData); ps.setBlob(1, blob); ps.execute(); blob.free(); 使用Oracle的特定对象 Blo
2 2024-04-01
编程技术问答社区
如何通过JDBC向MariaDB传输数据流
我想使用MariaDB连接器将BLOB数据存储到MariaDB中,然后尝试找到最有效的解决方案.现在,我正在使用setBlob()或setBinaryStream()存储数据的方法.但是,与数据库直接流到数据库相比,它是如此慢.我将流媒体用于Oracle数据库,一切都可以快速,完美地工作.但是,由于我将数据库更改为MariaDB,因此直接流不起作用. 直接流的代码如下: Blob localBlob = lrs.getBlob("MyData"); try { los = localBlob.setBinaryStream(1); } catch (Throwable t) { } int countBytesRead; // md5 hash InputStream dis = new DigestInputStream(inputSt
2 2024-04-01
编程技术问答社区
通过Spring从PL/SQL读取Blob
我正在尝试检索斑点值Thorugh PL/SQL,Spring和JDBC. 这是我的PL/SQL function GETBLOB(pjobid in number) RETURN bobrecCur is vbobrecCur bobrecCur; begin OPEN vbobrecCur FOR SELECT jobid, filecontent FROM TESTBULKJOBDATAFILE WHERE jobid = pjobid; RETURN vbobrecCur; end GETBLOB 我的Java代码是 this.getDataJdbcCall = new SimpleJdbcCall( this.jdbcTemplate ) .withFunctionName( SQL_READ_DATA ) .withou
2 2024-04-01
编程技术问答社区
Java/JDBC/SQLite--关于更新BLOB的问题
我在更新斑点方面存在问题,问题是pst.executeUpdate不执行,如果我拿出与blob/tryinng相关的所有内容以更新斑点以更新其他所有内容,姓名,地址等.一切都应尽其所能,问题只是斑点. updateEmployee.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub Connection connection = null; PreparedStatement pst = null; try { Class.forName("org.sqlite.JDBC");
2 2024-04-01
编程技术问答社区
传递给Spring JDBC LobHandler后关闭Java InputStream?
通过在spring jdbc lobcreator.setblobasbinarystream(,)中,它需要手动关闭Java中的inputstream(bean.getContentAsstream())在此类代码中? getJdbcTemplate().execute( "INSERT INTO file (" + "id, " + //1 "FILE_DATA) " + //2 " VALUES (?, ?)", // lobhandler is instance of org.springframework.jdbc.support.lob.OracleLobHandler new AbstractLobCrea
2 2024-04-01
编程技术问答社区
在jdbc中创建一个随机blob并将其写入oracle中
我想在java [在内存]中创建许多斑点,然后将其写入Oracle表. 我想要的是blob [其中的位]是随机的或sudo随机的,因此Oracle将斑点存储到表中时将无法进行大量的预选. 之类的东西 for(1..1000000) { blob = createRandomBlob(sizeOfBlob); sqlText ="INSERT INTO test_blob (id, blob) VALUES(i, blob)"; stmt.executeUpdate(sqlText); } 有人可以指出我可以用什么Java API来创建这种斑点[在内存而不是在磁盘上]并将其写入DB? ? 谢谢 解决方案 我认为这应该做技巧 byte[] data = new byte[10000]; fRandom.nextBytes(data); try { SerialBlob fSerialBlob = new Seri
2 2024-04-01
编程技术问答社区
读取Blob文件而不将其保存为文件
我计划使用一个公共密钥对字符串进行加密,该键存储在数据库中. public static void readBlob(int userid, String filename) throws SQLException, IOException { String url = "jdbc:mysql://localhost:3306/bank"; String user = "root"; String password = "root"; String email=null; Connection conn = DriverManager.getConnection(url, user, password); String sql = "select * from users where user_id=?"; PreparedStatement sta
4 2024-04-01
编程技术问答社区
创建blob(Oracle)返回 "JDBC驱动程序没有实现该方法"(Jboss eap 5.1)。
我有 blob bl = pstmt.getConnection().createblob();试图在Oracle中创建/保存斑点的代码: 返回以下错误: "方法不是由JDBC驱动程序实现的" 那是我收到的信息,看不到更多. 该应用程序在JBOSS EAP 5.1中,具有以下更改: -jboss-common-jdbc-wrapper.jar-更改 - > jboss-as-connector-6.1.0.final-jboss-jboss-common-jdbc-wrapper.jar - 服务器/all/lib/ojdbc6.jar 哪个可能是问题? 解决方案 这是JDBC版本/JDBC驱动程序不匹配. JDBC级别4中添加了Connection.createBlob()方法,OJDBC6 JAR应该支持:请参见支持JDBC 4 在Oracle"数据库"数据库JDBC开发人员指南和参考文档(Oracle 11G版本1)中. 您说您正在使用ojdbc6.
6 2024-04-01
编程技术问答社区
输出流到DB2数据库表中的BLOB列
在DB2数据库中,我有下表: CREATE TABLE MyTestTable ( MYPATH VARCHAR(512) NOT NULL, MYDATA BLOB, CONSTRAINT MYTESTTABLE_PK PRIMARY KEY (MYPATH) ); 使用Java,我希望使用新的BLOB数据更新此表中的现有行.我首选的方法是获取Blob列的输出流并将我的数据写入输出流. 这是我正在使用的测试代码: Connection connection = null; PreparedStatement pStmnt = null; ResultSet rSet = null; try { connection = ... // get db connection String id = ... // set the MYPATH value String sql = "SELECT MYDATA
6 2024-04-01
编程技术问答社区
如何使用Java从blob中插入和检索pdf?
我正在尝试构建一些使用JDBC的Java代码: 1)将PDF插入mySQL的longblob列,并将文件名插入varchar列中. 2)使用文件名检索PDF(认为它是主要键),并将其显示给用户. 从上面可以明显看出,我的表有两个列: filename pdf_file -------- --------- stock stock.pdf kids kid.pdf 这是我编写的代码: private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) { JFileChooser chooser = new JFileChooser(); chooser.showOpenDialog(null); File f = chooser.
4 2024-04-01
编程技术问答社区