Tag: sql

绑定参数为PostgreSQL数组

我正在尝试绑定一个准备好的语句参数,这是一个“多维”PostgreSQL数组。 这是一个数组示例(列类型为numeric[] ): {{1,10},{2,20}} 如何使用预准备语句绑定类似的值? 我试过了: stmt.setObject(1, “{{1,10},{2,20}}”, Types.ARRAY); 它不起作用: 无法将java.lang.String的实例强制转换为Types.ARRAY类型 有任何想法吗?

String – > java.util.Date – > java.sql.Date(带时间戳)

这是我的问题:我有一个用户输入日期,如:2012-12-24(字符串)我连接到该字符串的时间,并转换为java.util.Date我的代码如下所示: String tempstartdate = startdte; //startdte is the string value from a txtfield tempstartdate += ” 00:01:00″; String tempenddate = startdte; tempenddate += ” 23:59:59″; SimpleDateFormat df = new SimpleDateFormat(“yyyy-MM-dd hh:mm:ss”); java.util.Date validstartdte = null; java.util.Date validenddte = null; validstartdte = df.parse(tempstartdate); //validstartdte is a util.Date (and works) validenddte = df.parse(tempenddate); 我的问题是,当我拿这个util.Date并想把它变成一个sql.Date时: java.sql.Date sqlstartDate = […]

JPA – 以编程方式通过序列递增数字字段

我有一个JPA 2 Web应用程序(Struts 2,Hibernate 4仅作为JPA实现)。 当前的要求是将(非id)数字顺序字段(仅为某些行填充)添加到现有实体。 根据特定条件插入新行时,我需要将新字段设置为its highest value + 1或NULL 。 例如: ID NEW_FIELD DESCRIPTION ——————————– 1 1 bla bla 2 bla bla <— unmatched: not needed here 3 bla bla <— unmatched: not needed here 4 2 bla bla 5 3 bla bla 6 4 bla bla 7 bla bla <— unmatched: not […]

如何将java.sql.Timestamp增加14天?

我有一个应用程序,它将一个时间戳作为sql选择的开始日期和结束日期的边界,我希望从今年的第一个星期一开始,将今年的周数填充一个hashmap作为值和周数作为键。 我发现很难使用时间戳,我觉得增加86,400,000秒来增加一天的感觉并不是很好,因为这并没有考虑到闰日,小时,秒。 我计划在其中添加13天23小时59分59秒,以便我可以按周查找地图中的开始日期作为关键字,然后使用开始日期来获取结束日期。 所以我想尝试得到这样的东西: Week startDate endDate 1 2011-01-03 00:00:00 2011-01-16 23:59:59 2 2011-01-17 00:00:00 2011-01-30 23:59:59 使用Map中的前两列,并在查找后计算最后一列。 如何安全地增加java.sql.Timestamp?

使用JDBC从dbms_output.get_lines获取输出

如何在不使用数据库创建其他对象的情况下使用JDBC从Java应用程序中获取Oracle dbms_output.get_lines的输出?

什么时候应该指定setFetchSize()?

我看到很多JDBC / MySQL的“最佳实践”指南告诉我指定setFetchSize()。 但是,我不知道何时指定,以及要指定的内容(语句,结果集)。 Statement.setFetchSize() or PreparedStatement.setFetchSize() ResultSet.setFetchSize() 在这两个中,我应该指定什么? 从javadoc和oracle文档中 ,这是我对“何时”感到困惑的地方 的Javadoc 默认值由创建结果集的Statement对象设置。 可以随时更改提取大小。 Oracle Doc 生成结果集后对语句对象的提取大小所做的更改将不会影响该结果集。 如果我错了,请纠正我。 这是否意味着setFetchSize在执行查询之前只是Affective?(因此,ResultSet上的setFetchSize是无用的?但是恰好“可以随时更改获取大小”?)

使用Hibernate延迟获取单列(类属性)

我有一张我正在使用的旧桌子,看起来像这样: +——————+————–+——+—–+———+——-+ | Field | Type | Null | Key | Default | Extra | +——————+————–+——+—–+———+——-+ | BINARY_DATA_ID | varchar(255) | NO | PRI | | | | BINARY_DATA | longblob | YES | | NULL | | | BINARY_DATA_NAME | varchar(255) | YES | | NULL | | +——————+————–+——+—–+———+——-+ 这个问题的主要问题是BinaryData Java类加载了BINARY_DATA列,即使我只需要BINARY_DATA_NAME 。 我知道构建这个的最好方法是从元数据中分割数据(比如文件名),以便它们存在于不同的表中。 从那里,使数据延迟加载是微不足道的。 […]

PreparedStatement.addBatch()可用于SELECT查询吗?

想象一下,我有100个SELECT查询,这些查询因一个输入而不同。 PreparedStatement可用于该值。 我在Web上看到的所有文档都是批量插入/更新/删除。 我从未见过用于select语句的批处理。 可以这样做吗? 如果是这样,请在下面的示例代码中帮助我。 我想这可以使用“IN”子句来完成,但我更喜欢使用批处理的select语句。 示例代码: public void run(连接db_conn,List value_list){ String sql =“SELECT * FROM DATA_TABLE WHERE ATTR =?”; PreparedStatement pstmt = db_conn.prepareStatement(sql); for(String value:value_list){ pstmt.clearParameters(); pstmt.setObject(1,value); pstmt.addBatch(); } //我在这里打电话给什么? int [] result_array = pstmt.executeBatch() while(pstmt.getMoreResults()){ ResultSet result_set = pstmt.getResultSet(); //在这里工作 } } 我想这也可能是依赖于驱动程序的行为。 我正在使用他们的JDBC驱动程序编写针对IBM AS / 400 DB2数据库的查询。

如何validationSQL查询语法?

java 1.4 Sql server 2000 我正在从管理员用户输入sql查询(对于通过执行sql查询检索的值validation字段值),这将存储在数据库中,之后我将执行对应于field的sql查询。在数据库中插入sql查询之前我想要在java代码中validation其语法。 Fields Sql Query stateCode select statecode from states district code select district code from districts

是否有一种可移植的方式来“选择第一个10 *从T”语义?

我想从数据库中读取10k记录块中的数据。 我在维基百科上发现了结果限制 ,很明显这不能用sql以便携方式完成。 另一种方法可能是JdbcTemplate ,它提供了许多查询方法,但我怎么能确定已经读取了足够的行。 通过RowMapper和ResultSetExtractor等回调,无法指示已读取足够的数据。 编辑:我正在寻找JdbcTemplate的解决方案这篇文章建议使用我忽略的setMaxRows 。