首先我们去继承SQLiteOpenHelper 并实现这几个方法
public class DbHelp extends SQLiteOpenHelper{
/ /构造方法(第一个上下文,第二个我们想创建数据库的名称,第三个是一个游标工厂对象,第四个时版本号)
public DbHelp(Context context) {
super(context, "kang.db", null, 1);
// TODO Auto-generated constructor stub
}
//当数据库第一次被创建的时候所调用的方法 该方法只会执行一次
@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
db.execSQL("create table kang( _id integer primary key, xuehao varchar(20), name varchar(20), age integer);");
}
// 当数据库更新的时候所调用的方法也就是说 在构造方法中的版本号发生改变的时候 调用
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
}
}
这时我们的数据库已经创建好啦,我们现在去操作它,
public class DbDao {//对数据库操作的类
private DbHelp dbhelp;
//构造方法 我们去new一个上面我们写的类 创建一个数据库 和一个表
public DbDao(Context context) {
dbhelp=new DbHelp(context);
}
// 我们去插入一个 数据 sql语句 insert into kang (xuehao,name,age) values(?,?,?); ?占位符
public void insert(StuData stu) {
SQLiteDatabase db=dbhelp.getWritableDatabase();
if (db.isOpen()) {
db.execSQL("insert into kang (xuehao,name,age) values(?,?,?);", new Object[]{stu.getSix(),stu.getName(),stu.getAge()});
db.close();
}
}
// 删除一个数据 sql语句 delete from kang where xuehao=?;
public void delete(String id) {
SQLiteDatabase db=dbhelp.getWritableDatabase();
if (db.isOpen()) {
db.execSQL("delete from kang where xuehao=?;", new String[]{id});
db.close();
}
}
//更新一个数据 sql语句 update kang set name=? where xuehao=?;
public void updata(String name,String id) {
SQLiteDatabase db=dbhelp.getWritableDatabase();
if (db.isOpen()) {
db.execSQL("update kang set name=? where xuehao=?;", new String[]{name,id});
db.close();
}
}
// 查询全部 sql语句 select xuehao,name,age from kang;
public List<StuData> queryAll(){
List<StuData> lsDatas=new ArrayList<StuData>();
SQLiteDatabase db=dbhelp.getReadableDatabase();
if (db.isOpen()) {
Cursor cursor=db.rawQuery("select xuehao,name,age from kang;", null);
if (cursor!=null&&cursor.getCount()>0) {
while (cursor.moveToNext()) {
String xuehao= cursor.getString(0);
String name=cursor.getString(1);
int age=cursor.getInt(2);
lsDatas.add(new StuData(name,xuehao,age));
}
}
cursor.close();
db.close();
return lsDatas;
}
db.close();
return null;
}
//查询符合条件的 select xuehao,name,age from kang where xuehao=?;
public StuData queryitem(String xue){
StuData stuData;
SQLiteDatabase db=dbhelp.getReadableDatabase();
if (db.isOpen()) {
Cursor cursor=db.rawQuery("select xuehao,name,age from kang where xuehao=?", new String[]{xue});
if (cursor!=null&&cursor.moveToFirst()) {
String xuehao= cursor.getString(0);
String name=cursor.getString(1);
int age=cursor.getInt(2);
stuData=new StuData(name, xuehao, age);
cursor.close();
db.close();
return stuData;
}
}
return null;
}
}
sql 语句 后面是? 所对应的值 一一对应
还有 cursor游标 它帮助我们去查找 cursor.moveToNext() 移动到下一行