我已经从http://dev.mysql.com/downloads/connector/j/下载了MySQL的JDBC驱动程序“mysql-connector-java-gpl-5.1.26.msi”。 但我不知道如何使用它。 http://dev.mysql.com/doc/refman/5.6/en/connector-j-binary-installation.html上的文档说这是一个zip文件,它具有所需的jar文件。 但是我得到的是.msi文件。 当我执行msi文件,它只是开始安装和消失。 任何想法如何我可以从MSI的jar文件?
假设你有以下代码: Connection conn; try { conn = … // get connection conn.setAutoCommit(false); … // Do some modification queries and logic conn.commit() } catch(SQLException e) { conn.rollback() // Do we need this? conn.close() } 在这段代码中,如果有一个exception,closures连接(因为自动提交是closures的),还是显式的回滚,然后closures连接,是否更好? 没有保存点。 我觉得添加回滚调用是有意义的,因为: 1)未来有人可能会添加保存点,但忘记添加回滚 2)它提高了可读性 3)不应该花费任何东西,对吧? 但显然,这些都不是特别引人注目。 任何标准的做法? 注意:我知道在closures和回滚时需要重复try / catch。 实际上我有一个中间件抽象数据库访问和照顾,但我想知道是否添加它是多余的。
是否有一个跨数据库平台的方式来获得刚刚插入的logging的主键? 我注意到这个答案说,你可以通过调用SELECT LAST_INSERT_ID()来获得它,我认为你可以调用SELECT @@IDENTITY AS 'Identity'; 有没有一种常见的方式来做到这一点在jdbc中的数据库? 如果不是,你会如何build议我实现一个可以访问任何SQL Server,MySQL和Oracle的代码?
我刚刚了解了java.sql package 。 它使用Class.forName()来dynamic加载扩展DriverManager的驱动程序。 然后我们使用DriverManager.getConnection()方法获得连接。 那么整个事情是如何工作的呢? 如何DriverManager类知道如何获得连接,而不使用实际的驱动程序的类名称。 我们也可以使用Class.forName()为自定义应用程序…如果这是解释一个例子,我会很高兴。
如何整合创build/接收连接的常见JDBC习惯用法,查询数据库并可能使用Java 7的自动资源pipe理,try-with-resources声明处理结果? ( 教程 ) 在Java 7之前,通常的模式是这样的: Connection con = null; PreparedStatement prep = null; try{ con = getConnection(); prep = prep.prepareStatement("Update …"); … con.commit(); } catch (SQLException e){ con.rollback(); throw e; } finally{ if (prep != null) prep.close(); if (con != null) con.close(); } 有了Java 7,你可以去: try(Connection con = getConnection(); PreparedStatement prep = con.prepareConnection("Update […]
我想从hibernate session中获得jdbc连接。hibernate session里面有方法ie session.connection(); 但已被弃用。 我知道这仍然工作,但我不想使用不推荐的方法,因为我相信他们必须提供一些替代这个? 在http://docs.jboss.org/hibernate/orm/3.5/api/org/hibernate/Session.html连接方法API说使用org.hibernate.jdbc.Work为此目的,但我没有find任何这样的例子?
我在SQLite官方网站http://www.zentus.com/sqlitejdbc上find了下载url 。 但是使用这个链接会导致: 404找不到。 sqlitejdbc有什么问题? 我在哪里可以find官方网站?
我正在研究一些JDBC Oracle连接池项目,并遇到了一个名为Universal Connection Pool(UCP)的新的Oracle池实现。 现在,它使用一个新类PoolDataSource用于连接池,而不是OracleDataSource [启用caching选项]。 我正在辩论是否切换到这个新的实现,但找不到任何(如果有的话)修复/升级,这将会给我买的任何好的文档。 任何人都有这两个经验? 加号/劣势? 谢谢。
我正在学习JdbcTemplate和NamedParameterJdbcTemplate的奇观。 我喜欢我所看到的,但有没有简单的方法来查看它最终执行的底层SQL? 我想看到这是为了debugging目的(例如为了debugging在外部工具中产生的SQL)。
Connection.setTransactionIsolation(int)警告: 注意:如果在事务中调用此方法,则结果是实现定义的。 这提出了一个问题: 你如何在JDBC中开始一个事务? 清楚如何结束交易,而不是如何开始交易。 如果Connection在事务内部开始,我们应该如何在事务之外调用Connection.setTransactionIsolation(int)以避免特定于实现的行为?