Questions tagged «jdbc»

JDBC(Java数据库连接)是基本的API,通过使用Java编程语言执行SQL语句,可以与SQL数据库服务器进行交互。

4
日期时间是否等效于java.sql?(有java.sql.datetime吗?)
到目前为止,我还没有找到明确的答案。 我想使用PreparedStatement知道SQL类型DATETIME和Java类型的等效项。 我发现:http : //www.java2s.com/Code/Java/Database-SQL-JDBC/StandardSQLDataTypeswithTheirJavaEquivalents.htm 但是它指出SQL类型“ DATETIME”与sql.date相同,但是在查看SQL日期文档时(http://download.oracle.com/javase/7/docs/api/java/sql/Date。 html),表示时间已被截断(全零)。 我想要的是能够指定一个preparedStatement.setDateTime()或某种形式。 我看到的唯一其他方法是使用时间戳,但这将要求我更改列类型,而我无法想象其他人以前从未遇到过此问题? 有什么提示吗? 编辑:我正在使用MYSQL。
74 java  mysql  sql  datetime  jdbc 

4
2011/2012年将选择Java JDBC连接池库吗?
我应该将哪个JDBC连接池库用于新的应用程序项目(而非Web应用程序)? 我认为Apache DBCP有足够多的未解决问题,这些问题一直持续到2.0。 C3P0的开发似乎已停止。 而且两者看上去都比较慢。 Proxool已死。 DBPool几乎没有社区(至少我没有找到任何公开社区-没有论坛,没有邮件列表...) 如果没有Tomcat,Apache Tomcat Pool似乎无法使用 我已经在Oracle网站上找到了SQL Datasources文章,但似乎只能将其应用于在servlet和Web服务等容器中运行的applet。 我应该选择BoneCP吗?我没有什么大要求。我只需要一个良好且易于使用的数据库连接池,即正在开发中。库,其作者可以答复错误报告,回答某些特定问题等。 顺便说一句,实际上,我只使用MySQL。我已经发现,MySQL驱动程序支持DriverManager接口,但是我不确定它是否实际上汇集了连接。

6
如何确定ResultSet中是否存在列名?
由于ResultSet包含从动态SQL返回的数据,是否有任何方法确定ResultSet包含是否包含特定的列名? 例如,如果我跑步rs.getString("Column_ABC")但"Column_ABC"实际上并不存在,它将抛出异常。 我如何测试是否ResultSet可以从名为的列中获取数据"Column_ABC"?
71 java  jdbc  resultset 

10
使用JDBC进行批处理INSERTS的有效方法
在我的应用程序中,我需要执行很多插入操作。它是一个Java应用程序,我正在使用普通的JDBC执行查询。该数据库是Oracle。我已经启用了批处理,所以它节省了我执行查询所需要的网络延迟。但是查询作为独立的INSERT顺序执行: insert into some_table (col1, col2) values (val1, val2) insert into some_table (col1, col2) values (val3, val4) insert into some_table (col1, col2) values (val5, val6) 我想知道以下形式的INSERT是否会更有效: insert into some_table (col1, col2) values (val1, val2), (val3, val4), (val5, val6) 即将多个INSERT折叠成一个。 还有其他使批处理INSERT更快的技巧吗?
71 java  sql  performance  jdbc 

6
JDBC批处理插入性能
我需要将几亿条记录插入mysql db。我要一次插入一百万个。请在下面查看我的代码。它似乎很慢。有什么方法可以优化它吗? try { // Disable auto-commit connection.setAutoCommit(false); // Create a prepared statement String sql = "INSERT INTO mytable (xxx), VALUES(?)"; PreparedStatement pstmt = connection.prepareStatement(sql); Object[] vals=set.toArray(); for (int i=0; i<vals.length; i++) { pstmt.setString(1, vals[i].toString()); pstmt.addBatch(); } // Execute the batch int [] updateCounts = pstmt.executeBatch(); System.out.append("inserted "+updateCounts.length);

3
我的无效字符在哪里(ORA-00911)
我正在尝试将CLOBs插入数据库(请参阅相关问题)。我不太清楚怎么了。我有大约85个要插入表中的块的列表。即使只插入第一个Clob,我也会得到ORA-00911: invalid character。我无法弄清楚PreparedStatement在执行之前如何从语句中删除该语句,因此我不能100%地确定它是正确的,但是如果我正确,那么它应该看起来像这样: insert all into domo_queries values ('select substr(to_char(max_data),1,4) as year, substr(to_char(max_data),5,6) as month, max_data from dss_fin_user.acq_dashboard_src_load_success where source = ''CHQ PeopleSoft FS''') select * from dual; 最终,该insert all语句将包含多个into',这就是为什么我不执行常规insert语句的原因。我没有看到无效字符,对吗?(哦,当我在sql开发人员工具中运行该代码时,上述代码运行良好。)而且,如果我删除了中的分号PreparedStatement,则会引发ORA-00933: SQL command not properly ended错误。 无论如何,这是我用于执行查询的代码(以及上面示例中变量的值)。 public ResultSet executeQuery(String connection, String query, QueryParameter... params) throws DataException, SQLException { // query …

9
休眠或JDBC
我有一个胖客户端,带有25个表和约15个JInternalFrames(表的数据输入表单)的架构的java swing应用程序。我需要为DBMS交互选择直接的JDBC或ORM(在这种情况下为Spring框架休眠)的设计选择。应用程序的构建将在将来发生。 对于这样规模的项目,冬眠会显得过大吗?对于肯定或否定答案的解释将不胜感激(如果需要,甚至可以采用其他方法)。 TIA。
68 java  hibernate  jdbc 

12
使用MySQL和JDBC运行.sql脚本
我开始将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张桌子,这看起来不太好。 有没有办法从MySQL JDBC运行.sql脚本?
68 java  sql  mysql  jdbc 


3
Oracle JDBC优化:在Spring Boot应用程序中启用PreparedStatement缓存
我有一个连接到Oracle数据库的Spring Boot REST应用程序。我们正在通过JdbcTemplate使用JDBC。Oracle数据库属性是通过以下3个application.properties设置获得的: spring.datasource.url spring.datasource.username spring.datasource.password 该应用程序正在使用HikariCP。从HikariCP网站上,我知道该池不缓存PreparedStatements,因为JDBC驱动程序是最好的设置。 现在,我将在哪里指定什么来确保这些: Oracle JDBC驱动程序(ojdbc7.jar)缓存PreparedStatements。有没有一种方法可以自定义它可以缓存的PreparedStatements的数量。 从https://howtodoinjava.com/java/jdbc/best-practices-to-improve-jdbc-performance/中,我们看到 确保将数据库设置为最大数据包大小,并且驱动程序与该数据包大小匹配。为了获取更大的结果集,这减少了驱动程序和服务器之间发送/接收的总数据包数量。 为此,需要采取哪些步骤? 查找Oracle DB Server数据包大小 查找是否将Oracle DB Server设置为最大数据包大小 查找设置Oracle JDBC驱动程序的(ojdbc8.jar)数据包大小。 任何其他(Oracle)JDBC性能优化技巧将不胜感激。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.