SQLite的操作主要是继承SQLiteOpenHelper类,实现里面的onCreate()和onUpgrade()方法。
---贴上代码---
数据库的增删改查操作以及实现如下:
package com.example.qile.sql;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import com.example.qile.log.LogUtils;
/**
* 借助此类访问数据库
*/
public class DBContext {
private DBHelper dbHelper;
private VoiceEntity voiceEntity;
public DBContext(Context context) {
dbHelper = new DBHelper(context, "voice.db", null, 1);
}
/**
* 写入数据
*/
public long insert(ContentValues values) {
SQLiteDatabase sql = dbHelper.getWritableDatabase();
//返回值为最后写入的那条ID值
long id = sql.insert("voice", null, values);
LogUtils.logv("写入数据 Ok");
sql.close();
return id;
}
/**
* 删除数据
*/
public void delete(long id) {
SQLiteDatabase sql = dbHelper.getWritableDatabase();
sql.delete("voice", "_id=?", new String[]{String.valueOf(id)});
LogUtils.logv("<---删除数据 Ok--->");
sql.close();
}
/**
* 更新数据
*/
public void update(ContentValues values, long id) {
SQLiteDatabase sql = dbHelper.getWritableDatabase();
sql.update("voice", values, "_id=?", new String[]{String.valueOf(id)});
LogUtils.logv("<---更新数据 Ok--->");
sql.close();
}
/**
* 查询数据
*/
public VoiceEntity findAll() {
SQLiteDatabase sql = dbHelper.getReadableDatabase();
Cursor c = sql.query("voice", new String[]{"_id", "user", "type", "content"}, null, null, null, null, null);
while (c.moveToNext()) {
voiceEntity = new VoiceEntity();
voiceEntity.setId(c.getLong(0));
voiceEntity.setUser(c.getString(1));
voiceEntity.setType(c.getInt(2));
voiceEntity.setContent(c.getString(3));
}
LogUtils.logv("查询数据--->" + voiceEntity.toString());
c.close();
return voiceEntity;
}
class DBHelper extends SQLiteOpenHelper {
public DBHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
super(context, name, factory, version);
}
/**
* 创建数据库时自动调用
*/
@Override
public void onCreate(SQLiteDatabase db) {
String sql = "create table if not exists voice("
+ "_id integer primary key,"
+ "user varchar(100),"
+ "type varchar(100),"
+ "content varchar(100) )";
db.execSQL(sql);
LogUtils.logv("<---table 创建 Ok--->");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
}
用来存放数据的实体类如下:
package com.example.qile.sql;
import java.io.Serializable;
/**
* 实体类
*/
public class VoiceEntity implements Serializable {
private static final long serialVersionUID = -3288358002442732585L;
/**
* ID
*/
private long id;
/**
* 用户
*/
private String user;
/**
* 类型
*/
private int type;
/**
* 内容
*/
private String content;
public VoiceEntity() {
super();
}
public static long getSerialVersionUID() {
return serialVersionUID;
}
public long getId() {
return id;
}
public String getUser() {
return user;
}
public int getType() {
return type;
}
public String getContent() {
return content;
}
public void setId(long id) {
this.id = id;
}
public void setUser(String user) {
this.user = user;
}
public void setType(int type) {
this.type = type;
}
public void setContent(String content) {
this.content = content;
}
@Override
public String toString() {
return "VoiceEntity{" +
"id=" + id +
", user='" + user + '\'' +
", type=" + type +
", content='" + content + '\'' +
'}';
}
}