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手机上如何进行网络数据抓包,比如我们想抓某个应用(微博.微信.墨迹天气)的网络通信 ...
随机推荐
- Ant学习-001-ant 基础知识及windows环境配置
一.Ant 概要基础知识 Apache Ant 是一个将软件编译.测试.部署等步骤联系在一起加以自动化的一个工具,大多用于Java环境中的软件开发,用以构建应用,或结合其他开源测试工具例如 git.T ...
- Java学习-018-EXCEL 文件写入实例源代码
众所周知,EXCEL 也是软件测试开发过程中,常用的数据文件导入导出时的类型文件之一,此文主要讲述如何通过 EXCEL 文件中 Sheet 的索引(index)或者 Sheet 名称获取文件中对应 S ...
- SQl中Left Join 、Right Join 、Inner Join与Ful Join
1 left join 左外连接:查询结果以左表数据为准.假如左表有四条数据,右表有三条数据,则查询结果为四条,且都是左表中有的数据. 例如: EMP表: SAL表: 左连接 左连接,表EMP是主表, ...
- ubuntu14.04安装Docker
Ubuntu在14.02开始就已经集成了Docker,要安装很简单: 1 2 3 4 sudo apt-get update sudo apt-get install docker.io sudo ...
- 30天,O2O速成攻略【7.18广州站】
活动概况 时间:2015年07月18日13:30-16:30 地点:贝塔咖啡(新港中路TIT创意园内创意西路07号楼) 主办:APICloud.七牛.洪海网络 网址:www.apicloud.com ...
- SwipeRefreshLayout实现上拉加载下拉刷新
package com.example.swiperefreshlayoutdemo; import java.util.ArrayList;import java.util.HashMap; imp ...
- java获取泛型的真实类型
ParameterizedType type = (ParameterizedType)this.getClass().getGenericSuperclass(); Type[] actualTyp ...
- 学习OpenCV——用OpenCv画漫画
闲的时候用OpenCV画漫画也挺有意思,虽然效果不好(达不到上面所实现的效果), 参数需要调整,还是大头贴而且噪声小的图像比较合适 而且可以熟悉一下关于各种滤波的操作比如:双边滤波: #include ...
- PostgreSQL中字符串相关问题
PostgreSQL的字符串类型有character.character varying和text的值.在使用character类型的时候, 它有自动填充空白的潜在影响,特别是在其它数据库(MySQL ...
- weiphp---------图灵机器人存在的bug。
1.很多人下载下来weiphp源码以后,配置好了图灵机器人却不能使用.原因是因为他源码里面存在一个小bug 上图红色框框内是他的源码,问题就出在这里. 修改方法: if($result ['code' ...