我想创build一个简单的方法接收一个ResultSet作为参数,并返回一个包含ResultSet的行数的int。 这是做这个还是不这么做的有效方法? int size = 0; try { while(rs.next()){ size++; } } catch(Exception ex) { System.out.println("——————Tablerize.getRowCount—————–"); System.out.println("Cannot get resultSet row count: " + ex); System.out.println("——————————————————–"); } 我试过这个: int size = 0; try { resultSet.last(); size = resultSet.getRow(); resultSet.beforeFirst(); } catch(Exception ex) { return 0; } return size; 但是我得到一个错误,说com.microsoft.sqlserver.jdbc.SQLServerException: The requested operation is not supported on […]
这只是理论上的问题。 我使用JDBC与我的Java应用程序使用数据库(select,插入,更新,删除或其他)。 我做“手动”Java类将包含来自数据库表(属性= DB列)的数据。 然后我做查询(ResultSet)并用数据填充这些类。 我不确定,如果这是正确的方法。 但是我已经读了很多JDO和其他持久性解决scheme。 有人可以根据他们的经验推荐最好的JDBCselect吗? 我也想知道JDO优于JDBC的优点(用简单的话来说)。 我已经能够谷歌这些东西,但“第一手”的意见总是最好的。 谢谢
我有一个厚实的客户端,java swing应用程序,包含25个表格和〜15个JInternalFrames(表格的数据input表格)。 我需要为DBMS交互做直接的JDBC或ORM(在这种情况下用spring框架的hibernate)的deviseselect。 将来会发生出应用程序。 冬眠会为这个大小的项目矫枉过正吗? 对“是”或“否”的解释的解释将是非常赞赏的(甚至如果需要,甚至是不同的方法)。 TIA。
我遇到一个非常奇怪的问题这是一个非常简单的使用JDBC连接到Oracle数据库 OS: Ubuntu Java Version: 1.5.0_16-b02 1.6.0_17-b04 Database: Oracle 11g Release 11.1.0.6.0 当我使用jar文件OJDBC14.jar它每次连接到数据库当我使用jar文件OJDBC5.jar它连接了一些时间和其他时间它会抛出一个错误(如下所示)如果我重新编译与Java 6和使用OJDBC6.jar我得到了与OJDBC5.jar相同的结果 我需要JODB5.jar中的特定function,这些function在OJDBC14.jar中不可用 有任何想法吗 错误 > Connecting to oracle java.sql.SQLException: Io exception: Connection reset at oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:74) at oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:110) at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:171) at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:227) at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:494) at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:411) at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:490) at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:202) at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:33) at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:474) at java.sql.DriverManager.getConnection(DriverManager.java:525) at java.sql.DriverManager.getConnection(DriverManager.java:171) at TestConnect.main(TestConnect.java:13) 码 以下是我正在使用的代码 import […]
我正在阅读Java JDBC规范(第4版),并列举了以下声明: DataSource – 这个接口是在JDBC 2.0 Optional Package API中引入的。 它优于DriverManager,因为它允许有关底层数据源的详细信息对应用程序是透明的 我想了解的是Connection和DataSource之间的区别,以及为什么它存在。 我的意思是,上面的块说,数据源的细节对于应用程序是透明的,但是不会在属性文件中将数据库属性如用户名,密码,url等外化,然后使用DriverManager工作方式相同? 而且DataSource接口的创build只是为了有一个返回可以被集中的连接等常见的方法? 在Java EE中,应用程序服务器是否实现了此接口以及部署的应用程序是否具有对数据源的引用,而不是连接?
我正在学习Java EE,我用glassfish下载了eclipse。 我看了一些例子,还阅读了Oracle文档,以了解Java EE 5的全部内容。连接到数据库非常简单。 我打开了一个dynamic的web项目,创build了一个会话EJB,我用EntityManager和get方法可以访问存储的数据表。 对于我的下一个项目,我创build了一个简单的类,然后访问一些数据库表。 我遇到的第一个问题是,PersistenceUnit属性只能被EJB,Servlet等认可,而不是一个简单的java类。 那么我不能使用EntityManager的方式(或者我可以吗?) 我被要求去“JDBC”的方式。 我遇到的第一个问题是连接到数据库。 看来这一切都必须硬编码。 我有一个persistence.xml,我可以很容易地configuration数据库连接。 即使为DB设置驱动也很容易。 在JDBC中也没有get / set方法来访问表实体。 如何理解与JDBC相关的JPA和持久性? JPA是怎么想的? 为什么有set / get方法? 有人可以抛开这两者的本质,什么是没有“行话”的优点/缺点? 也请build议一些链接。 一个简单的谷歌searchJPA和JDBC的差异导致我一些网站充满了“术语”,我不能遵循:(
Java PreparedStatement提供了一个明确设置Null值的可能性。 这种可能性是: prepStmt.setNull(<n>, Types.VARCHAR) 这个调用的语义是否与使用一个null值的setType相同? prepStmt.setString(null) ?
什么命令 Class.forName("oracle.jdbc.driver.OracleDriver") 连接到Oracle数据库时正确吗? 有没有另一种做同样的事情?
在java中计数后,如何将'timeStamp'转换为date ? 我目前的代码如下: public class GetCurrentDateTime { public int data() { int count = 0; java.sql.Timestamp timeStamp = new Timestamp(System.currentTimeMillis()); java.sql.Date date = new java.sql.Date(timeStamp.getTime()); System.out.println(date); //count++; try { Class.forName("com.mysql.jdbc.Driver"); Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/pro", "root", ""); PreparedStatement statement = con.prepareStatement("select * from orders where status='Q' AND date=CURDATE()"); ResultSet result = statement.executeQuery(); while (result.next()) { // […]
我有一个embedded数据库的桌面应用程序。 当我执行我的程序时,我需要检查特定的表是否存在,或者如果没有创build。 给定一个名为conn的数据库连接对象,我怎么能检查这个?