zoukankan      html  css  js  c++  java
  • 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();                    
                    }
                }
            });
  • 相关阅读:
    c语言I博客作业02
    第六次作业
    第五次作业
    第四次作业
    第三次作业
    第二周作业
    第一周作业
    《面向学科竞赛的实验室信息管理体系构建》文献阅读随笔
    《高校学科竞赛管理系统研发与应用》文献阅读随笔
    《网络竞赛系统框架设计与功能模块实现》文献阅读随笔
  • 原文地址:https://www.cnblogs.com/Spring-Rain/p/4438343.html
Copyright © 2011-2022 走看看