Guest User

Untitled

a guest
Mar 17th, 2018
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.78 KB | None | 0 0
  1. //////////////////////////////////////////////////////////////////////////////////////////////
  2. // in Datenbankzugriff
  3. //////////////////////////////////////////////////////////////////////////////////////////////
  4. public class Datenbankzugriff extends SQLiteOpenHelper {
  5. /**
  6. * @param context Die Bezugsaktivity
  7. * @param dbname Datenbank Name
  8. */
  9. public Datenbankzugriff(Context context, String dbname) {
  10.  
  11. super(context, dbname, null, 1);
  12. }
  13.  
  14. /**
  15. * Wird beim Erzeugen einer neuen DB automatisch aufgerufen
  16. * Aufruf erfolgt aber erst beim Einfuegen des ersten Datensatzes
  17. *
  18. * @param sqLiteDatabase die zu bearbetende Datenbank
  19. */
  20. @Override
  21. public void onCreate(SQLiteDatabase sqLiteDatabase) {
  22. String sql = "CREATE TABLE Tiere ("
  23. + "ID INTEGER PRIMARY KEY AUTOINCREMENT, "
  24. + "Tier NTEXT, "
  25. + "Beine INTEGER);";
  26. sqLiteDatabase.execSQL(sql);
  27.  
  28. }
  29.  
  30. // Änderungen einführen beim versionswechsel!
  31. @Override
  32. public void onUpgrade(SQLiteDatabase sqLiteDatabase, int oldVersion, int newVersion) {
  33. Log.v("XXXXX Datenbank",String.format("Upgrade von Version %d nach Version %d",
  34. oldVersion,newVersion) );
  35.  
  36. if ((oldVersion == 1) && (newVersion) ==4 ) {
  37. String sql ="ALTER TABLE Tiere ADD COLUMN Gattung NTEXT;";
  38. sqLiteDatabase.execSQL(sql);
  39. }
  40. }
  41.  
  42. // ---------------------------------------------------
  43. // EIGENE METHODEN
  44. // ---------------------------------------------------
  45.  
  46. public void ausfuehren(String sql) {
  47. // einen Link zur Datenbank abfragen, mit dem geschrieben werden kann
  48. SQLiteDatabase db = getWritableDatabase();
  49. db.execSQL(sql);
  50. db.close();
  51. }
  52.  
  53. public ArrayList<String> auslesen(String sql) {
  54. ArrayList<String> zeilen = new ArrayList<String>();
  55.  
  56. SQLiteDatabase db = getReadableDatabase();
  57.  
  58. Cursor resultSet = db.rawQuery(sql, null);
  59.  
  60. if(resultSet.moveToFirst()) {
  61. do {
  62. int id = resultSet.getInt(0);
  63. String tier = resultSet.getString(1);
  64. int beine = resultSet.getInt(2);
  65.  
  66. String zeile = String.format("Id: %d; Tier: %s; Beine: %d",id,tier,beine);
  67. zeilen.add(zeile);
  68.  
  69. } while (resultSet.moveToNext());
  70. }
  71. db.close();
  72.  
  73. return zeilen;
  74. }
  75.  
  76. }
  77.  
  78.  
  79.  
  80. //////////////////////////////////////////////////////////////////////////////////////////////
  81. // in MainActivity
  82. //////////////////////////////////////////////////////////////////////////////////////////////
  83. public class MainActivity extends AppCompatActivity {
  84.  
  85. private Button btnSpeichern, btnAuslesen, btnAendern, btnLoeschen;
  86. private EditText edTier, edBeine, edID;
  87. private TextView tv;
  88. private Datenbankzugriff datenbankzugriff;
  89.  
  90.  
  91. @Override
  92. protected void onCreate(Bundle savedInstanceState) {
  93. super.onCreate(savedInstanceState);
  94. setContentView(R.layout.activity_main);
  95.  
  96. init();
  97. datenbankzugriff = new Datenbankzugriff(this,"w2t4.sqlite");
  98.  
  99. }
  100.  
  101. private void init() {
  102. MyOCL ocl = new MyOCL();
  103.  
  104. btnSpeichern = findViewById(R.id.btnSpeichern);
  105. btnSpeichern.setOnClickListener(ocl);
  106.  
  107. btnAuslesen = findViewById(R.id.btnAuslesen);
  108. btnAuslesen.setOnClickListener(ocl);
  109.  
  110. btnAendern = findViewById(R.id.btnAendern);
  111. btnAendern.setOnClickListener(ocl);
  112.  
  113. btnLoeschen = findViewById(R.id.btnLoeschen);
  114. btnLoeschen.setOnClickListener(ocl);
  115.  
  116. edTier = findViewById(R.id.edTier);
  117. edBeine = findViewById(R.id.edBeine);
  118. edID = findViewById(R.id.edID);
  119.  
  120. tv = findViewById(R.id.tv);
  121.  
  122. }
  123.  
  124. private class MyOCL implements View.OnClickListener {
  125. @Override
  126. public void onClick(View view) {
  127. switch (view.getId()) {
  128. case R.id.btnSpeichern:
  129. speichern();
  130. break;
  131. case R.id.btnAuslesen:
  132. auslesen();
  133. break;
  134. case R.id.btnAendern:
  135. aendern();
  136. break;
  137. case R.id.btnLoeschen:
  138. loeschen();
  139. break;
  140. }
  141.  
  142. }
  143. }
  144.  
  145. private void speichern() {
  146. String t =edTier.getText().toString().trim();
  147. String b =edBeine.getText().toString().trim();
  148.  
  149. if ((t.length()>0)&&(b.length()>0)) {
  150. String sql = String.format(
  151. "INSERT INTO Tiere (Tier, Beine) VALUES ('%s',%s); ", t,b);
  152. datenbankzugriff.ausfuehren(sql);
  153. edTier.setText("");
  154. edBeine.setText("");
  155. }
  156.  
  157. }
  158. private void auslesen() {
  159. ArrayList<String> zeilen = datenbankzugriff.auslesen(
  160. "SELECT ID, Tier, Beine FROM Tiere;");
  161.  
  162. tv.setText("");
  163. for (String str: zeilen)
  164. tv.append(str + "\n");
  165. }
  166.  
  167. private void aendern() {
  168. String id = edID.getText().toString().trim();
  169. String t = edTier.getText().toString().trim();
  170. String b = edBeine.getText().toString().trim();
  171.  
  172.  
  173. if ((id.length()>0)&&(t.length()>0)&&(b.length()>0)) {
  174. String sql = String.format("UPDATE Tiere SET Tier='%s', Beine='%s' "
  175. +"WHERE ID = %s",t,b,id);
  176. datenbankzugriff.ausfuehren(sql);
  177.  
  178. edID.setText("");
  179. edTier.setText("");
  180. edBeine.setText("");
  181. }
  182. }
  183.  
  184. private void loeschen() {
  185. String id = edID.getText().toString().trim();
  186.  
  187. if (id.length()>0) {
  188. String sql = "DELETE FROM Tiere where ID = " + id + ";";
  189. datenbankzugriff.ausfuehren(sql);
  190. edID.setText("");
  191. }
  192. }
  193. }
Add Comment
Please, Sign In to add comment