我正在评估一个完整的JDBC驱动程序,尤其是使用SQL Server 2008进行Windows身份validation。 我收集了一些我发现并列在下面的列表。 我的问题是,有没有其他JDBC驱动程序与SQL Server 2008兼容,我也应该看看审查? Microsoft JDBC驱动程序 url : http : //msdn.microsoft.com/en-us/sqlserver/aa937724 优点 :用于SQL Server 2008的正式Microsoft JDBC驱动程序! 基于几年前微软购买的JNetDirect JSQLConnect驱动程序v3,他们一直在此基础之上。 JNetDirect JSQLConnect的支持告诉我。 缺点 :似乎有很多的连接/稳定性问题,不要相信我,只是谷歌关于它:)。 没有一种方法来禁用语句准备/池,这是我正在寻找的东西。 JDBC兼容性 :声称是JDBC 4.0兼容,尽pipe许多方法抛出UnimplementedException! JDBCtypes :4 价格 :免费 Progress DataDirect url : http : //www.datadirect.com/index.html 优点 :声称是顶级的,被诸如Informatica等众多应用程序所使用,该公司已经存在很久了! 有快速的支持 – 我已经处理了他们简要。 缺点 :? JDBC合规性 :声称是符合JDBC 4.0的 JDBCtypes :5 价格 :不免费 JTDS […]
到目前为止,我还没有find明确的答案。 我想知道使用PreparedStatement SQLtypesDATETIME和javatypes是什么。 我发现: http : //www.java2s.com/Code/Java/Database-SQL-JDBC/StandardSQLDataTypeswithTheirJavaEquivalents.htm 但是它声明SQLtypes“DATETIME”与sql.date相同,但是在查看SQLdate文档时( http://download.oracle.com/javase/7/docs/api/java/sql/Date。它说时间被截断(全零)。 我想要的是能够指定一个preparedStatement.setDateTime()或某种。 我看到的唯一的另一种方式是使用时间戳,但这将需要我改变列的types,而我无法想象别人之前从来没有这个问题? 任何提示? 编辑:我正在使用MYSQL。
对于给定的Connection实例,我如何findConnection用来连接数据库的url? 在Connection.getClientInfo()方法返回的Properties某处? 如果你需要我提供更清晰的描述,欢迎所有评论。 谢谢
我的SQL服务器实例名称是MYPC \ SQLEXPRESS,我试图创build一个jTDS连接string连接到数据库'博客'。 任何人都可以帮我做到这一点? 我试图这样做: DriverManager.getConnection("jdbc:jtds:sqlserver://127.0.0.1:1433/Blog", "user", "password"); 我得到这个: java.sql.SQLException: Network error IOException: Connection refused: connect at net.sourceforge.jtds.jdbc.ConnectionJDBC2.<init>(ConnectionJDBC2.java:395) at net.sourceforge.jtds.jdbc.ConnectionJDBC3.<init>(ConnectionJDBC3.java:50) at net.sourceforge.jtds.jdbc.Driver.connect(Driver.java:184) at java.sql.DriverManager.getConnection(Unknown Source) at java.sql.DriverManager.getConnection(Unknown Source) at SqlConnection.Connect(SqlConnection.java:19) at main.main(main.java:11) Caused by: java.net.ConnectException: Connection refused: connect at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.PlainSocketImpl.doConnect(Unknown Source) at java.net.PlainSocketImpl.connectToAddress(Unknown Source) at java.net.PlainSocketImpl.connect(Unknown Source) at java.net.SocksSocketImpl.connect(Unknown Source) at java.net.Socket.connect(Unknown […]
我想创build一个不存在的数据库通过JDBC。 不像MySQL,PostgreSQL不支持create if not exists语法。 什么是完成这个最好的方法? 应用程序不知道数据库是否存在。 它应该检查,如果数据库存在,应该使用它。 所以连接到所需的数据库是有道理的,如果由于数据库不存在而导致连接失败,它应该创build新的数据库(通过连接到默认的postgres数据库)。 我检查了Postgres返回的错误代码,但是我找不到任何相同的代码。 另一种方法是连接到postgres数据库,并检查是否存在所需的数据库并采取相应的措施。 第二个是有点繁琐的工作。 有什么办法可以在Postgres中实现这个function吗?
Oracle DATE和TIMESTAMPtypes有什么区别? 两者都有date和时间组件? Java中这些datetypes的对应types是什么?
可能重复: 使用JDBC和MySQL运行.sql脚本 我有一个包含40-50个SQL语句的SQL脚本文件。 是否有可能使用JDBC来运行这个脚本文件?
我一直在做我们的宠物项目之一的代码审查(主要是使用像FindBugs的工具)和FindBugs标记下面的代码是错误的(伪代码): Connection conn = dataSource.getConnection(); try{ PreparedStatement stmt = conn.prepareStatement(); //initialize the statement stmt.execute(); ResultSet rs = stmt.getResultSet(); //get data }finally{ conn.close(); } 错误是这个代码可能不会释放资源。 我发现ResultSet和Statement没有closures,所以最后closures了它们: finally{ try{ rs.close() }catch(SqlException se){ //log it } try{ stmt.close(); }catch(SqlException se){ //log it } conn.close(); } 但是我在许多项目(来自不less公司)遇到过上述模式,没有人closuresResultSet或Statements。 当Connectionclosures时,您是否遇到ResultSet和Statement没有closures的问题? 我发现只有这一点 ,它指的是甲骨文在closures连接(我们使用Oracle数据库,因此我的更正)closures结果集有问题。 java.sql.api在Connection.close()javadoc中什么都没说。
我想从数据库模式中检索所有的表名,并且如果可能的话,得到以指定的前缀开始的所有表。 我尝试使用JDBC的connection.getMetaData().getTables()但它根本不工作。 Connection jdbcConnection = DriverManager.getConnection("", "", ""); DatabaseMetaData m = jdbcConnection.getMetaData(); ResultSet tables = m.getTables(jdbcConnection.getCatalog(), null, "TAB_%", null); for (int i = 0; i < tables.getMetaData().getColumnCount(); i++) { System.out.println("table = " + tables.getMetaData().getTableName(i)); } 有人可以帮我吗?
我开始使用MySQL与JDBC。 Class.forName("com.mysql.jdbc.Driver"); conn = DriverManager.getConnection("jdbc:mysql:///x", "x", "x"); stmt = conn.createStatement(); stmt.execute( "CREATE TABLE amigos" + "("+ "id int AUTO_INCREMENT not null,"+ "nombre char(20) not null,"+ "primary key(id)" + ")"); 我有3-4个表格来创build,这看起来不太好。 有没有办法从MySQL JDBC运行.sql脚本?