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();
}
}
});
Android利用数据库传送数据的更多相关文章
- Android利用Filter过滤数据
MainActivity如下: package cc.testfilterable; import java.util.ArrayList; import java.util.HashMap; imp ...
- ajaxl利用json 传送数据的 三种提交方式?
一.在servlet类中添加几个javabean对象,放置数据. package com.aaa.servlet; import java.io.IOException; import java.ut ...
- Android打开数据库读取数据
打开数据库读取数据 private MyDatabaseHelper dbHelper; dbHelper=new MyDatabaseHelper(this,"List.db", ...
- Android --------- 利用SharedPreferences存取数据
//向SharedPreferences中存放数据 //1.定义SharedPreferences对象,通过getSharedPreferences方法得到 SharedPreferences sp ...
- android 通过访问 php 接受 or 传送数据
先说传送数据,可以在 利用 php 代替传送,直接把 访问的url加上 xxx.php?informatin=xxxxxx 就行了 接收的看代码吧,详细注释. 首先是 我自己定义的php 文件 < ...
- Android开发之利用SQLite进行数据存储
Android开发之利用SQLite进行数据存储 Android开发之利用SQLite进行数据存储 SQLite数据库简单介绍 Android中怎样使用SQLite 1 创建SQLiteOpenHel ...
- [ios]利用alertView 插入数据都数据库。笔记
利用alertView 插入数据都数据库 -(void)addItemToList { UIAlertView *alter=[[UIAlertViewalloc]initWithTitle:@&qu ...
- 利用SQl对数据库实行数据拆分与组合
利用SQl对数据库实行数据拆分与组合实现提供以下几种方案: 方法一: WITH CTE AS (SELECT A.Id,A.[Uid],UserName FROM (SELECT A.[id], RE ...
- Android利用Fiddler进行网络数据抓包
最新最准确内容建议直接访问原文:Android利用Fiddler进行网络数据抓包 主要介绍Android及IPhone手机上如何进行网络数据抓包,比如我们想抓某个应用(微博.微信.墨迹天气)的网络通信 ...
随机推荐
- The "Real" Project Plan
"I need a project plan by tomorrow morning." As project managers, that's what we hear. But ...
- Recompile the invalid object for oracle.
1. How does the invalid object come? The Oracle database will invalidate objects if a dependent obje ...
- C#事务相关
之前在程序中用到事务时,都是在存储过程中创建事务来对数据进行控制,其实在C#中也有事务类. 1.DbTransaction类对数据库访问添加事务,它是对数据库事务操作的基类,继承此类的有: Sys ...
- ref 关键字修饰引用类型
对于再分配引用对象的引用的操作,没有Ref修饰时是不能在外部生效的,只有有Ref修饰的引用参数才能使再分配操作应用于外部 侵删.
- Vue.2.0.5-Vue 实例
构造器 每个 Vue.js 应用都是通过构造函数 Vue 创建一个 Vue 的根实例 启动的: var vm = new Vue({ // 选项 }) 虽然没有完全遵循 MVVM 模式, Vue 的设 ...
- 前端学习——css实用技术
一,css控制文本样式 文本相关的css属性有很多,包括: color;font-size;font-weight;text-transform(大小写uppercase等);text-decorat ...
- iOS 黑屏
1. 首先看操作系统是否有很多Bug 9.0.2 的系统不稳定. http://tech.163.com/15/1020/05/B6BL6PML000915BD.html
- pptp记录用户登陆日志
pptp vpn记录用户登录和流量信息(转) 这个问题困扰了我很久,终于在pppd的man文档里,发现了踪迹.在man中的SCRIPTS下有一系列的参数,其中PEERNAME就是登陆的用户名,并且在/ ...
- iTOP-4412 开发板镜像的烧写
镜像就是源代码编译并连接以后生成的可执行文件包,把这些镜像文件烧写到开发板的存储芯片里,开机就可以运行了. 烧写方式有两种,通过TF卡烧写以及使用OTG接口烧写 OTG方式:只能在WIN7 或者XP ...
- Inventory Pro 装备拾取的实现
以后都按照插件使用,提出问题,回答问题的方式来进行总结和学习 效果图 1.运行相关的例子,场景中出现4个矩形,这4个矩形是用来模拟物品掉落的包裹,移动Player靠近物品 2.使用鼠标点击物品正方体, ...