Доступ к таблице - SQL (Java)
Предположим, у меня есть таблица MYtable, как указано ниже:
ID A B C
1 100 APPLE CAKE
2 200 BANANA PIE
Я хочу иметь возможность сохранить все эти записи таблицы в списке (какой-то вид) и перебирать каждую запись.
Запрос будет:
select * from Mytable where ID in (1,2,3)
Итак, в списке должно быть 2 записи: запись1 должна содержать 1100,APPLE,CAKE и запись2 должна содержать 2200,BANANA,PIE
Я также хочу иметь возможность перебирать каждую запись
Итак, для record1 - я хочу получить getColumnA, т.е. 100, getColumnB, т.е. APPLE, и так далее.
3 ответа
List<YourObject> listOfObjects = new ArrayList<YourObject>();
while(rs.next()){
int id = rs.getInt(1);
int A = rs.getInt(2);
String B= rs.getString(3);
String C = rs.getString(4);
YourObject ob = new YourObject (id, A, B, C);
listOfObjects.add(ob); //now you have the list of objects .. iterate trough it
}
Сначала вам понадобится JDBC для подключения к базе данных.
Вы можете использовать Statement или PreparedStatement для извлечения данных из базы данных, а затем вы можете получить эти данные, сохраненные в ResultSet.
Теперь вы можете перебирать результаты в ResultSet.
Для этого вам нужно реализовать JDBC.
После создания соединения JDBC. Выполнить запрос и извлечь записи из набора результатов. Из записи вы также можете получить определенные столбцы.
см. следующий пример, как работать с jdbc basic
import java.sql.* ;
class JDBCQuery
{
public static void main( String args[] )
{
try
{
// Load the database driver
Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver" ) ;
// Get a connection to the database
Connection conn = DriverManager.getConnection( "jdbc:odbc:Database" ) ;
// Print all warnings
for( SQLWarning warn = conn.getWarnings(); warn != null; warn = warn.getNextWarning() )
{
System.out.println( "SQL Warning:" ) ;
System.out.println( "State : " + warn.getSQLState() ) ;
System.out.println( "Message: " + warn.getMessage() ) ;
System.out.println( "Error : " + warn.getErrorCode() ) ;
}
// Get a statement from the connection
Statement stmt = conn.createStatement() ;
// Execute the query
ResultSet rs = stmt.executeQuery( "select * from Mytable where ID in (1,2,3)" ) ;
// Loop through the result set
while( rs.next() )
{
System.out.println( rs.getString('ID') ) ;
System.out.println( rs.getString('A') ) ;
System.out.println( rs.getString('B') ) ;
System.out.println( rs.getString('C') ) ;
}
// Close the result set, statement and the connection
rs.close() ;
stmt.close() ;
conn.close() ;
}
catch( SQLException se )
{
System.out.println( "SQL Exception:" ) ;
// Loop through the SQL Exceptions
while( se != null )
{
System.out.println( "State : " + se.getSQLState() ) ;
System.out.println( "Message: " + se.getMessage() ) ;
System.out.println( "Error : " + se.getErrorCode() ) ;
se = se.getNextException() ;
}
}
catch( Exception e )
{
System.out.println( e ) ;
}
}
}