Ahoj. Robím aplikáciu pre android. Ide o to, že mám vytvorenú databázu na SQL serveri, ku ktorému sa pripojím a potrebujem vytiahnuť z mojej databázy určité údaje k nejakej knihe. Tabuľka obsahuje záznamy ako Autor, Názov knihy, Rok vydania, Počet strán, ISBN. Potrebujem aby mi na displej vytiahlo všetky tieto údaje ale len ku jednej knihe. Len neviem ako nato. Podarilo sa mi to urobiť tak, že mi vytiahne len jeden údaj napríklad ROK. Vedel by mi niekto s tým pomôcť? Som v koncoch, na internete som nič nenašiel. Vopred ďakujem za každú radu. Prikladám aj kód, ktorý mi robí výber jedného záznamu.
Kód:
import java.io.IOException;
public class MainActivity extends ActionBarActivity implements Runnable {
TextView databaza;
String url = "jdbc:jtds:sqlserver://XXXXX;instance=XXXX;user=XXXX;password=XXXX";
Connection con = null;
Statement st = null;
ResultSet rs = null;
Thread v;
Bundle objekt = new Bundle();
Bundle objekt2 = new Bundle();
int rok;
int result = 0;
Handler MyHandler = new Handler()
{
@Override
public void handleMessage(Message msg)
{
databaza.setText(String.valueOf(msg.what));
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
databaza = (TextView)findViewById(R.id.text);
}
public void Spojenie(View w)
{
v =new Thread(this);
databaza.setText("");
v.start();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
long id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
@Override
public void run() {
ResultSetMetaData rsmd = null;
Message msg = null;
try
{
Class.forName("net.sourceforge.jtds.jdbc.Driver").newInstance();
con = DriverManager.getConnection(url);
st = con.createStatement();
String sql = "SELECT Rok FROM zaznam where ISBN=123";
rs = st.executeQuery(sql);
while(rs.next()){
rok = rs.getInt("Rok");
}
rsmd = rs.getMetaData();
con.close();
result = rok;
} catch
(InstantiationException | IllegalAccessException
| ClassNotFoundException | SQLException e) {
e.printStackTrace();
}
try {
Log.d("com.example.driver", "OK");
MyHandler.sendMessage(MyHandler.obtainMessage(result));
} catch (Throwable t) {
MyHandler.sendMessage(MyHandler.obtainMessage(100));
}
}
}