Bonjour. Je suis Wataku, un programmeur côté serveur qui étudie la programmation dans une certaine école. : détendu: Cette fois, j'aimerais développer Android au lieu de la programmation WEB.
(1) Préparez une classe d'assistance DB. (2) Obtenez un objet de connexion de base de données (** objet SQLiteDatabase **) de la classe d'assistance dans l'activité. (3) Exécutez SQL à l'aide de l'objet de connexion DB.
Créer en ** héritant ** de la ** classe SQLiteOpenHelper **. A ce moment, trois méthodes sont mises en œuvre. ⒈ Constructeur ⒉onCreate() ⒊onUpgrade()
Créez un constructeur et écrivez * souper (4 arguments) * dedans.
le contexte
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 = "Nom de la base de données";
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("CREATE TABLE nom de la 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) {
}
}
① Génération d'objet d'aide (2) Obtenez un objet de connexion de base de données de l'assistant. ③ Traitement des données ④ Libérer l'objet de connexion DB
〜〜〜〜Activity.java
① DatabaseHelper helper = new DatabaseHelper(le contexte);
② SQLiteDatabase db = helper.getWritableDatabase();
try {
③ //Traitement DB
} catch(Exception ex) {
Log.e("MemoPad", ex.toString());
} finally {
④ db.close();
}
① Générer une chaîne de caractères SQL
② Obtenir un objet instruction
SQLiteStatement stmt = db.compileStatement("Chaîne SQL");
③ Reliure variable
stmt.type de données de liaison(?? Commande,valeur);
④ Exécuter SQL
stmt.executeInsert();
stmt.executeUpdateDelete();
① Générer une chaîne de caractères SQL
② Exécuter SQL
Cursor cursor = db.rawQuery("Chaîne SQL", null);
③ Curseur de boucle
while (cursor.moveToFirst()) {}
ʻif (cursor.moveToFirst ()) {}
`④ Obtenez les données de chaque ligne
variable int= cursor.getColumnIndex("colonne");
Colonne de chaîne= cursor.obtenir le type de données de la colonne(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;
}
}
Lors de l'adoption de MVC et de la description du traitement DB comme modèle dans une autre classe (3) Faire du traitement des données une méthode.
À ce moment-là, en rendant ces méthodes «statiques», il n'est pas nécessaire de créer une nouvelle classe DAO, ce qui économise de la mémoire.
c'est tout. Si vous avez des suggestions telles que quelque chose qui ne va pas, veuillez nous contacter. Merci d'avoir lu jusqu'au bout.