草庐IT

java - 使用oracle jdbc连接时如何获取数据库模式名称?

我正在尝试使用DatabaseMetaData.getTables()方法获取所有数据库表。但是这种方法需要数据库模式名称模式。是否可以获取当前数据库连接的架构名称? 最佳答案 当前连接的标准模式是您用于登录的用户名。因此,如果您的用户是SCOTT,则必须使用SCOTT来DatabaseMetaData.getTables()。您可以通过DatabaseMetaData.getUserName()获取用户名。但请记住,在JDBC驱动程序中完成的模式/用户名比较是区分大小写的,通常用户名是大写的。我不能100%确定DatabaseMe

java - Spring JDBC : Returning 0 or 1 rows

我试图用谷歌搜索这个问题,但找不到:IsthererecommendedmethodinSpringjdbcTemplatewhichshouldbeusedwhenweexpect0or1rowstobereturned.当没有行返回时,queryForObject()将抛出异常。queryForList()将需要遍历列表,但这不是问题。但是很好奇是否有返回0或1行的首选/推荐方法。谢谢! 最佳答案 有DataAccessUtils.singleResult(jdbcTemplate.queryForList(...));我相信它

java - SQL异常 : No value specified for parameter 1

我在执行我的应用程序时遇到了以下错误:java.sql.SQLException:Novaluespecifiedforparameter1这是什么意思?我的dao中的UserGroup列表:publicListselect(Integervar){Listug=null;try{conn.Connection();stmt=conn.getPreparedStatement("selectid_usuario,id_grupofromusuarios_gruposwhereid_grupo='"+var+"'");ResultSetrs=stmt.executeQuery();ug=

java - ResultSet#getDate() 语义

我们从迁移到ojdbc6-11.2.0.3.0至ojdbc7-12.1.0.1并观察到​​ResultSet#getDate()的变化语义。以前是java.sql.Date根据java.sql.Date上指定的契约(Contract),通过将小时、分钟、秒和毫秒设置为零,返回的值将被“标准化”.与ojdbc7这不再是这种情况,java.sql.Date具有根据数据库中的值设置的小时、分钟、秒和毫秒。我查看了ResultSet#getDate()的Javadoc并且它没有明确说明哪种行为是正确的。我会假设旧的行为是规范的意图。我对吗?我们是否遇到了驱动程序错误?

java - Redshift 和 Postgres JDBC 驱动程序都拦截 jdbc ://postgresql connection string

我有一个不太确定如何解决的问题:我有一个Web应用程序(打包为war),客户端可以配置他们希望指向的数据库。我们支持PostgreSQL和Redshift(以及其他)。JDBC4驱动程序会自动加载,这很好。问题是:看来RedshiftJDBC驱动程序会先于PostgreSQL响应jdbc://postgresql连接字符串。这会在连接到PostgreSQL数据库时导致JDBC错误。我在我的pom.xml中将驱动程序名称“org.postgresql.Driver”指定为数据源的驱动程序,但我不确定springJDBC模板如何选择驱动程序(除非它选择第一个处理程序)。还有其他人遇到过此类

java - JDBC 基本概念,池和线程

我一直在单线程环境下使用JavaSE中的JDBC。但是现在我需要使用连接池并让许多线程与数据库(MSSQL和Oracle)进行交互,我很难尝试做到这一点,因为我似乎缺乏对api的一些基本理解。连接并记录Connection后的AFAIK表示到数据库的物理tcp/ip连接。它创建Statement(s),可以将其视为通过Connection与数据库的SQL交互。事务和回滚从何而来?它是在Connection还是Statement级别。“一个”Connection创建N条语句并将其提供给不同的线程以便让每个线程都拥有该Statement的使用是否安全?如果没有,在配置池之后是这样的:Ora

java - JDBC 时间戳和日期 GMT 问题

我有一个JDBC日期列,如果我使用getDate,它只会获取'date'部分2009年10月2日,但如果我使用getTimestamp,我会得到完整的'日期'2009年10月2日13:56:78:890。这正是我想要的。然而,getTimestamp返回的“日期”会“忽略”GMT值,假设日期;2009年10月2日13:56:78:890,我最终得到2009年10月2日15:56:78:890我的日期在数据库中保存为+2GMT日期,但应用程序服务器是GMT,即晚2小时如何仍然按原样获取我的日期,2009年10月2日13:56:78:890编辑我在GMT+2的客户端获得日期+2

java - 在 Java 程序中使用结果集

Resultsetrs=stmt.executeQuery("selectcount(*)fromfeedscagroupbyscoreorderbyscore");使用上面的java代码,我从名为feedsCA的表中检索行数。在尝试使用rs.getInt(1)、rs.getInt(2)、rs.getInt(3)检索计数时,我以如下错误结束,Exceptioninthread"main"com.microsoft.sqlserver.jdbc.SQLServerException:Theresultsethasnocurrentrow.atcom.microsoft.sqlserver

java - 复制 Java 结果集

我有一个需要更新的java.sql.ResultSet对象。但是结果集不可更新。不幸的是,这是对我正在使用的特定框架的限制。我在这里试图实现的是从数据库中获取数据,然后处理少量数据,最后将数据写入CSV文件。在这个阶段,我认为我最好的选择是创建一个新的结果集对象并将原始结果集的内容复制到新的结果集,同时操作数据。但是,我在谷歌上四处搜寻,似乎无法确定如何做到这一点,甚至根本无法确定它是否可能。我对Java的一切都是陌生的,所以任何帮助都将不胜感激。 最佳答案 感谢您的回复。最后我找到了CachedRowSet这正是我所需要的。有了这

java - 名称 jdbc 未绑定(bind)在 Tomcat 中的此上下文中

我在使用JDBC连接池时遇到了问题,我已经完成了所有相同的操作,并在此处进行了解释:JNDIResourcesHOW-TO,这里也是question(和我一样的配置)关于这个问题,我认为还没有解决。我还应该考虑什么? 最佳答案 我希望你已经完成了ResourceLink也配置到您的webapp。...... 关于java-名称jdbc未绑定(bind)在Tomcat中的此上下文中,我们在StackOverflow上找到一个类似的问题: https://stac