pgjdbc/pgjdbc GitHub issues and pull requests (mirror)
help / color / mirror / Atom feedFrom: arturgspb (@arturgspb) <[email protected]>
To: pgjdbc/pgjdbc <[email protected]>
Subject: Re: [pgjdbc/pgjdbc] issue #538: Why getSchemaName return empty string or exists getBaseSchemaName and getColumnName return getColumnLabel?
Date: Sun, 27 Mar 2016 14:09:04 +0000
Message-ID: <[email protected]> (raw)
In-Reply-To: <[email protected]>
References: <[email protected]>
Example code:
``` java
package ru.realweb.meta;
import org.apache.commons.dbcp2.BasicDataSource;
import org.postgresql.jdbc.PgResultSetMetaData;
import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import org.springframework.jdbc.support.rowset.SqlRowSet;
import org.springframework.jdbc.support.rowset.SqlRowSetMetaData;
import java.sql.PreparedStatement;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.util.HashMap;
public class Test {
public static void main(String[] args) throws SQLException {
String driverClassName = "org.postgresql.Driver";
String schema = "postgresql";
String urlAdditional = "?encoding=UNICODE&ApplicationName=app&allowMultiQueries=true";
BasicDataSource ds = new BasicDataSource();
ds.setDriverClassName(driverClassName);
String hostPort = "***:5432/";
String url = "jdbc:" + schema + "://" + hostPort + "***" + urlAdditional;
ds.setUrl(url);
ds.setUsername("***");
ds.setPassword("***");
ds.setMaxTotal(50);
ds.setMaxIdle(5);
String sqlQuery = "select client_id as my_client_id, price as value from client_stats limit 10";
System.out.println("*** Pure JDBC");
PreparedStatement ps = ds.getConnection().prepareStatement(sqlQuery);
ResultSetMetaData jdbcMetaData = ps.getMetaData();
for (int i = 1; i <= jdbcMetaData.getColumnCount(); i++) {
System.out.println("\n");
System.out.println("jdbcMetaData.getColumnLabel() = " + jdbcMetaData.getColumnLabel(i));
if (jdbcMetaData instanceof PgResultSetMetaData) {
PgResultSetMetaData pgmd = (PgResultSetMetaData) jdbcMetaData;
System.out.println("pgmd.getColumnName = " + pgmd.getBaseColumnName(i));
System.out.println("pgmd.getBaseTableName = " + pgmd.getBaseTableName(i));
System.out.println("pgmd.getBaseSchemaName = " + pgmd.getBaseSchemaName(i));
}
}
System.out.println("\n\n");
System.out.println("*** Spring JDBC");
DataSourceTransactionManager transactionManager = new DataSourceTransactionManager(ds);
NamedParameterJdbcTemplate jdbcTemplate = new NamedParameterJdbcTemplate(transactionManager.getDataSource());
SqlRowSet sqlRowSet = jdbcTemplate.queryForRowSet(sqlQuery, new HashMap<>());
SqlRowSetMetaData springMetaData = sqlRowSet.getMetaData();
for (int i = 1; i <= springMetaData.getColumnCount(); i++) {
System.out.println("\n");
System.out.println("springMetaData.getColumnLabel(i) = " + springMetaData.getColumnLabel(i));
System.out.println("springMetaData.getColumnName(i) = " + springMetaData.getColumnName(i));
System.out.println("springMetaData.getTableName(i) = " + springMetaData.getTableName(i));
System.out.println("springMetaData.getSchemaName(i) = " + springMetaData.getSchemaName(i));
}
}
}
```
Will print:
``` plain
*** Pure JDBC
jdbcMetaData.getColumnLabel() = my_client_id
pgmd.getColumnName = client_id
pgmd.getBaseTableName = client_stats
pgmd.getBaseSchemaName = public
jdbcMetaData.getColumnLabel() = value
pgmd.getColumnName = price
pgmd.getBaseTableName = client_stats
pgmd.getBaseSchemaName = public
*** Spring JDBC
springMetaData.getColumnLabel(i) = my_client_id
springMetaData.getColumnName(i) = my_client_id
springMetaData.getTableName(i) = client_stats
springMetaData.getSchemaName(i) =
springMetaData.getColumnLabel(i) = value
springMetaData.getColumnName(i) = value
springMetaData.getTableName(i) = client_stats
springMetaData.getSchemaName(i) =
```
depends:
org.springframework:spring-jdbc:4.2.5.RELEASE
org.postgresql:postgresql:9.4.1208
view thread (31+ messages) latest in thread
reply
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: github://pgjdbc/pgjdbc
Cc: [email protected], [email protected]
Subject: Re: [pgjdbc/pgjdbc] issue #538: Why getSchemaName return empty string or exists getBaseSchemaName and getColumnName return getColumnLabel?
In-Reply-To: <<[email protected]>>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox