zoukankan      html  css  js  c++  java
  • 通过Sql语句控制SQLite数据库增删改查

    person类属性有Intenger id,String name,Intenger  age,相应的构造方法和set get方法。

    package com.xh.tx.dao;

    import java.util.ArrayList;
    import java.util.List;

    import android.content.Context;
    import android.database.Cursor;
    import android.database.sqlite.SQLiteDatabase;

    import com.xh.tx.bean.Person;
    import com.xh.tx.utils.MySQLLiteHelper;

    public class PersonDao
    {
      private MySQLiteHelper helper;
      public PersonDao(Context context)
      {
        helper = new MySQLiteHelper(context, null, null, -1);//前者创建的时候版本已经固定了,后面的-1没作用,与前面的用Eclipse创建数据库文章相结合
      }

      /**
      * 对数据库进行添加操作
      * sql:insert into person(name,age) values('sz',20);
      *缺陷:
      * 1. 传递参数很麻烦
      * 2. 不能有返回值
      */

      public void savePerson(Person p)
      {
        String sql = "insert into person(name,age) values(?,?);";//person是数据库中已经创建的表,具有_id,name,age属性,_id是key
        SQLiteDatabase db = helper.getWritableDatabase();
        //db代表的是一个数据库的一个连接
        if(db.isOpen())//判断数据库是否打开
        {
          db.execSQL(sql, new Object[]{p.getName(),p.getAge()}); //向数据库里面去添加一行记录,后者为bindArgs,相印的对象类型是包装类
          db.close(); //记住一定要关闭数据库的连接
        }
      }

      /**
      * 删除一个对象
      * sql:delete from person where _id = 1;
      */
      public void deletePerson(Integer id)
      {
        String sql = "delete from person where _id = ?;";
        SQLiteDatabase db = helper.getWritableDatabase();
        if(db.isOpen())
        {
          db.execSQL(sql, new Integer[]{id});
          db.close();
        }
      }

      /**
      * 修改一个对象
      * sql:update person set name ='cccc' where _id=1;
      */
      public void updatePerson(Person p)
      {
        String sql = "update person set name =? where _id=?;";
        SQLiteDatabase db = helper.getWritableDatabase();
        if(db.isOpen())
        {
          db.execSQL(sql, new Object[]{p.getName(),p.get_id()});
          db.close();
        }
      }

      /**
      * 查询所有
      */
      public List<Person> queryPerson()
      {
        String sql = "select _id,name,age from person;";
        SQLiteDatabase db = helper.getReadableDatabase();
        List<Person> list = null;

        if(db.isOpen())
        {
          Cursor cursor = db.rawQuery(sql, null); //查询
          //cursor.getCount() 查看执行sql以后返回的结果集的个数
          if(null != cursor && cursor.getCount() > 0)
          {
            list = new ArrayList<Person>();
            while(cursor.moveToNext())
            {
              Integer id = cursor.getInt(0);
              String name = cursor.getString(1);
              Integer age = cursor.getInt(2);
              list.add(new Person(id,name,age));
            }

          }

          cursor.close();

          db.close();
        }
        return list;
      }
    }

  • 相关阅读:
    【Spring】注解的循环依赖问题
    【网络】计算机网络自顶向下读书笔记
    【JUC】并发编程的艺术笔记
    【JUC】多线程手撕代码面试题
    【操作系统】王道操作系统全盘汇总
    【Spring】IoC源码分析以及实现
    【Spring】用例子来初次理解IoC
    拼音工具类
    chr(10)与chr(13)的区别
    List 集合转String 逗号拼接
  • 原文地址:https://www.cnblogs.com/zzw1994/p/4898623.html
Copyright © 2011-2022 走看看