首先得有一个数据库,这个数据库我们随便取个名字吧,Shujuku.java,放在和mainactivity.java一个地方的。
这个sqlite数据库最重要的是注意空格,少一个空格都会建立失败。
android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class NoteDb extends SQLiteOpenHelper
{
public static final String TABLE_NAME = "farmer";//表名
public static final String CONTENT = "content";//textview写入保存的文字
public static final String WENZHANG="wenzhang";
public static final String ID = "_id";//ID编号
public static final String TIME = "time";//时间
//初始的版本号public static final int DB_VERSION = 1;
public NoteDb(Context context) {
super(context, "notes", null,1);//这里的1就是版号,如果引用需要在写version
}
@Override
public void onCreate(SQLiteDatabase db) {
String sql ="create table "+TABLE_NAME+" ( "+ID+" integer primary key AUTOINCREMENT, "+CONTENT
+" TEXT NOT NULL, "+WENZHANG+" TEXT ONT NULL, "+TIME+" TEXT NOT NULL)";//数据库各列,这里的TEXT NOT NULL前面的空格和中间的空格不能少,这里的意思是不为null,
db.execSQL(sql);//创建数据库
}
@Override//升级数据库
public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {
}//为以后数据库升级提供的方法,想获得关于数据库升级的详情就去这个地方Android sqlite升级
}
以下在数据库中添加数据
一定要在图中的位置有一个上下文,在图中还有一个SQLiteDatebase mysql;也是不能少的,NoteDb abv,在增删改查中也是不必可少的

public void baocun()
{
ContentValues cv = new ContentValues();
cv.put(NoteDb.CONTENT, a.getText().toString());//将textview转型并存入CONTENT,这里的a.getText().toString());是将已经获取的a做一个转换获取到成为一个string类型的,
mysql.insert(NoteDb.TABLE_NAME, null, cv);
mysql.close();//随手关门
}
接下来介绍一下删,这个删很简单,你给个想要删什么的条件,就可以删掉这行数据库中的数据,这个条件就是图中橙色部分画出来的地方,通常还有是这样写的
public void delete(){
SQLiteDatabase db = mhelper.getReadableDatabase();
String sql = "delete from "+Constant.TABLE_NAME+" where name = l12 ";
db.execSQL(sql);
db.close();
}

现在学习一下怎么改
更改某行数据用“update”,set重设某个属性值,where设置更改条件!
public void update(){
SQLiteDatabase db = mhelper.getReadableDatabase();
String sql = "update "+Constant.TABLE_NAME+" set age = 24 where name = LIU ";//
db.execSQL(sql);
db.close();
}
最后是查
查询某条数据用“select",但execSQL没有返回值,换用rawQuery方法,返回查询得到的游标。
public void query(){
SQLiteDatabase db = mhelper.getReadableDatabase();
// String sql = "select * from "+Constant.TABLE_NAME+" where name = lcz ";//可通过where设置查询条件
String sql = "select * from "+Constant.TABLE_NAME;
Cursor cursor = db.rawQuery(sql,null);
while (cursor.moveToNext()){ // moveToNext说明还有数据,假设有下一行
下面插播一个题外话,
返回一个Cursor对象,代表数据集的游标,有点类似于JavaSE中的ResultSet。
c.move(int offset); //以当前位置为参考,移动到指定行
c.moveToFirst(); //移动到第一行
c.moveToLast(); //移动到最后一行
c.moveToPosition(int position); //移动到指定行
c.moveToPrevious(); //移动到前一行
c.moveToNext(); //移动到下一行
c.isFirst(); //是否指向第一条
c.isLast(); //是否指向最后一条
c.isBeforeFirst(); //是否指向第一条之前
c.isAfterLast(); //是否指向最后一条之后
c.isNull(int columnIndex); //指定列是否为空(列基数为0)
c.isClosed(); //游标是否已关闭
c.getCount(); //总数据项数
c.getPosition(); //返回当前游标所指向的行数
c.getColumnIndex(String columnName);//返回某列名对应的列索引值
c.getString(int columnIndex); //返回当前行指定列的值
题外话结束。
int index = cursor.getColumnIndex("name");// 获取属性值为“name”的列的索引值
String name = cursor.getColumnName(index);// 获取索引值为index的列的字符串内容
Log.d(TAG, "name ="+name);
}
cursor.close();// Cursor是种资源,不用需关闭
db.close();
}
下面是我觉得挺有用的 查 方法
private void quancha()
{
SQLiteDatabase db=mysql.getReadableDatabase();
StringBuffer i=new StringBuffer();
String sql = "select * from " + Shujuku.TABLE_NAME;//因为没有设置条件,这里是查询数据库内全部数据
Cursor sc=db.rawQuery(sql, null);
while (sc.moveToNext())
{
i.append("编号: " + sc.getString(0) + "\n");
i.append("姓名: " + sc.getString(1) + "\n");
i.append("身份证号码: " + sc.getString(2) + "\n");
i.append("所在地区: " + sc.getString(3) + "\n");
i.append("电话号码: " + sc.getString(4) + "\n");
}//全部装进i这个麻袋里,
qu.setText(i.toString());
}
网友评论