草庐IT

java - JDBC - 如何在准备好的语句中设置 char

我找不到类似的方法charc='c';preparedStatement.setChar(1,c);如何为准备好的语句设置字符? 最佳答案 JDBCSpecification4.0在附录B(数据类型转换表)中说明了以下转换:此表还显示了SQLInput读取器方法使用的转换,但它们仅使用推荐的转换。JDBCType       JavaType-------------------------------------------CHAR         StringVARCHAR        StringLONGVARCHAR   

java - 我必须将 Tomcat 连接池的 JDBC 驱动程序放在哪里?

所以我已经找出了我的错误,现在我只是在寻找一些关于到底发生了什么的见解。我正在使用ApacheTomcat版本7.0.32。我正在使用thistutorial为JDBC设置池。在我的META-INF文件夹中,我创建了一个context.xml文件并将其放入其中。我在写这篇文章时遇到了这个错误WARNING:Unexpectedexceptionresolvingreferencejava.sql.SQLException:com.mysql.jdbc.Driveratorg.apache.tomcat.jdbc.pool.PooledConnection.connectUsingDri

java - JDBC ResultSet getDate 失去精度

我在ResultSet.getDate(x)调用中失去了精度。基本上:rs=ps.executeQuery();rs.getDate("MODIFIED");返回截断到MODIFIED是默认精度的OracleTIMESTAMP字段的日期。我认为我可能缺少一些JDBC调整;通常TIMESTAMP与DATE兼容,但我希望不必重新定义整个表。 最佳答案 ResultSet.getDate()返回java.sql.Date,而不是java.util.Date.它被定义为一个永恒的日期。如果需要时间戳,请使用ResultSet.getTime

java - 何时关闭 JDBC 中的 Connection、Statement、PreparedStatement 和 ResultSet

关于JDBC编码的几个问题:对于单个客户端应用程序,我们是否需要连接池?在开始时创建一个Connection并保持它处于Activity状态而不关闭它直到应用程序退出是一个好主意吗?为什么?PreparedStatement与Connection相关联,如果每次查询后我的连接都没有关闭,为什么不保持PreparedStatement活着并在其他方法?如果我们为每个查询创建PreparedStatement,数据库是否知道它是相同的PreparedStatement并在第一次之后忽略不必要的操作?PreparedStatement是不是创建一次并重用多次语句?如果是,为什么每次都需要关闭

java - JDBC SQLServerException : "This driver is not configured for integrated authentication."

我正在为SmartFoxServer编写“服务器端扩展”(SFS)。在我的登录脚本中,我需要连接到我正在尝试使用JDBC进行的MSSQLServer。我已经在我的调试环境中测试了JDBC代码,它运行良好。但是当我将服务器端扩展放入SFS“扩展”文件夹(按照规范)时,我得到一个com.microsoft.sqlserver.jdbc.SQLServerException:"Thisdriverisnotconfiguredforintegratedauthentication.".我用Google搜索了这个错误,发现通常是因为文件sqljdbc_auth.dll不在系统路径中;我已将此文

java - 使用 C3P0 的 JDBC 连接池

以下是我获取数据库连接的帮助类:我使用了here中描述的C3P0连接池.publicclassDBConnection{privatestaticDataSourcedataSource;privatestaticfinalStringDRIVER_NAME;privatestaticfinalStringURL;privatestaticfinalStringUNAME;privatestaticfinalStringPWD;static{finalResourceBundleconfig=ResourceBundle.getBundle("props.database");DRIV

Java JDBC 延迟加载的结果集

有没有办法让你通过运行JDBC查询获得的ResultSet被延迟加载?我希望按照我的要求而不是事先加载每一行。 最佳答案 简答:在调用executeQuery()之前使用Statement.setFetchSize(1)。长答案:这非常很大程度上取决于您使用的JDBC驱动程序。您可能想看看thispage,它描述了MySQL、Oracle、SQLServer和DB2的行为。主要收获:每个数据库(即每个JDBC驱动程序)都有自己的默认行为。一些驱动程序会尊重setFetchSize()而没有任何警告,而另一些驱动程序则需要一些“帮助”

java - 如何解析 JDBC url 以获取主机名、端口等?

如何解析JDBCURL(oracle或sqlserver)以获取主机名、端口和数据库名称。URL的格式不同。 最佳答案 从这样的开始:Stringurl="jdbc:derby://localhost:1527/netld;collation=TERRITORY_BASED:PRIMARY";StringcleanURI=url.substring(5);URIuri=URI.create(cleanURI);System.out.println(uri.getScheme());System.out.println(uri.get

java - 如何确定给定 JDBC 连接的数据库类型?

我需要处理返回三个数据库(Oracle、sybase、MS-Server)的存储过程/函数的结果集。过程/函数通常相同,但调用在Oracle中略有不同。statement.registerOutParameter(1,oracle.jdbc.OracleTypes.CURSOR);...statement.execute();ResultSetrs=(ResultSet)statement.getObject(1);JDBC没有提供通用的方法来处理这个问题,所以我需要在我的代码中区分不同类型的DB。我得到了连接,但不知道确定数据库是否是oracle的最佳方法。我可以使用驱动程序名称,但

java - JDBC VS Hibernate

Closed.Thisquestionisopinion-based。它当前不接受答案。想改善这个问题吗?更新问题,以便editingthispost用事实和引用来回答。6年前关闭。Improvethisquestion我们在Web应用程序中使用JDBC已有很长时间了。我们使用它的主要原因是因为我们对代码,sql拥有100%的控制权,并且可以手动进行修复。除此之外,我们在数据库内部使用了触发器,并且数据库由DB专家单独开发。但是,现在许多人建议使用Hibernate,因此我们也考虑过使用它。但是,我们发现了以下问题。Hibernate无法与“现有”数据库连接。它总是尝试创建自己的一个。