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();
                }
            }
        });
时间: 2024-10-08 22:57:56

Android利用数据库传送数据的相关文章

Android利用Filter过滤数据

MainActivity如下: package cc.testfilterable; import java.util.ArrayList; import java.util.HashMap; import android.os.Bundle; import android.widget.ListView; import android.app.Activity; import android.content.Context; /** * Demo描述: * 利用Filter过滤数据 * 可用于

Android --------- 利用SharedPreferences存取数据

//向SharedPreferences中存放数据 //1.定义SharedPreferences对象,通过getSharedPreferences方法得到 SharedPreferences sp = getSharedPreferences(文件名, 模式);//模式通常为MODE_PRIVATE //2.获得该SharedPreferences对象的编辑器Editor Editor editor = sp.edit(); //3.通过编辑器向SharedPreferences中存放数据 e

android 通过访问 php 接受 or 传送数据

先说传送数据,可以在 利用 php 代替传送,直接把 访问的url加上 xxx.php?informatin=xxxxxx 就行了 接收的看代码吧,详细注释. 首先是 我自己定义的php 文件 1 <?php 2 header("Content-Type: text/html; charset=utf8"); 3 4 $DataBase=$_REQUEST["DB"];//照应我java文件里面设置的DB 5 //$DataBase = "test&

Android开发之利用SQLite进行数据存储

Android开发之利用SQLite进行数据存储 Android开发之利用SQLite进行数据存储 SQLite数据库简单介绍 Android中怎样使用SQLite 1 创建SQLiteOpenHelper对象并创建表 2 通过SQLiteDatabase对象运行增删改查操作 3 SQLiteDatabase之事务transaction 1.SQLite数据库简单介绍 SQLite.是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包括在一个相对小的C库中.它是D.RichardHip

Android利用代码清除App的数据和重启设备

/** * 利用代码清除App的数据 * 平常我们在清除App的数据时,多半在设置中找到对应的App * 然后选择其清除数据.下面给出代码实现. * * 注意事项: * 1 设备需要root * 2 注意在命令的末尾需要加上换行\n * 这就相当于我们平时在Dos中输入命令后再换行一样. * 否则命令不会执行. */ private void cleanData(String packageName){ try { System.out.println("---> 9527 开始清除 &q

android利用剪切板来实现数据的传递

在Android开发中我们经常要遇到的一个问题就是数据在不同的Activity之间的共享.在Android开发中有很多种方法可以达到这个目地. 这里介绍一种比较常见.又常用的一种方法就是使用剪切板.我们都有用过Window.Linux上的Copy.这里介绍的就是这种. 调用服务 [java] view plaincopy ClipboardManager clipboardManager = (ClipboardManager) getSystemService(Context.CLIPBOAR

Android利用Volley异步加载数据完整详细示例(二)

MainActivity如下: package cc.y; import android.app.Activity; import android.content.Context; import android.graphics.Bitmap; import android.graphics.Bitmap.Config; import android.os.Bundle; import android.util.LruCache; import android.widget.ImageView;

Android利用Volley异步加载数据完整详细示例(一)

MainActivity如下: package cc.cn; import java.util.HashMap; import org.json.JSONObject; import android.app.Activity; import android.content.Context; import android.os.Bundle; import com.android.volley.AuthFailureError; import com.android.volley.RequestQ

Android利用tcpdump和wireshark抓取网络数据包

主要介绍如何利用tcpdump抓取andorid手机上网络数据请求,利用Wireshark可以清晰的查看到网络请求的各个过程包括三次握手,但相对来说使用Fiddler进行网络数据抓包和展现更方便,优点包括: (1)无需root (2)对Android和Iphone同样适用 (3)操作更简单方便(第一次安装配置,第二次只需设置代理即可) (4)数据包的查看更清晰易懂 (5) 可以查看https请求,建议使用Fillder,具体可见:利用Fiddler进行网络数据抓包. 1.下载并安装tcpdump