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手机上如何进行网络数据抓包,比如我们想抓某个应用(微博.微信.墨迹天气)的网络通信 ...
随机推荐
- LeetCode Best Time to Buy and Sell Stock IV
原题链接在这里:https://leetcode.com/problems/best-time-to-buy-and-sell-stock-iv/ 题目: Say you have an array ...
- html5引用公共头尾
<embed type="text/html" src="head.html" />
- How to delete expired archive log files using rman?
he following commands will helpful to delete the expired archive log files using Oracle Recovery Man ...
- 微信公众平台开发(84) 小i机器人
很多朋友询问如何开发小黄鸡之类的智能聊天机器人,但遗憾的是小黄鸡接口申请页面在最近几个月里都无法访问,且使用时限制太大,我们找了另一个接口:小i机器人.本文介绍如何在微信公众平台中使用小i接口开发智能 ...
- windows系统下利用MySql命令行进入MySql数据库
Enter password: ****
- SQLServer找出执行慢的SQL语句
SELECT (total_elapsed_time / execution_count)/1000 N'平均时间ms' ,total_elapsed_time/1000 N'总花费时间ms' , ...
- uwsgi 启动脚本 每隔三小时重启
针对 s10ops项目 来进行的重启 [root@ayibang-server scripts]# cat /home/liujianzuo/server/scripts/monitor_uwsgi ...
- 运用bat进行数据库备份
执行Bat脚本 @echo off sqlplus sys/welcome@orcl as sysdba @C:\Users\yangfan\Desktop\login.sql echo 按任意键结束 ...
- 用仿ActionScript的语法来编写html5——终篇,LegendForHtml5Programming1.0开源库件
一,LegendForHtml5Programming1.0库件是什么?它是一个javascript库,它模仿了ActionScript的语法,用于html5的开发,目前实现的功能相对较少,还不能称之 ...
- js 点击展开、收起
//点击展开.收起 window.onload=function(){ var current=document.getElementsByTagName('li')[0]; document.bod ...