Hallo. Ich bin Wataku, ein serverseitiger Programmierer, der an einer bestimmten Schule Programmieren studiert. : entspannt: Dieses Mal möchte ich Android anstelle von WEB-Programmierung entwickeln.
(1) Bereiten Sie eine DB-Hilfsklasse vor. (2) Rufen Sie ein DB-Verbindungsobjekt (** SQLiteDatabase-Objekt **) von der Hilfsklasse in der Aktivität ab. (3) Führen Sie SQL mit dem DB-Verbindungsobjekt aus.
Erstellen Sie durch ** Erben ** der ** SQLiteOpenHelper-Klasse **. Zu diesem Zeitpunkt sind drei Methoden implementiert. ⒈ Konstruktor ⒉onCreate() ⒊onUpgrade()
Erstellen Sie einen Konstruktor und schreiben Sie * supper (4 Argumente) * hinein.
Kontext
DatabaseHelper.java
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class DatabaseHelper extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "Name der Datenbank";
private static final int DATABASE_VERSION = 1;
public DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db ) {
StringBuffer sb = new StringBuffer();
sb.append("Tabellenname CREATE TABLE(");
sb.append("_id INTEGER PRIMARY KEY AUTOINCREMENT, ");
sb.append("content TEXT, ");
sb.append(");");
String sql = sb.toString();
db.execSQL(sql);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
① Hilfsobjektgenerierung (2) Holen Sie sich ein DB-Verbindungsobjekt vom Helfer. ③ Datenverarbeitung ④ Geben Sie das DB-Verbindungsobjekt frei
〜〜〜〜Activity.java
① DatabaseHelper helper = new DatabaseHelper(Kontext);
② SQLiteDatabase db = helper.getWritableDatabase();
try {
③ //DB-Verarbeitung
} catch(Exception ex) {
Log.e("MemoPad", ex.toString());
} finally {
④ db.close();
}
① Generieren Sie eine SQL-Zeichenfolge
② Holen Sie sich ein Anweisungsobjekt
SQLiteStatement stmt = db.compileStatement("SQL-Zeichenfolge");
③ Variable Bindung
stmt.Datentyp binden(?? Auftrag,Wert);
④ SQL ausführen
stmt.executeInsert();
stmt.executeUpdateDelete();
① Generieren Sie eine SQL-Zeichenfolge
② SQL ausführen
Cursor cursor = db.rawQuery("SQL-Zeichenfolge", null);
③ Schleifencursor
while (cursor.moveToFirst()) {}
if (cursor.moveToFirst ()) {}
④ Holen Sie sich die Daten jeder Zeile
int Variable= cursor.getColumnIndex("Säule");
String-Spalte= cursor.Spalten-Datentyp abrufen(Variable);
DataAccess.java
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteStatement;
import java.sql.Timestamp;
public class DataAccess {
public static Memo findByPK(SQLiteDatabase db, int id) {
String sql = "SELECT _id, title, content, update_at FROM memos WHERE _id = " + id;
Cursor cursor = db.rawQuery(sql, null);
Memo result = null;
if (cursor.moveToFirst()) {
int idxTitle = cursor.getColumnIndex("title");
int idxContent = cursor.getColumnIndex("content");
int idxUpdateAt = cursor.getColumnIndex("update_at");
String title = cursor.getString(idxTitle);
String content = cursor.getString(idxContent);
String updateAtStr = cursor.getString(idxUpdateAt);
Timestamp updateAt = Timestamp.valueOf(updateAtStr);
/*
*Setter
*/
result = new Memo();
result.setId(id);
result.setTitle(title);
result.setContent(content);
result.setUpdateAt(updateAt);
}
return result;
}
public static int update(SQLiteDatabase db, int id, String title, String content) {
String sql = "UPDATE memos SET title = ?, content = ?, update_at = datetime('now') WHERE _id = ?";
SQLiteStatement stmt = db.compileStatement(sql);
stmt.bindString(1, title);
stmt.bindString(2, content);
stmt.bindLong(3, id);
int result = stmt.executeUpdateDelete();
return result;
}
public static long insert(SQLiteDatabase db, String title, String content) {
String sql = "INSERT INTO memos (title, content, update_at) VALUES (?, ?, datetime('now'))";
SQLiteStatement stmt = db.compileStatement(sql);
stmt.bindString(1, title);
stmt.bindString(2, content);
long id = stmt.executeInsert();
return id;
}
public static int delete(SQLiteDatabase db, int id) {
String sql = "DELETE FROM memos WHERE _id = ?";
SQLiteStatement stmt = db.compileStatement(sql);
stmt.bindLong(1, id);
int result = stmt.executeUpdateDelete();
return result;
}
}
Wenn Sie MVC übernehmen und die DB-Verarbeitung als Modell in einer anderen Klasse beschreiben (3) Machen Sie die Datenverarbeitung zu einer Methode.
Zu diesem Zeitpunkt ist es nicht erforderlich, die DAO-Klasse neu zu erstellen, da diese Methoden "statisch" sind, wodurch Speicherplatz gespart wird.
das ist alles. Wenn Sie Vorschläge wie etwas falsches haben, kontaktieren Sie uns bitte. Vielen Dank für das Lesen bis zum Ende.
Recommended Posts