游戏开发4_01 数据存储--sqlite

package wyf.wpf; //声明包语句
import android.content.Context; //引入相关类
import android.database.sqlite.SQLiteDatabase; //引入相关类
import android.database.sqlite.SQLiteOpenHelper; //引入相关类
import android.database.sqlite.SQLiteDatabase.CursorFactory; //引入相关类
//继承自SQLiteOpenHelper的子类
public class MySQLiteHelper extends SQLiteOpenHelper{
public MySQLiteHelper(Context context, String name, CursorFactory factory,
int version) {
super(context, name, factory, version); //调用父类的构造器
}
@Override
public void onCreate(SQLiteDatabase db) { //重写onCreate方法
db.execSQL("create table if not exists hero_info(" //调用execSQL方法创建表
+ "id integer primary key,"
+ "name varchar,"
+ "level integer)");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}


package wyf.wpf; //声明包语句
import android.app.Activity; //引入相关类
import android.content.ContentValues; //引入相关类
import android.database.Cursor; //引入相关类
import android.database.sqlite.SQLiteDatabase; //引入相关类
import android.os.Bundle; //引入相关类
import android.widget.TextView; //引入相关类
//继承自Activity的子类
public class Sample_4_3 extends Activity {
MySQLiteHelper myHelper; //数据库辅助类对象的引用
TextView tv; //TextView对象的引用
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);//设置显示的屏幕
tv = (TextView)findViewById(R.id.tv); //获得TextView对象的引用
myHelper = new MySQLiteHelper(this, "my.db", null, 1); //创建MySQLiteOpenHelper辅助类对象
insertAndUpdateData(myHelper); //向数据库中插入和更新数据
String result = queryData(myHelper); //向数据库中查询数据
tv.setText("名字\t等级\n"+result); //将查询到的数据显示到屏幕上
}
//方法:向数据库中的表中插入和更新数据
public void insertAndUpdateData(MySQLiteHelper myHelper){
SQLiteDatabase db = myHelper.getWritableDatabase(); //获取数据库对象
//使用execSQL方法向表中插入数据
db.execSQL("insert into hero_info(name,level) values('Hero1',1)");
//使用insert方法向表中插入数据
ContentValues values = new ContentValues(); //创建ContentValues对象存储“列名-列值”映射
values.put("name", "hero2");
values.put("level", 2);
db.insert("hero_info", "id", values); //调用方法插入数据
//使用update方法更新表中的数据
values.clear(); //清空ContentValues对象
values.put("name", "hero2");
values.put("level", 3);
db.update("hero_info", values, "level = 2", null); //更新表中level为2的那行数据
db.close(); //关闭SQLiteDatabase对象
}
//方法:从数据库中查询数据
public String queryData(MySQLiteHelper myHelper){
String result="";
SQLiteDatabase db = myHelper.getReadableDatabase(); //获得数据库对象
Cursor cursor = db.query("hero_info", null, null, null, null, null, "id asc"); //查询表中数据
int nameIndex = cursor.getColumnIndex("name"); //获取name列的索引
int levelIndex = cursor.getColumnIndex("level"); //获取level列的索引
for(cursor.moveToFirst();!(cursor.isAfterLast());cursor.moveToNext()){ //遍历查询结果集,将数据提取出来
result = result + cursor.getString(nameIndex)+" ";
result = result + cursor.getInt(levelIndex)+" \n";
}
cursor.close(); //关闭结果集
db.close(); //关闭数据库对象
return result;
}
@Override
protected void onDestroy() {
SQLiteDatabase db = myHelper.getWritableDatabase(); //获取数据库对象
db.delete("hero_info", "1", null); //删除hero_info表中的所有数据
super.onDestroy();
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值