实例:
1.写一个SQLiteOpenHelper创建数据库:
创建数据的sql语句模式是:
名称的数据格式需要注意,特别是text类需要在使用的时候添加单引号,否则报错;
未免这种错失,可以使用占位符方式,看例子2
create table XX (XX integer primary key autoincrement,XX text not null,XX integer not null)
package com.man.SQLiteDemoOne;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class DBhelper extends SQLiteOpenHelper {
public DBhelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
super(context, name, factory, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table if not exists demo(_id integer primary key autoincrement,name text not null, age integer not null)");
db.execSQL("insert into demo(name,age)values('Tom',25)");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("drop table if exists demo");
onCreate(db);
}
}
2.写一个增删改查的类以及其中的方法:
注意,text的引号使用
package com.man.SQLiteDemoOne;
import android.database.sqlite.SQLiteDatabase;
public class MyOperation {
private SQLiteDatabase db = null;
public MyOperation(SQLiteDatabase db) {
this.db = db;
}
public void insertData(String name, int age) {
db.execSQL("insert into demo (name,age) values('"+name+"',"+age+")");
}
public void deleteData(int id){
db.execSQL("delete from demo where _id="+id);
}
public void updateData(int id,String name ,int age){
db.execSQL("update demo set name='" + name+"',age=" + age + " where _id=" + id);
}
}
3.在main类中调用:
package com.man.SQLiteDemoOne;
import android.app.Activity;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
public class MyActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
DBhelper helper = new DBhelper(MyActivity.this, "dog.db", null, 1);
SQLiteDatabase db = helper.getWritableDatabase();
MyOperation operation = new MyOperation(db);
operation.updateData(10, "change", 55);
operation.deleteData(15);
operation.deleteData(14);
db.close();
}
}
例子二:为了避免使用string的标点符号导致sql语句错误,用占位符
package com.example.SQlistDemoTwo;
import android.database.sqlite.SQLiteDatabase;
public class Methodss {
private SQLiteDatabase db;
public Methodss(SQLiteDatabase db) {
this.db = db;
}
public void insertData(String name,int age) {
Object[] item = new Object[]{name,age};
db.execSQL("insert into stu(name,age) values(?,?)",item);
}
public void updateData(int id,String name,int age){
Object[] items = new Object[]{name, age, id};
db.execSQL("update stu set name=?,age=? where id=?",items);
}
public void deleteData(int id) {
Object[] items = new Object[]{id};
db.execSQL("delete from stu where id=?",items);
}
}