Код: Выделить всё
package com.example.aao;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.TextView;
public class MainActivity extends Activity {
TextView tvOut;
final String LOG_TAG = "myLogs";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tvOut = (TextView) findViewById(R.id.tvOut);
}
private void addToFacility() {
DBHelper db = new DBHelper(this, AppData.DATABASE_NAME, null, AppData.DATABASE_VERSION);
db.addFacility(new Facility("Первый объект", 13.8279, 32.2835, 17.5075));
Log.d(LOG_TAG, "добавлено");
}
private void deleteFacility() {
DBHelper db = new DBHelper(this, AppData.DATABASE_NAME, null, AppData.DATABASE_VERSION);
List<Facility> facilityList = db.getAllFacility();
int result = 0;
for(Facility facility : facilityList) {
if(facility.getId() == 2)
result = db.deleteFacility(facility);
}
if(result == 1)
Log.d(LOG_TAG, "запись успешно удалена");
else
Log.d(LOG_TAG, "при удалении произошла ошибка");
}
private void readFacility() {
DBHelper db = new DBHelper(this, AppData.DATABASE_NAME, null, AppData.DATABASE_VERSION);
List<Facility> facilityList = db.getAllFacility();
for(Facility facility : facilityList) {
Log.d(LOG_TAG, "ID = " + facility.getId() + " TITLE = " + facility.getTitle() +
" LATITUDE = " + facility.getLatit() + " LONGITUDE = " + facility.getLongit() +
" ZOOM = " + facility.getZoom());
}
}
public void onClickAdd(View view) {
addToFacility();
}
public void onClickDel(View view) {
deleteFacility();
}
public void onClickRead(View view) {
readFacility();
}
public class AppData {
public final static int DATABASE_VERSION = 2;
public final static String DATABASE_NAME = "facilityDB.sqlite3";
public final static String TABLE_NAME = "facility";
public final static String COLUMN_ID = "_id";
public final static String COLUMN_TITLE = "title";
public final static String COLUMN_LATIT = "latit";
public final static String COLUMN_LONGIT = "longit";
public final static String COLUMN_ZOOM = "zoom";
}
public class Facility {
private int id;
private String title;
private double latit;
private double longit;
private double zoom;
public Facility() {
}
public Facility(String _title, double _latit, double _longit, double _zoom) {
title = _title;
latit = _latit;
longit = _longit;
zoom = _zoom;
}
public Facility(int _id, String _title, double _latit, double _longit, double _zoom) {
id = _id;
title = _title;
latit = _latit;
longit = _longit;
zoom = _zoom;
}
public void setId(int _id) {
id = _id;
}
public void setTitle(String _title) {
title = _title;
}
public void setLatit(double _latit) {
latit = _latit;
}
public void setLongit(double _longit) {
longit = _longit;
}
public void setZoom(double _zoom) {
zoom = _zoom;
}
public int getId() { return id; }
public String getTitle() { return title; }
public double getLatit() { return latit; }
public double getLongit() { return longit; }
public double getZoom() { return zoom; }
}
public class DBHelper extends SQLiteOpenHelper {
public DBHelper(Context context, String name, CursorFactory factory, int version) {
super(context, name, factory, version);
}
@Override
public void onCreate(SQLiteDatabase db) {
String createFacilityTable = "CREATE TABLE " + AppData.TABLE_NAME + " (" + AppData.COLUMN_ID +
" INTEGER PRIMARY KEY AUTOINCREMENT, " + AppData.COLUMN_TITLE + " TEXT NOT NULL, " +
AppData.COLUMN_LATIT + " DOUBLE NOT NULL, " + AppData.COLUMN_LONGIT + " DOUBLE NOT NULL, " +
AppData.COLUMN_ZOOM + " DOUBLE NOT NULL)";
db.execSQL(createFacilityTable);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
if(AppData.DATABASE_VERSION < newVersion) {
db.execSQL("DROP TABLE IF EXISTS " + AppData.TABLE_NAME);
onCreate(db);
}
}
public List<Facility> getAllFacility() {
List<Facility> facilityList = new ArrayList<Facility>();
String query = "SELECT * FROM " + AppData.TABLE_NAME;
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery(query, null);
if(cursor.moveToFirst()) {
do {
Facility facility = new Facility();
facility.setId(Integer.parseInt(cursor.getString(0)));
facility.setTitle(cursor.getString(1));
facility.setLatit(Double.parseDouble(cursor.getString(2)));
facility.setLongit(Double.parseDouble(cursor.getString(3)));
facility.setZoom(Double.parseDouble(cursor.getString(4)));
facilityList.add(facility);
} while(cursor.moveToNext());
}
return facilityList;
}
public void addFacility(Facility facility) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues cv = new ContentValues();
cv.put(AppData.COLUMN_TITLE, facility.getTitle());
cv.put(AppData.COLUMN_LATIT, facility.getLatit());
cv.put(AppData.COLUMN_LONGIT, facility.getLongit());
cv.put(AppData.COLUMN_ZOOM, facility.getZoom());
db.insert(AppData.TABLE_NAME, null, cv);
db.close();
}
public Facility getFacility(int id) {
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.query(AppData.TABLE_NAME, new String[] { AppData.COLUMN_ID, AppData.COLUMN_TITLE, AppData.COLUMN_LATIT , AppData.COLUMN_LONGIT, AppData.COLUMN_ZOOM },
AppData.COLUMN_ID + "=?", new String[] { String.valueOf(id) }, null, null, null);
if(cursor != null)
cursor.moveToFirst();
Facility facility = new Facility(Integer.parseInt(cursor.getString(0)), cursor.getString(1), Double.parseDouble(cursor.getString(2)), Double.parseDouble(cursor.getString(3)), Double.parseDouble(cursor.getString(4)));
return facility;
}
public int updateFacility(Facility facility) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues cv = new ContentValues();
cv.put(AppData.COLUMN_TITLE, facility.getTitle());
cv.put(AppData.COLUMN_LATIT, facility.getLatit());
cv.put(AppData.COLUMN_LONGIT, facility.getLongit());
cv.put(AppData.COLUMN_ZOOM, facility.getZoom());
return db.update(AppData.TABLE_NAME, cv, AppData.COLUMN_ID + "=?", new String[] { String.valueOf(facility.getId()) });
}
public int deleteFacility(Facility facility) {
SQLiteDatabase db = this.getWritableDatabase();
return db.delete(AppData.TABLE_NAME, AppData.COLUMN_ID + "=?", new String[] { String.valueOf(facility.getId()) });
}
public int getFacilityCount() {
String query = "SELECT * FROM " + AppData.TABLE_NAME;
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery(query, null);
cursor.close();
return cursor.getCount();
}
public Cursor getAllCursor() {
SQLiteDatabase db = this.getReadableDatabase();
return db.query(AppData.TABLE_NAME, null, null, null, null, null, null);
}
}
}