database-resource-manager/src/test/java/org/gcube/dataanalysis/test/TestPostgres.java

285 lines
8.0 KiB
Java

package org.gcube.dataanalysis.test;
import java.util.List;
import org.gcube.dataanalysis.ecoengine.configuration.AlgorithmConfiguration;
import org.gcube.dataanalysis.ecoengine.utils.DatabaseUtils;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
public class TestPostgres {
/**
* @param args
*/
@SuppressWarnings({"unchecked"})
public static List<Object> executeHQLQuery(String query, SessionFactory DBSessionFactory, boolean useSQL) throws Exception{
List<Object> obj = null;
Session ss = null;
try {
ss = DBSessionFactory.getCurrentSession();
ss.beginTransaction();
Query qr = null;
if (useSQL)
qr = ss.createSQLQuery(query);
else
qr = ss.createQuery(query);
List<Object> result = qr.list();
ss.getTransaction().commit();
/*
if (result == null)
System.out.println("Hibernate doesn't return a valid object when org.gcube.contentmanagement.lexicalmatcher retrieve UserState Object");
if (result != null && result.size() == 0)
System.out.println(String.format("found nothing in database"));
*/
if (result != null && result.size() != 0) {
obj = result;
}
} catch (Exception e) {
// System.out.println(String.format("Error while executing query: %1$s %2$s", query, e.getMessage()));
// e.printStackTrace();
System.out.println(String.format("Error while executing query: %1$s %2$s", query, e.getMessage()));
throw e;
}
return obj;
}
public static void main(String[] args) throws Exception{
// TODO Auto-generated method stub
/*AlgorithmConfiguration config = new AlgorithmConfiguration();
config.setConfigPath("./cfg/");
config.setParam("DatabaseUserName", "utente");
config.setParam("DatabasePassword", "d4science");
config.setParam("DatabaseDriver","org.postgresql.Driver");
//config.setParam("DatabaseDialect", "org.hibernate.dialect.PostgresPlusDialect");
config.setParam(
"DatabaseURL",
"jdbc:postgresql://statistical-manager.d.d4science.research-infrastructures.eu/testdb");
SessionFactory dbconnection = DatabaseUtils.initDBSession(config);
List<Object> rawnames = DatabaseFactory
.executeSQLQuery(
"select a.source_data as sourceA, b.source_data as sourceB, a.target_data_scientific_name as targetA, b.target_data_scientific_name as tagertB " +
"from bionymoutsimplefaked1csvpreprcsv as a join bionymoutfaked1csvpreprcsv as b on a.source_data=b.source_data limit 10",
dbconnection);
List<Object> rawnames = DatabaseFactory
.executeSQLQuery(
"select a.source_data as sourceA, a.target_data_scientific_name as targetA, b.source_data sourceB " +
"from bion_id_a1f27126_df23_4980_8e2b_4afc8aaa404f as a " +
"left join bion_id_ab251ee0_7cc6_49b2_8956_330f4716650f as b " +
"on a.source_data=b.source_data",
dbconnection);
//List<Object> rawnames = DatabaseFactory.executeHQLQuery(query, DBSessionFactory, useSQL);
System.out.println("***************************************************************");
System.out.println();
for (int i = 0; i < rawnames.size(); i++) {
Object[] row = (ObEntityManagerject[]) rawnames.get(i);
for (int j = 0; j < row.length; j++) {
System.out.print("\"" + row[j] + "\"; ");
}
System.out.println();
//System.out.println("Fine ");
}*/
AlgorithmConfiguration config = new AlgorithmConfiguration();
config.setConfigPath("./cfg/");
config.setParam("DatabaseUserName", "root");
config.setParam("DatabasePassword", "test");
config.setParam("DatabaseDriver","com.mysql.jdbc.Driver");
config.setParam("DatabaseDialect", "org.hibernate.dialect.MySQLDialect");
config.setParam(
"DatabaseURL",
"jdbc:mysql://146.48.87.169/timeseries");
SessionFactory dbconnection = DatabaseUtils.initDBSession(config);
/*List<Object> rawnames = DatabaseFactory
.executeSQLQuery(
"select a.source_data as sourceA, b.source_data as sourceB, a.target_data_scientific_name as targetA, b.target_data_scientific_name as tagertB " +
"from bionymoutsimplefaked1csvpreprcsv as a join bionymoutfaked1csvpreprcsv as b on a.source_data=b.source_data limit 10",
dbconnection);*/
//try{
// dbconnection.getCurrentSession().;
//
//
// ss.getCause()
// }
/*catch(JDBCExceptionReporter e)
{
Throwable t = e.getCause();
SQLException ex = (SQLException) t.getCause();
while(ex != null){
while(t != null) {
t = t.getCause();
}
// Logger logger=new Logger();
// logger.warn("SQLException="+ex.getLocalizedMessage());
System.out.println("sono qui");
ex = ex.getNextException();
}
}
*/
System.out.println("***************************************************************");
System.out.println();
//List<Object> rawnames =((javax.persistence.Query) query).getResultList();
try{
/*List<Object> rawnames = executeHQLQuery(
"select * from (select a.field1, b.field1_id as bb, b.field1 from a7f768710_c7b0_11df_b2bc_e0f36cf4c8cd as a "+
"left join cur_00d4e2d0_ecbd_11df_87fa_de008e0850ff as b on a.field3_id=b.field1_id) as cd",*/
// "select * "+
// "from a7f768710_c7b0_11df_b2bc_e0f36cf4c8cd as a, cur_00d4e2d0_ecbd_11df_87fa_de008e0850ff as b limit 10",
// dbconnection, true);
List<Object> rawnames = executeHQLQuery(
"select a.field1, b.field1_id from a7f768710_c7b0_11df_b2bc_e0f36cf4c8cd as a "+
"left join cur_00d4e2d0_ecbd_11df_87fa_de008e0850ff as b on a.field3_id=b.field1_id",dbconnection, true);
// "select * "+
// "from a7f768710_c7b0_11df_b2bc_e0f36cf4c8cd as a, cur_00d4e2d0_ecbd_11df_87fa_de008e0850ff as b limit 10",
// dbconnection, true);
System.out.println("Size: "+rawnames.size());
for (int i = 0; i < rawnames.size(); i++) {
Object[] row = (Object[]) rawnames.get(i);
for (int j = 0; j < row.length; j++) {
System.out.print("\"" + row[j] + "\"; ");
}
System.out.println();
//System.out.println("Fine ");
}
}catch(Exception e){
e.printStackTrace();
System.out.println("message: "+e.getMessage());
//System.out.println(e.getLocalizedMessage());
StackTraceElement [] elem=e.getStackTrace();
System.out.println("localized: "+e.getCause().toString());
String error=e.getCause().toString();
if (error.contains("MySQLSyntaxErrorException"))
{
System.out.println("ERROR "+e.getMessage()+" "+"because an error is present: "+e.getCause().getMessage());
}
// System.out.println("cause: "+e.getCause().getMessage());
// for (int i=0;i<elem.length;i++){
//
//
//
// System.out.println("elem: "+ elem[i]);
//
//
//
// }
//System.out.println("JDBC Error: "+JDBCExceptionReporter.DEFAULT_EXCEPTION_MSG);
//System.out.println("JDBC Error: "+JDBCExceptionReporter.DEFAULT_WARNING_MSG);
//System.out.println("JDBC Error: "+JDBCExceptionReporter.log.getName());
//System.out.println("JDBC Error: "+JDBCExceptionReporter.log.ROOT_LOGGER_NAME);
//org.slf4j.Logger logger = LoggerFactory.getLogger("log4j.logger.org.hibernate");
// Session s=dbconnection.openSession();
// s.close()
// System.out.println(dbconnection.getCache().getClass());
//SQLException ex= new SQLException(JDBCExceptionReporter.log.getName());
//SQLException ex= new SQLException
//System.out.println("message: "+ex.getLocalizedMessage());
// System.out.println(ex.getCause();
// JDBCExceptionReporter.;
//System.out.println("Eccezione:" +e.getMessage());
//e.printStackTrace();
//e.getLocalizedMessage();
/*Connection a=dbconnection.getCurrentSession().disconnect();
try {
System.out.println(a.getWarnings().getSQLState());
} catch (SQLException e1) {
// TODO Auto-generated catch block
System.out.println("message: "+e1.getCause().getStackTrace().length);
//e1.printStackTrace();
}
*/
}
}
}