import java.io.PrintStream; import java.sql.Connection; import java.sql.DatabaseMetaData; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.sql.Statement; import com.couchbase.client.*; import org.json.simple.JSONObject; import com.couchbase.client.java.document.json.JsonObject; import com.couchbase.client.java.query.*; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import org.junit.Assume; import org.junit.BeforeClass; import org.junit.Test; public class Query { static String JDBCDriver = "com.couchbase.CBDriver"; static String ConnectionURL = "jdbc:couchbase://127.0.0.1:8093"; public static void main(String[] args) { Connection con = null; Statement stmt = null; ResultSet rs = null; String query = "select * from `simple_table_1`"; // String query1 = "SELECT * FROM xxxCUSTOMER LIMIT 1"; // String query = "SELECT * FROM DISTRICT LIMIT 1"; try { Class.forName(JDBCDriver); con = DriverManager.getConnection(ConnectionURL); stmt = con.createStatement(); rs = stmt.executeQuery(query); @SuppressWarnings("unused") DatabaseMetaData metadata = con.getMetaData(); ResultSetMetaData rsmd = rs.getMetaData(); int columnsNumber = rsmd.getColumnCount(); rsmd = rs.getMetaData(); columnsNumber = rsmd.getColumnCount(); while (rs.next()) { for (int i = 1; i < columnsNumber; i++) { System.out.println(rsmd.getColumnName(i) + ":" + rs.getString(i) + " "); } System.setOut(new PrintStream("/Users/sai/Downloads/std.out")); System.setErr(new PrintStream("/Users/sai/Downloads/std.err")); //System.out.println(rs); //System.out.println(rs.getInt(columnsNumber)); //System.out.println(rsmd.getColumnName(columnsNumber)); //System.out.println(rs.getMetaData()); /*@Test public void shouldAlreadyHaveCreatedIndex() { QueryResult indexResult = bucket().query(Query.simple(createPrimaryIndex().on(bucketName()), WITH_CONSISTENCY)); assertFalse(indexResult.finalSuccess()); assertEquals(0, indexResult.allRows().size()); assertNotNull(indexResult.info()); //having two calls to errors() here validates that there's not a reference to the async stream //each time the method is called. assertEquals(1, indexResult.errors().size()); assertEquals("GSI CreatePrimaryIndex() - cause: Index #primary already exist.", indexResult.errors().get(0).getString("msg")); } @Test public void shouldHaveRequestId() { QueryResult result = bucket().query(Query.simple("SELECT * FROM `" + bucketName() + "` LIMIT 3", QueryParams.build().withContextId(null).consistency(CONSISTENCY))); assertNotNull(result); assertTrue(result.parseSuccess()); assertTrue(result.finalSuccess()); assertNotNull(result.info()); assertNotNull(result.allRows()); assertNotNull(result.errors()); assertTrue(result.errors().isEmpty()); assertEquals("", result.clientContextId()); assertNotNull(result.requestId()); assertTrue(result.requestId().length() > 0); //TODO once consistency/indexer/flush problems are resolved, reactivate REQUEST_PLUS and rows assertions // assertFalse(result.allRows().isEmpty()); } @Test public void shouldHaveSignature() { Query query = Query.simple("SELECT * FROM `" + bucketName() + "` LIMIT 3", WITH_CONSISTENCY); QueryResult result = bucket().query(query); assertNotNull(result); assertTrue(result.parseSuccess()); assertTrue(result.finalSuccess()); assertNotNull(result.info()); assertNotNull(result.signature()); assertNotNull(result.allRows()); assertNotNull(result.errors()); assertTrue(result.errors().isEmpty()); assertEquals(JsonObject.create().put("*", "*"), result.signature()); //TODO once consistency/indexer/flush problems are resolved, reactivate REQUEST_PLUS and rows assertions // assertFalse(result.allRows().isEmpty()); } */ } } catch (Exception e) { e.printStackTrace(); } finally { try { if (rs != null) { rs.close(); } } catch (SQLException se1) { } try { if (stmt != null) { stmt.close(); } } catch (SQLException se2) { } try { if (con != null) { con.close(); } } catch (SQLException se4) { se4.printStackTrace(); } } } /*private static void shouldAlreadyHaveCreatedIndex() { // TODO Auto-generated method stub } private static void shouldHaveRequestId() { // TODO Auto-generated method stub } private static void shouldHaveRequestId() { // TODO Auto-generated method stub } private static void shouldAlreadyHaveCreatedIndex() { // TODO Auto-generated method stub } */ }