package com.example.sqlitedemo03.dbhelper;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import androidx.annotation.Nullable;
import com.example.sqlitedemo03.dao.FriendDao;
import com.example.sqlitedemo03.model.Friend;
import java.util.ArrayList;
import java.util.List;
public class FriendDBOne extends SQLiteOpenHelper implements FriendDao {
public static final String DBNAME
= "antilaila8";
public static final int DBVERSION = 1;
public FriendDBOne
(@Nullable
Context context
) {
super(context, DBNAME, null, DBVERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
String sql
= "create table friend(" +
"id integer primary key autoincrement," +
"name varchar(20) not null," +
"address varchar(30)," +
"phone varchar(14))";
db.execSQL(sql);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
if (oldVersion < newVersion) {
db.execSQL("drop table if exists friend");
onCreate(db);
}
}
@Override
public void insert(Friend f) {
String sql
= "insert into friend values(?,?,?,?)";
getWritableDatabase
().
execSQL(sql,
new Object[]{
f.getName(),
f.getAddress(),
f.getPhone()
});
}
@Override
public void update(Friend f) {
String sql
= "update friend set name=?, address=?, phone=? where id=?";
getWritableDatabase
().
execSQL(sql,
new Object[]{
f.getName(),
f.getAddress(),
f.getPhone(),
f.getId()
});
}
@Override
public void delete(int id) {
getWritableDatabase
().
execSQL("delete from friend where id=?",
new Object[]{id
});
}
@Override
public void deleteAllFriends() {
getWritableDatabase().execSQL("delete from friend");
getWritableDatabase
().
execSQL("update sqlite_sequence set seq = 0 where name = ?",
new Object[]{"friend"});
}
@Override
public Friend getAFriendById(int id) {
Friend result = null;
Cursor cursor
= getReadableDatabase
().
rawQuery("select * from friend where id=?",
new String[]{String.
valueOf(id
)});
if(cursor.moveToFirst())
result = new Friend(
cursor.getInt(0), //id
cursor.getString(1), //name
cursor.getString(2), //address
cursor.getString(3) //phone
);
return result;
}
@Override
public List<Friend> getAllFriends() {
List<Friend> result = new ArrayList<>();
Cursor cursor
= getReadableDatabase
().
rawQuery("select * from friend",
null);
while(cursor.moveToNext())
result.add(new Friend(
cursor.getInt(0),
cursor.getString(1),
cursor.getString(2),
cursor.getString(3)
));
return result;
}
}