Tag: jdbc

如何使用Spring来管理与多个数据库的连接

我已经阅读了其他主题,但没有找到一个好的和明确的答案 我正在尝试开发一个能够: 1)在单独的UI数据库中记录/跟踪用户事件,我们通过hibernate与相同的数据库模式连接(可能将connectionString保存到不同的oracle数据库) 2)在运行时,当您登录时,您可以选择一个环境来连接到具有相同模式(但不是相同数据)的三个不同oracle数据库之一 3)使用用户名和密码提供正确的DataSource(从哪里获取这些敏感数据?我不会将其保存在应用程序的某处) 我是Spring框架的新手。 我发现这个链接可能是第一个领导。 有什么建议么? 还使用Spring 3.1或3.2,JDBC查询我的oracle数据库和hibernate映射到我的UI数据库。 这听起来很混乱所以我有一张照片: 基础设施

在maven项目中使用JDBC连接到Athena

我正在尝试连接到Amazon Athena,在maven项目中使用jdbc,但是正在引发exception。 我认为这个课程没有找到。 在雅典娜的指南中它说: 将JDBC属性aws_credentials_provider_class设置为等于类名,并将其包含在类路径中。 (1) 由于我正在使用eclipse,我认为该类已经在类路径中,但显然不是。 我在一个简单的java项目(不是maven)中测试了代码并且它有效。 AmazonCredentialsProvider.java : package athena; import com.amazonaws.auth.AWSCredentials; public class AmazonCredentials implements AWSCredentials { @Override public String getAWSAccessKeyId() { return “…”; } @Override public String getAWSSecretKey() { return “…”; } } AmazonCredentialsProvider.java : package athena; import com.amazonaws.auth.AWSCredentials; import com.amazonaws.auth.AWSCredentialsProvider; public class AmazonCredentialsProvider implements AWSCredentialsProvider { @Override public AWSCredentials getCredentials() […]

连接丢弃的Java应用程序处理

我的应用程序似乎一夜之间挂起,因为连接被丢弃(我认为这是问题。)我如何构建我的应用程序,以便它可以尝试卷起一个新的连接? 自从事件发生后我更新了我的应用程序使用的getConnection()方法: private Connection getConnection() { boolean failed = false; try{ failed = !connection.isValid(1000); }catch(SQLException ex){ System.out.println(“WARNING: Connection not valid!”); } try{ failed = connection.isClosed(); }catch(SQLException ex){ System.out.println(“WARNING: Connection is closed!”); } if(failed){ System.out.println(“Renewing connection”); this.initializeConnection(); } return connection; } 这是输出: ** BEGIN NESTED EXCEPTION ** com.mysql.jdbc.exceptions.jdbc4.CommunicationsException MESSAGE: The last packet successfully received from the […]

带有Statement.RETURN_GENERATED_KEYS的MySQL批处理stmt

我试图批量执行2个SQL语句。 第一个语句是一个插件,它为其ID使用自动生成的值。 第二个语句是对另一个表的插入,但它需要使用上面的自动生成值作为插入值的一部分 类似的东西(其中id只是为了显示自动生成的字段,它没有在sql中定义) stmt.addbatch(insert into table1(“id_auto_generated”, “foo”)); stmt.addbatch(insert into table2(“table1_id”, “boo”)); 我现在这样做的方法是在我的第二个sql中使用它 insert into table2(LAST_INSERT_ID(), “boo”); 问题是即使在批处理语句中它也很慢,因为我的批处理可以是50,000个插入。 我想切换到预准备语句,但不知道如何将Statement.RETURN_GENERATED_KEYS或LAST_INSERT_ID()与预准备语句一起使用。

从Servlet连接MySQL无法正常工作

我正在制作一个小应用程序,所以我可以将我的笔记从我的课程发布到服务器。 我在数据库端使用JDBC和MySQL,在应用程序端使用JSP / Servlet。 我编写了一个独立的java应用程序,它与我的servlet代码非常相似,并且工作正常; 我的servlet代码运行不正常。 属性定义: static final String DB_URL = “jdbc:mysql://localhost/DATASET”; static final String USER = “user”; static final String PASS = “pass”; Connection con = null; Statement s = null; doPost方法: final String STATEMENT = “INSERT INTO FILE(upload_time, filename, class, data) VALUES(CURTIME(), ‘” + request.getParameter(“file”) + “‘, ‘” + request.getParameter(“cls”) + “‘, […]

使用带有JDBC和SQLServer的数据库API游标来选择批处理结果

已解决(见下面的答案。) 我在正确的背景下不理解我的问题。 真正的问题是我的查询返回了多个ResultSet对象,我之前从未遇到过这个问题。 我在下面发布了解决问题的代码。 问题 我有一个包含数千行的SQL Server数据库表。 我的目标是从源数据库中提取数据并将其写入第二个数据库。 由于应用程序内存限制,我无法一次性撤回数据。 此外,由于这个特定的表的模式(我无法控制),我没有办法使用某种ID列来勾选行。 数据库管理员StackExchange的一位绅士通过组合一个称为数据库API游标的东西来帮助我,并且基本上编写了这个复杂的查询,我只需要将我的语句放入其中。 当我在SQL Management Studio(SSMS)中运行查询时,它运行良好。 我得到了所有数据,一次一千行。 不幸的是,当我尝试将其转换为JDBC代码时,我只返回前千行。 题 是否可以使用JDBC检索数据库API游标,从中提取第一组行,允许游标前进,然后一次拉出一个后续集合? (在这种情况下,一次一千行。) SQL代码 这变得复杂,所以我要打破它。 实际查询可以是简单的也可以是复杂的。 没关系。 我在实验过程中尝试了几种不同的查询,它们都有效。 您只需将其放入适当位置的SQL代码中。 所以,让我们把这个简单的陈述作为我们的查询: SELECT MyColumn FROM MyTable; 实际的SQL数据库API游标要复杂得多。 我将在下面打印出来。 您可以在其中看到上面的查询: — http://dba.stackexchange.com/a/82806 DECLARE @cur INTEGER , — FAST_FORWARD | AUTO_FETCH | AUTO_CLOSE @scrollopt INTEGER = 16 | 8192 | 16384 , — […]

在java中使用相同的数据源将两个应用程序连接到同一个数据库会有什么影响?

在同一个jboss服务器上运行有2个不同的应用程序。 我想通过相同的数据源将这两个应用程序与同一个mysql数据库连接起来。 运行这两个应用程序会产生什么样的影响 – 我想这些问题可能会发生。 – 表锁定问题,性能降低,连接问题,ACID属性丢失问题。 这种方法有什么缺点吗?

在Tomcat中的其他Web应用程序之前加载derby.war(derby servlet服务器)

Apache Derby可以选择将其“网络服务器”作为servlet容器( derby.war )中的Web应用程序运行。 问题是如何在同一容器中部署依赖于derby的其他应用程序,以便在derby加载后加载(最好在Tomcat容器中)。 据我所知,没有办法控制Tomcat中Web应用程序初始化的顺序。 有没有人让derby.war在多个Web应用程序环境中工作?

类型5 JDBC驱动程序

有没有人尝试过JDBC 5类驱动程序。 它比JDBC 4驱动程序更快吗?

用oracle预处理语句执行批处理

我尝试使用以下代码添加批量预处理语句: Connection c = … PreparedStatement ps = c.prepareStatement(query1); ps.setObject(….) … ps.addBatch(query2); // SqlException : Unsupported feature 是不是oracle jdbc驱动支持批处理,或者我做错了什么? 我正在使用oracle瘦驱动程序。 MANIFEST.MF Implementation-Version: 11.2.0.1.0 。 java.sql.SQLException: Unsupported feature at oracle.jdbc.driver.OraclePreparedStatement.addBatch(OraclePreparedStatement.java:9803) at oracle.jdbc.driver.OracleStatementWrapper.addBatch(OracleStatementWrapper.java:285) at org.jboss.resource.adapter.jdbc.WrappedStatement.addBatch(WrappedStatement.java:731) at