Платформы корпоративных информационных систем


Пример 14-6. Исходный код приложения Exec для выполнения динамического SQL



Пример 14-6. Исходный код приложения Exec для выполнения динамического SQL


import java.sql.*;

public class Exec {

public static void main(String args[]) {

Connection con = null; String sql = "";

for(int i=0; i<args.length; i++) {

sql = sql + args[i];

if( i < args.length - 1 ) {

sql = sql + " ";

}

}

System, out. рrintln("Выполнение: " + sql);

try {

Class.forName("com.imaginary. sql.msql.MsqlDriver").newlnstance();

String url = "jdbc:msql://athens.imaginary.com:1114/db_test";

con = DriverManager.getConnection(url, "borg", "");

Statement s = con.createStatement();

if( s.execute(sql) ) {

ResultSet r = s.getResultSet();

ResultSetMetaData meta = r.getMetaData();

int cols = meta.getColumnCount();

int rownum = 0;

while( r.next() ) { rownum++;

System, out. println("Crpокa: " + rownum);

for(int i=0; i<cols; i++) {

System.out.print(meta.getColumnLabel(i+1) + ": ' + r.getObject(i+1) + ", ");

}

System.out.println("");

}

}

else

{

System.out.println(s.getUpdateCount() + " строк обработано.");

}

s.close();

con.close();

}

catch( Exception,e ) { e. printStackTrace();

}

finally

{

if( con != null )

{

try { con.close();

}

catch( SQLException e ) { }

}

}

}

}

Для каждого результирующего набора обеспечивается получение экземпляра ResultSetMetaData с помощью метода getMetaData(). При динамическом доступе к базе данных необходимо узнать, сколько колонок в результирующем наборе, чтобы с уверенностью извлечь все колонки и их имена для вывода пользователю. Метаданные нашего результирующего набора обеспечивают получение всех этих данных с помощью методов getColumnCount() и getColumnLabel().









Начало  Назад  Вперед