Sqlite
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class SQLite extends SQLiteOpenHelper{
public SQLite(Context context) {
super(context, "users.db", null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table users(_id Integer primary key autoincrement,name varchar(20),phone varchar(20))");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
UserDao
package com.lixin.sqlite.dao;
import com.example.day3sqlite.SQLite;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
public class UserDao {
private SQLiteDatabase db;
private static final String TABLE_NAME = "users";
public UserDao(Context context){
SQLite sqLite = new SQLite(context);
db = sqLite.getWritableDatabase();
}
//使用特殊的方式添加一条数据记录
public boolean add(String name,String phone){
/**
* table : 表名
* nullColumnHack : 指定某一个字段是可填可不填 (选填) 并没有什么乱用
* values : ContentValues 类似Map map key-value
* ContentValues : key: 相当于某张表中的列名 value : 值
*
*/
ContentValues values = new ContentValues();
values.put("name", name);
values.put("phone", phone);
long insert = db.insert(TABLE_NAME, null, values);
if (insert!=-1) {
return true;
}else {
return false;
}
}
/**
* 使用特殊方式修改一条数据记录
* @param id 修改用户的id
* @return
*/
public boolean update(String name,int id){
/**
* table : 表名
* values : 指定你要修改的列值
* whereClause : 修改的条件
* whereArgs : 修改的条件值
*/
ContentValues values = new ContentValues();
values.put("name", name);
int update = db.update(TABLE_NAME, values, "_id=?", new String[]{String.valueOf(id)});
if (update>0) {
return true;
}else{
return false;
}
}
/**
* 使用特殊方式删除一条数据记录
* @param id 删除的用户id
* @return
* @return
*/
public boolean delete(int id){
/**
* table : 表名
* whereClause : 删除条件
* whereArgs : 删除的条件值
*/
int delete = db.delete(TABLE_NAME, "_id = ?", new String[]{String.valueOf(id)});
if (delete>0) {
return true;
}else {
return false;
}
}
/**
* 使用特殊的方式查询所有的数据
* @return
* @return
*/
public String findAll(){
/**
* distinct : true 去除重复数据 false 不去除重复数据 默认情况下,false
* table : 表名
* columns : 指定你要查询的列 例如:name,phone 指定多列,列之间用逗号隔开
* 想要查询表中所有列的信息,填:null
*
* selection : 查询的条件
*
* selectionArgs : 查询的条件值
*
* groupBy : 分组查询
*
* having : 子条件查询语句
*
*
* orderBy : 是否排序 升序/降序 1->2->3 3->2->1
*
*
* limit : 分页查询
*
*/
try {
Cursor cursor = db.query(false, TABLE_NAME, null, null, null, null, null, null, null);
StringBuffer sb = new StringBuffer();
while (cursor.moveToNext()) {
String name = cursor.getString(cursor.getColumnIndex("name"));
String phone = cursor.getString(cursor.getColumnIndex("phone"));
sb.append("姓名 : "+name+" 电话 : "+phone+"\n");
}
//关闭游标
closeCursor(cursor);
return sb.toString();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
/**
* 使用特殊方式进行条件查询
* @param id 查询的用户id
* @return
* @return
*/
public String findOption(int id){
Cursor cursor = db.query(TABLE_NAME, null, "_id = ?", new String[]{String.valueOf(id)}, null, null, null);
String result = "";
while(cursor.moveToNext()){
String name = cursor.getString(cursor.getColumnIndex("name"));
String phone = cursor.getString(cursor.getColumnIndex("phone"));
result = "姓名 : "+name+" 电话 : "+phone;
}
//关闭游标
closeCursor(cursor);
return result;
}
/**
* 关闭游标
* @param cursor 指定你要关闭的游标
*/
public void closeCursor(Cursor cursor){
//判断游标是否关闭
if(!cursor.isClosed()){
cursor.close();
}
}
/**
* 关闭数据库
*/
public void closeDB(){
//判断当前数据库是否已经关闭
if(db.isOpen()){
//关闭数据库释放资源
db.close();
}
}
}
最后 在主方法中调用即可