Android利用数据库传送数据
---恢复内容开始---
一.建表
//通过SQLiteDatabase 创建数据库stu.db3 final SQLiteDatabase db = SQLiteDatabase.openOrCreateDatabase(this.getFilesDir().toString()+"/stu.db3", null); db.execSQL("CREATE TABLE student(id INTEGER PRIMARY KEY, name VARCHAR(50), score INTEGER)"); //创建student学生表
openOrCreateDataBase()方法用来打开或创建数据库。这是一个静态方法,不能用new 创建而是用类名调用。
public static SQLiteGDataBase openOrCreateDataBase(String path,SQLiteDataBase.CusorFactory factory)
第一个参数为数据库文件路径(包括文件名) 可用getFilesDir()来获取路径
第二个参数 一般默认null来使用默认的GursorFactory的对象
二.数据插入
/* *1 保存操作 */ save.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View arg0) { /* * 获取数据 */ String i = id.getText().toString(); String n = name.getText().toString(); String s = score.getText().toString(); //执行插入语句 try { db.execSQL("INSERT INTO student VALUES(?,?,?)", new String[]{i,n,s}); // 格式化 } catch (Exception e) { //插入失败 Toast.makeText(MainActivity.this, "该学号已经存在", Toast.LENGTH_SHORT).show(); return; } Toast.makeText(MainActivity.this, "保存成功", Toast.LENGTH_SHORT).show(); } });
三、数据读取
/* *2 读取操作并用simpleAdapter在UI界面显示 */ read.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View arg0) { /* * 绑定数据到listview */ ArrayList<HashMap<String, Object>> listItem = new ArrayList<HashMap<String, Object>>(); //从数据库获取数据 添加到 listItem上 Cursor cursor = db.rawQuery("SELECT * FROM student", null); while(true) { if(cursor.moveToNext() == false) { break; } HashMap<String, Object> map = new HashMap<String, Object>(); map.put("itemId", cursor.getInt(0)); map.put("itemName", cursor.getString(1)); map.put("itemScore", cursor.getInt(2)); listItem.add(map); } //生成适配器 它是数据和界面交互的桥梁 使得数据库SQLite的内容显示在图形用户界面 final SimpleAdapter listItemAdapter = new SimpleAdapter(MainActivity.this, listItem,R.layout.list_item, new String[]{"itemId","itemName","itemScore"}, new int[]{R.id.itemId,R.id.itemName,R.id.itemScore}); //添加并显示 list.setAdapter(listItemAdapter); /* * 3 ListView中列表的点击事件 */ list.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> arg0, View view, int position, long arg3) { // TODO Auto-generated method stub Map<String,Object> m = (Map<String,Object>)listItemAdapter.getItem(position); id.setText(m.get("itemId").toString().trim()); name.setText(m.get("itemName").toString().trim()); score.setText(m.get("itemScore").toString().trim()); index = m.get("itemId").toString().trim(); //保存选中的用户id 用于删除和修改 } }); } });
Android中list与Map<String ,Object>及SimpleAdapter用来存数数据并显示 http://www.360doc.com/content/14/0407/09/12146850_366936905.shtml
SimpleAdapter与listView介绍链接地址1.http://blog.csdn.net/xing1716263268/article/details/7912665
2. http://blog.csdn.net/conowen/article/details/7294230
四、数据更新
/* *更新操作 */ update.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View arg0) { String updateName = name.getText().toString().trim(); String updateScore = score.getText().toString().trim(); String sql = "UPDATE student SET name=?,score=? whrer id= ?"; if(index != null){ try{ Toast.makeText(MainActivity.this, updateName+"--"+updateScore, Toast.LENGTH_SHORT).show(); db.execSQL(sql,new String[]{updateName,updateScore,index}); index = null; //索引重新设置为空 Toast.makeText(MainActivity.this, "修改成功", Toast.LENGTH_SHORT).show(); }catch(Exception e) { Toast.makeText(MainActivity.this, "修改失败", Toast.LENGTH_SHORT).show(); } } } });
五、数据删除
/* * 删除操作 */ delete.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View arg0) { if(index!=null) { //已经选中某条记录 //执行插入语句 db.execSQL("DELETE FROM student WHERE id=?", new String[]{index}); index = null; //索引重新设置为null Toast.makeText(MainActivity.this, "删除成功", Toast.LENGTH_SHORT).show(); } else { Toast.makeText(MainActivity.this, "请选中要删除的数据", Toast.LENGTH_SHORT).show(); } } });
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。