com.j256.ormlite.dao.Dao.iterator()方法的使用及代码示例

x33g5p2x  于2022-01-18 转载在 其他  
字(7.3k)|赞(0)|评价(0)|浏览(205)

本文整理了Java中com.j256.ormlite.dao.Dao.iterator()方法的一些代码示例,展示了Dao.iterator()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Dao.iterator()方法的具体详情如下:
包路径:com.j256.ormlite.dao.Dao
类名称:Dao
方法名:iterator

Dao.iterator介绍

[英]This satisfies the Iterable interface for the class and allows you to iterate through the objects in the table using SQL. You can use code similar to the following:

  1. for (Account account : accountDao) { ... }

WARNING: because the Iterator#hasNext(), Iterator#next(), etc. methods can only throw RuntimeException, the code has to wrap any SQLException with IllegalStateException. Make sure to catch IllegalStateException and look for a SQLException cause.

WARNING: The underlying results object will only be closed if you page all the way to the end of the iterator using the for() loop or if you call CloseableIterator#close() directly. You can also call the #closeLastIterator() if you are not iterating across this DAO in multiple threads.

NOTE: With this iterator you can only move forward through the object collection. See the #iterator(int) method to create a cursor that can go both directions.
[中]这满足了类的Iterable接口,并允许您使用SQL迭代表中的对象。您可以使用类似于以下内容的代码:

  1. for (Account account : accountDao) { ... }

警告:由于迭代器#hasNext()、迭代器#next()等方法只能抛出RuntimeException,因此代码必须用IllegalStateException包装任何SQLException。确保捕获IllegalStateException并查找SQLException原因。
警告:只有使用for()循环将页面一直分页到迭代器的末尾,或者直接调用CloseableIterator#close()时,基础结果对象才会关闭。如果没有在多个线程中迭代此DAO,也可以调用#closeLastIterator()。
注意:使用此迭代器,您只能在对象集合中前进。请参阅#迭代器(int)方法来创建可以双向移动的游标。

代码示例

代码示例来源:origin: j256/ormlite-core

  1. /**
  2. * @see Dao#iterator(int)
  3. */
  4. @Override
  5. public CloseableIterator<T> iterator(int resultFlags) {
  6. return dao.iterator(resultFlags);
  7. }

代码示例来源:origin: com.j256.ormlite/ormlite-core

  1. /**
  2. * @see Dao#iterator()
  3. */
  4. @Override
  5. public CloseableIterator<T> iterator() {
  6. return dao.iterator();
  7. }

代码示例来源:origin: j256/ormlite-core

  1. /**
  2. * @see Dao#iterator()
  3. */
  4. @Override
  5. public CloseableIterator<T> iterator() {
  6. return dao.iterator();
  7. }

代码示例来源:origin: com.j256.ormlite/ormlite-core

  1. /**
  2. * @see Dao#iterator(int)
  3. */
  4. @Override
  5. public CloseableIterator<T> iterator(int resultFlags) {
  6. return dao.iterator(resultFlags);
  7. }

代码示例来源:origin: j256/ormlite-core

  1. /**
  2. * A short cut to {@link Dao#iterator(PreparedQuery)}.
  3. */
  4. public CloseableIterator<T> iterator() throws SQLException {
  5. return dao.iterator(prepare());
  6. }

代码示例来源:origin: j256/ormlite-core

  1. /**
  2. * @see Dao#iterator(PreparedQuery)
  3. */
  4. @Override
  5. public CloseableIterator<T> iterator(PreparedQuery<T> preparedQuery) {
  6. try {
  7. return dao.iterator(preparedQuery);
  8. } catch (SQLException e) {
  9. logMessage(e, "iterator threw exception on: " + preparedQuery);
  10. throw new RuntimeException(e);
  11. }
  12. }

代码示例来源:origin: j256/ormlite-core

  1. /**
  2. * @see Dao#iterator(PreparedQuery, int)
  3. */
  4. @Override
  5. public CloseableIterator<T> iterator(PreparedQuery<T> preparedQuery, int resultFlags) {
  6. try {
  7. return dao.iterator(preparedQuery, resultFlags);
  8. } catch (SQLException e) {
  9. logMessage(e, "iterator threw exception on: " + preparedQuery);
  10. throw new RuntimeException(e);
  11. }
  12. }

代码示例来源:origin: com.j256.ormlite/ormlite-core

  1. /**
  2. * @see Dao#iterator(PreparedQuery)
  3. */
  4. @Override
  5. public CloseableIterator<T> iterator(PreparedQuery<T> preparedQuery) {
  6. try {
  7. return dao.iterator(preparedQuery);
  8. } catch (SQLException e) {
  9. logMessage(e, "iterator threw exception on: " + preparedQuery);
  10. throw new RuntimeException(e);
  11. }
  12. }

代码示例来源:origin: com.j256.ormlite/ormlite-core

  1. /**
  2. * A short cut to {@link Dao#iterator(PreparedQuery)}.
  3. */
  4. public CloseableIterator<T> iterator() throws SQLException {
  5. return dao.iterator(prepare());
  6. }

代码示例来源:origin: com.j256.ormlite/ormlite-core

  1. /**
  2. * @see Dao#iterator(PreparedQuery, int)
  3. */
  4. @Override
  5. public CloseableIterator<T> iterator(PreparedQuery<T> preparedQuery, int resultFlags) {
  6. try {
  7. return dao.iterator(preparedQuery, resultFlags);
  8. } catch (SQLException e) {
  9. logMessage(e, "iterator threw exception on: " + preparedQuery);
  10. throw new RuntimeException(e);
  11. }
  12. }

