也许你会帮助我,这将是非常好的:-然后我在我的活动中得到这个代码,我想在另一个textview中显示这个细节。所以我打开任务但我甚至没有在LogCat中看到System.out.println中的Message。我该如何正确使用它?
public static TextView auswahl;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_beschreibung);
auswahl = (TextView) findViewById(R.id.txtauswahl);
auswahl.setText(GlossarFragment.keyword);
//Öffnen des SQL Befehls zum Einlesen des Eintrages
GetBeschreibungFromDBAsyncTask task = new GetBeschreibungFromDBAsyncTask();
task.execute();
List<String> res;
try {
res = task.get();
for(String s:res) {
System.out.println("AAAAAAAAAAAAAAAA: " + s);
}
} catch (InterruptedException e) {
// TODO Automatisch generierter Erfassungsblock
e.printStackTrace();
} catch (ExecutionException e) {
// TODO Automatisch generierter Erfassungsblock
e.printStackTrace();
}
}
这是从数据库中获取描述的任务。
public class GetBeschreibungFromDBAsyncTask extends AsyncTask<String,Void,List<String>> {
private static String QUERY = "SELECT \"Beschreibung\" FROM \"Glossar\" WHERE \"Name\" = ?;";
private String ausw;
@Override
//im Hintergrund die SQL Abfrage ausgeführt und die Ergebnisse in die Liste eingelesen
protected List<String> doInBackground(String... params) {
ausw = BeschreibungActivity.auswahl.toString();
List<String> res = new ArrayList<String>();
try {
Connection conn;
conn = JdbcConnectionManager.getConnection();
PreparedStatement prepState = conn.prepareStatement(QUERY);
prepState.setString(1, ausw);
ResultSet resSet = prepState.executeQuery();
while(resSet.next()) {
res.add(resSet.getString(1));
}
prepState.close();
conn.close();
} catch (SQLException sqle) {
//bei einem Fehler in der SQL Anweisung
System.out.println("SSSSSSSSSSSSSSSSSSSSSSSSSSSSS");
sqle.printStackTrace();
}
return res;
}
答案 0 :(得分:0)
声明参数的正确方法是使用?
,例如where someColumnn = ?
顺便问一下,你想用什么样的数据库? JDBC它可能不是使用语言环境SQLite数据库的最佳方式(我甚至不知道它受支持)。