/**
*
*/
package com.example.day_02_sqlite_.dao;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.util.Log;
import com.example.day_02_sqlite_.MySQLiteOpenHelper;
/**
* @author WJL
*
*/
public class StudentDao {
private SQLiteDatabase db;
private MySQLiteOpenHelper openHelper;
// 构造方法
public StudentDao(Context context) {
openHelper = new MySQLiteOpenHelper(context);
}
// 增
public void insert(String name, String sex) {
// 通过写数据库的方式,打开数据库,得到一个数据库对象
db = openHelper.getWritableDatabase();
// 得到ContentValues对象,对象里包含要插入的信息
ContentValues values = new ContentValues();
// 通过键值对形式设置数据,参数一:列名;参数二:列名对应的值
values.put("name", name);
values.put("sex", sex);
// 参数一:表名
// 参数二:如果ContentValues为空,插入的时候列名对应的值就插入"null"
// 参数三:要插入的数据
// 返回值(long):如果插入成功,返回插入的行ID,如果失败返回-1
db.insert("student", null, values);
// 关闭数据库,释放资源
db.close();
}
// 删
public void delete(String name) {
// 通过写数据库的方式,打开数据库,得到一个数据库对象
db = openHelper.getWritableDatabase();
// 参数一:表名
// 参数二:删除操作的条件
// 参数三:占位符对应的数据
// 返回值(int):删除时,影响了多少行
db.delete("student", "name = ?", new String[] { name });
// 关闭数据库,释放资源
db.close();
}
// 改
public void update(String name) {
// 通过写数据库的方式,打开数据库,得到一个数据库对象
db = openHelper.getWritableDatabase();
// 要修改的数据,通过键值对形式设置数据,
ContentValues values = new ContentValues();
// 参数一:列名;参数二:列名对应的值
values.put("sex", "妖");
// 参数一:表名
// 参数二:修改后的数据
// 参数三:修改操作的条件
// 参数四:占位符对应的数据
// 返回值(int):修改时,影响了多少行
db.update("student", values, "name = ?", new String[] { name });
// 关闭数据库,释放资源
db.close();
}
// 查
public void select(String name) {
// 通过写数据库的方式,打开数据库,得到一个数据库对象
db = openHelper.getWritableDatabase();
/*
* Table 表名 Columens 要返回的列 Selection 查询条件 selectionArgs 查询条件占位符对应的内容
* groupBy 分组判断条件 Having 是否含有的判断条件 orderBy 排序判断条件 Limit 分页查询判断条件
*/
// 返回值(Cursor):包含查询到的数据
Cursor cursor = db.query("student", new String[] { "name", "sex" },
"name = ?", new String[] { name }, null, null, null, null);
while (cursor.moveToNext()) {
String uesrName = cursor.getString(cursor.getColumnIndex("name"));
String sex = cursor.getString(cursor.getColumnIndex("sex"));
Log.i("MainActivity", "uesrName=" + uesrName + " sex=" + sex);
}
// 关闭数据库,释放资源
db.close();
}
}
=======================================================================================================
/**
*
*/
package com.example.day_02_sqlite_;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
/**
* @author WJL
*
*/
public class MySQLiteOpenHelper extends SQLiteOpenHelper {
/**
* @param context
* @param name 数据库的名称 (参数二)
* @param factory 数据库游标的工厂类(参数三)
* @param version 数据库的版本(参数四)
*/
public MySQLiteOpenHelper(Context context) {
super(context, "1409a", null, 1);
}
@Override//数据库创建
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table student( id integer primary key autoincrement,name varchar(20), sex varchar(20) )");
}
@Override//数据库升级 根据数据库的版本判断是否需要升级
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
==============================================================================================
package com.example.day_02_sqlite_;
import com.example.day_02_sqlite_.dao.StudentDao;
import android.os.Bundle;
import android.app.Activity;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.util.Log;
import android.view.Menu;
import android.view.View;
public class MainActivity extends Activity {
private StudentDao studentDao;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//参数一:数据库的路径
//参数二:工厂类
//参数三:打开数据库的模式;读写,只读
// SQLiteDatabase db= SQLiteDatabase.openDatabase(path, factory, OPEN_READWRITE);
studentDao = new StudentDao(this);
}
// 插入
public void insert(View v) {
studentDao.insert("张三", "男");
studentDao.insert("李四", "男");
}
// 删
public void delete(View v) {
studentDao.delete("张三");
}
// 改
public void update(View v) {
studentDao.update("李四");
}
// 查
public void select(View v) {
studentDao.select("李四");
}
}