代码示例来源:origin: j256/ormlite-core

  1. @Test(expected = RuntimeException.class)
  2. public void testIteratorThrow() throws Exception {
  3. @SuppressWarnings("unchecked")
  4. Dao<Foo, String> dao = (Dao<Foo, String>) createMock(Dao.class);
  5. RuntimeExceptionDao<Foo, String> rtDao = new RuntimeExceptionDao<Foo, String>(dao);
  6. expect(dao.iterator(null)).andThrow(new SQLException("Testing catch"));
  7. replay(dao);
  8. rtDao.iterator(null);
  9. verify(dao);
  10. }

代码示例来源:origin: com.j256.ormlite/ormlite-jdbc

  1. @Test
  2. public void testIteratorNoResults() throws Exception {
  3. Dao<Foo, Integer> fooDao = createDao(Foo.class, true);
  4. Iterator<Foo> iterator = fooDao.iterator();
  5. assertFalse(iterator.hasNext());
  6. }

代码示例来源:origin: com.j256.ormlite/ormlite-jdbc

  1. @Test
  2. public void testRemoveAfterDone() throws Exception {
  3. Dao<Foo, Integer> fooDao = createDao(Foo.class, true);
  4. Iterator<Foo> iterator = fooDao.iterator();
  5. assertFalse(iterator.hasNext());
  6. try {
  7. iterator.remove();
  8. fail("expected exception");
  9. } catch (IllegalStateException e) {
  10. // expected
  11. }
  12. }

代码示例来源:origin: j256/ormlite-core

  1. @Test(expected = IllegalStateException.class)
  2. public void testIteratorRemoveNoNext() throws Exception {
  3. Dao<Foo, Object> dao = createDao(Foo.class, true);
  4. CloseableIterator<Foo> iterator = dao.iterator();
  5. try {
  6. iterator.remove();
  7. } finally {
  8. iterator.close();
  9. }
  10. }

代码示例来源:origin: com.j256.ormlite/ormlite-jdbc

  1. @Test
  2. public void testHasNextAfterDone() throws Exception {
  3. Dao<Foo, Integer> fooDao = createDao(Foo.class, true);
  4. CloseableIterator<Foo> iterator = fooDao.iterator();
  5. try {
  6. while (iterator.hasNext()) {
  7. }
  8. assertFalse(iterator.hasNext());
  9. } finally {
  10. iterator.close();
  11. }
  12. }

代码示例来源:origin: j256/ormlite-core

  1. @Test
  2. public void testIteratorGetRawResults() throws Exception {
  3. Dao<Foo, Integer> dao = createDao(Foo.class, true);
  4. Foo foo1 = new Foo();
  5. assertEquals(1, dao.create(foo1));
  6. assertEquals(1, dao.queryForAll().size());
  7. @SuppressWarnings("unchecked")
  8. SelectIterator<Foo, String> iterator = (SelectIterator<Foo, String>) dao.iterator();
  9. DatabaseResults results = iterator.getRawResults();
  10. assertTrue(results.next());
  11. iterator.close();
  12. }

代码示例来源:origin: j256/ormlite-core

  1. @Test(expected = IllegalStateException.class)
  2. public void testIteratorThrow() throws Exception {
  3. Dao<Foo, Integer> dao = createDao(Foo.class, true);
  4. Foo foo = new Foo();
  5. assertEquals(1, dao.create(foo));
  6. DatabaseConnection conn = connectionSource.getReadWriteConnection(FOO_TABLE_NAME);
  7. try {
  8. conn.close();
  9. dao.iterator();
  10. } finally {
  11. connectionSource.releaseConnection(conn);
  12. }
  13. }

代码示例来源:origin: j256/ormlite-core

  1. @Test(expected = SQLException.class)
  2. public void testIteratorPreparedThrow() throws Exception {
  3. Dao<Foo, Integer> dao = createDao(Foo.class, true);
  4. Foo foo = new Foo();
  5. assertEquals(1, dao.create(foo));
  6. DatabaseConnection conn = connectionSource.getReadWriteConnection(FOO_TABLE_NAME);
  7. try {
  8. conn.close();
  9. dao.iterator(dao.queryBuilder().prepare());
  10. } finally {
  11. connectionSource.releaseConnection(conn);
  12. }
  13. }

代码示例来源:origin: j256/ormlite-core

  1. @Test
  2. public void testIteratorLastClose() throws Exception {
  3. Dao<Foo, Integer> dao = createDao(Foo.class, true);
  4. Foo foo1 = new Foo();
  5. assertEquals(1, dao.create(foo1));
  6. CloseableIterator<Foo> iterator = dao.iterator();
  7. assertTrue(iterator.hasNext());
  8. Foo foo3 = iterator.next();
  9. assertEquals(foo1.id, foo3.id);
  10. assertFalse(iterator.hasNext());
  11. dao.closeLastIterator();
  12. }

代码示例来源:origin: j256/ormlite-core

  1. @Test
  2. public void testMultipleHasNext() throws Exception {
  3. Dao<Foo, Integer> dao = createDao(Foo.class, true);
  4. Foo foo1 = new Foo();
  5. assertEquals(1, dao.create(foo1));
  6. CloseableIterator<Foo> iterator = dao.iterator();
  7. assertTrue(iterator.hasNext());
  8. assertTrue(iterator.hasNext());
  9. assertTrue(iterator.hasNext());
  10. iterator.moveToNext();
  11. assertFalse(iterator.hasNext());
  12. }

相关文章