刚写完闹钟所用到的数据库,本想明天再写突然发现不行,只建一个数据库有什么用没有一点连贯性,索性今天两弹连发(有点av女优资源下载的味道)。下面说说对已经建好的数据库的操作。
操作数据库无外乎就是增(新增一条数据在表里就是新增加一行)、删(删除一条数据在表里就是删除某一行数据)、查(根据某一列或者说某一个字段去定位某一行数据)、改(更改某一行数据的某一个或多个字段【即列】)。看代码:
public class sqlAdapter {
public static final String dbName="mysql.db";
private Context context;
private SQLiteDatabase myDataBase;
public SQLiteDatabase getMyDataBase() {
return myDataBase;
}
public sqlAdapter(Context context)
{
this.context=context;~~~~~~~~~~~~~~~~~~~~~~~~~这是获取上下文
}
public void opensql()
{
alarmDB sql=new alarmDB(context,dbName,null,1);
myDataBase=sql.getWritableDatabase();// 此处才真正的创建了数据库
}
public int findId(int hour,int minute,String weeklast)
{
Cursor cur=myDataBase.query(toolutil.tablename, new String[]{toolutil.id}, toolutil.hour + "=" +hour +" and"~~~~~~~~~~~~~~这个query方法的参数介绍:第一个是表名,第二个是选择的列此处只获取id列,第三个参数是条件信息即查找指定条件的数据此处是限定指定的小时、分、星期数,第四个参数是如果第三个参数等号后面有“?”这里就是问号的数据后面参数可以滞空。
+ toolutil.minute +" =" + minute+" and " +toolutil.week +" = " +weeklast, null, null, null, null);//注意空格
if(cur!=null)
{
cur.moveToFirst();
int id=cur.getInt(cur.getColumnIndex(toolutil.id));~~~~~~~~~~~~~~~获取游标的指定列的数据
cur.close();
return id;
}
return -1;
}
public boolean updaptData(int id,int hour,int minute,String weeklast,String music,int lasttime )
{
ContentValues value=new ContentValues();
value.put(toolutil.hour,hour);
value.put(toolutil.minute,minute);
value.put(toolutil.week,weeklast);
value.put(toolutil.music,music);
value.put(toolutil.lasttime,lasttime);
//value.put(toolutil.state,state);
return myDataBase.update(toolutil.tablename, value, toolutil.id +" =" +id, null)>0;~~~~~~~~~~~更新数据
}
public boolean updatastate(int id,int state)
{
ContentValues value=new ContentValues();
value.put(toolutil.state, state);
return myDataBase.update(toolutil.tablename, value, toolutil.id+ " ="+id, null)>0;~~~~~~~~~~~~~~只更新指定id的state列的数据
}
public void insertData(int hour,int minute,String weeklast,String music,int lasttime ,int state)
{
ContentValues value=new ContentValues();~~~~~~~~~~~~~~~~~~~~~~~好比MAP一样先向其中预存指定的列名和参数然后对数据库赋值
value.put(toolutil.hour,hour);
value.put(toolutil.minute,minute);
value.put(toolutil.week,weeklast);
value.put(toolutil.music,music);
value.put(toolutil.lasttime,lasttime);
value.put(toolutil.state,state);
myDataBase.insert(toolutil.tablename, toolutil.id,value);//此处的红色标记是不用手动插入的字段而是系统自动分配的部分。如果你的id是自己定的这里可以设为空
}
public void deletedata(int id)
{
myDataBase.delete(toolutil.tablename,toolutil.id+"="+id , null);
}
public Cursor findcur(int id)
{
Cursor cur=myDataBase.query(toolutil.tablename, null, toolutil.id+ " ="+id, null, null, null, null);
return cur;
}
}
至此对该闹钟使用的数据库的操作也就设置完毕了,或许后续还会遇到别的操作可以在这个类里写新的方法就行了。好了数据库部分告一段落了。