1.用SQLiteDatabase类创建数据库
方法①openDatabase生成一般数据库文件
SQLiteDatabase database=openDatabase(String path,SQLiteDatabase.CursorFactory factory,int flags);
/(数据库文件的路径,用于生成一个游标对象 供查询数据库时使用,控制数据的可访问模式--flag=0,可读可写;flag=1,只可读不可写)
方法②openOrCreateDatabase生成一般数据库文件
SQLiteDatabase database=openOrCreateDatabase(String path,SQLiteDatabase.CursorFactory factory);
/(数据库文件的路径,用于生成一个游标对象 供查询数据库时使用)
方法③openOrCreateDatabase生成File数据库文件
SQLiteDatabase database=openOrCreateDatabase(File file,SQLiteDatabase.CursorFactory factory);
/(生成File数据库文件,用于生成一个游标对象 供查询数据库时使用)
2.用SQLiteOpenHelper类创建数据库
①第一个类DatabaseHelper
public class DatabaseHelper extends SQLiteOpenHelper
{
public DatabaseHelper(Context context,String name,Cursorfactory factory,int version){
super(context,name,factory,version);
}
public void onCreate(SQLiteDatabase arg0){
System.out.println("数据库创建");
}
public void onUpgrade(SQLiteDatabase db,int oldVersion,int newVersion){
System.out.println("数据库更新");
}
}
②在另一个类SQLiteActivity中调用上一个类的构造方法,创建数据库
DatabaseHelper dHelper=new DatabaseHelper(SQLiteActivity.this,//上下文环境
"one.db",//数据库名称
null,//使用默认的cursorfactory
1);//数据库版本
SQLiteDatabase db=dHelper.getReaderableDatabase();/getWriteableDatabase();//创建只读/可写数据库
}}
发现:SQLiteOpenHelper不是单独完场数据库创建的,而是在最后一步需要SQLiteDatabase的帮助。
3.在数据库中创建表t_count(1)
public void createTable(){
//判断t_count是否存在
if(!tableExist("t_count")){
mDatabaseOperator.execSQL(ConstExt.SQL_REATE_TABLE_COUNT_LIST);
}
<!--其中tableExist方法-->
public boolean tableExists(String table){
//从表中sqlite_master中查询指定的表
SqliteCursor cursor=mDatabaseOperator.query(
"select type from sqlite_master where type='table' and name='?'",new String[]{table});
//如果表存在
if(cursor.moveToNext){
return true;
}else{
return false;
}
}
4.//创建数据表(我的程序中截取的部分,可能有错误!)
public void onCreate(SQLiteDatabase db,TheDevices s){
//定义数据库
String filename=android.os.Environment.getExternalStorageState()+"/keys.db";
String createTableSQL="REATE TABLE [t_key]("+"[id] INTEGER,"
+"[name] VARCHER(20),"+"[address] VERCHER(20),"+"[shujukuai] VERCHER(),"
+"CONSTARAINT [sqlite_autoindex_t_key_1] PRIMATY KEY([id]))";
File file=new File(filename);
if(file.exists()){
file.delete(); }
SQLiteDatabase database=SQLiteDatabase.openOrCreateDatabase(file,null);
//创建t_key表
database.execSQL(createTableSQL);
//创建一个contentValues对象,表示要插入的行记录
ContentValues contentValues=new ContentValues();
}
//删除账号
try{
}
5 .创建数据库(2)
//定义数据库
String filename=android.os.Environment.getExternalStorageState()+"/keys.db";
String createTableSQL="REATE TABLE [t_key]("+"[id] INTEGER,"
+"[name] VARCHER(20),"+"[address] VERCHER(20),"+"[shujukuai] VERCHER(),"
+"CONSTARAINT [sqlite_autoindex_t_key_1] PRIMATY KEY([id]))";
String createTableSQL1="REATE TABLE [t_nokey]("+"[id] INTEGER,"
+"[name] VARCHER(20),"+"[address] VERCHER(20),"
+"CONSTARAINT [sqlite_autoindex_t_key_1] PRIMATY KEY([id]))";
File file=new File(filename);
if(file.exists()){
file.delete(); }
SQLiteDatabase database=SQLiteDatabase.openOrCreateDatabase(file,null);
//创建t_key表
database.execSQL(createTableSQL);
database.execSQL(createTableSQL1);
//创建一个contentValues对象,表示要插入的行记录
ContentValues contentValues=new ContentValues();
contentValues.put(String a,String b);
}
6.数据库的各项操作--添加
public void insert3(String id,String name ,String address,String shujukuai ){
ContentValues cv=new ContentValues();
cv.put("id",id);
cv.put("name",name);
cv.put("address",address);
cv.put("shujukuai",shujukuai);
db.insert("t_key","id",cv);
db.insert("t_key","name",cv);
db.insert("t_key", "address", cv);
db.insert("t_key", "shujukuai", cv);
}
public void insert(TheDevices s){
this.name=s.getName();
this.address=s.getAddress();
Cursor result=this.db.rawQuery(name, null);//得到有多少列
int old_id=result.getColumnCount();
int new_id=old_id+1;
String sql="INSERT INTO"+TABLENAME+"(id,address,name,key)VALUES("+new_id+","+address+","+name+","+key+")";
this.db.execSQL(sql);
this.db.close();
}
public void insert1(String id,String name,String address,long key){ //连接到新设备,存储到数据库
this.id=id;
this.name=name;
this.address=address;
this.key=key;
String sql="INSERT INTO"+TABLENAME+"(id,address,name,key)VALUES(?,?,?)";
Object args[]=new Object[]{address,name,key};
this.db.execSQL(sql,args);
this.db.close();
}
7.数据库的各项操作--修改
//修改
public void update(TheDevices s){
this.id=s.getId();
String sql="UPDATE"+TABLENAME+"SET beizhu="+beizhu+"WHERE id="+id;
this.db.execSQL(sql);
this.db.close();
}
public void update1(TheDevices s){
this.name=s.getName();
this.id=s.getId();
String sql="UPDATE"+TABLENAME+"SET NAME=?WHERE id="+s.getId();
Object args[]=new Object[]{name};
this.db.execSQL(sql,args);
this.db.close();
}
8数据库的各项操作--删除
public void delete1(TheDevices s){
String sql="DELETE FROM"+TABLENAME+"WHERE id="+s.getId();
Object args[]=new Object[]{id};
this.db.execSQL(sql,args);
this.db.close();
}
public void delete2(TheDevices s){
String sql= "DELETE FROM"+TABLENAME+"WHERE name="+s.getAddress();
this.db.execSQL(sql);
this.db.close();
}
9数据库的各项操作--显示全部
//显示全部数据
public void showAll() {
String[] array = null;
array = (String[]) find().toArray();
MySQLiteDemo.this.helper=new MyDatabaseHelper(MySQLiteDemo.this);
ListView listView=new ListView(MySQLiteDemo.this);
listView.setAdapter(new ArrayAdapter<String>(MySQLiteDemo.this,
android.R.layout.simple_list_item_1,
array));
MySQLiteDemo.this.mylayout.addView(listView);
}