android 数据库 SQLite

本文介绍了一个简单的SQLite数据库操作示例,包括创建数据库、表格、插入数据、查询数据等基本功能,并展示了如何使用SQLiteOpenHelper类来实现这些操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

public class SqliteHelper extends SQLiteOpenHelper{
    private static String db_name="mydb.db";
    private static int db_version=1;


    public SqliteHelper(Context context){
        super(context,db_name,null,db_version);

    }


    public SqliteHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
        super(context, name, factory, version);
    }



    @Override
    public void onCreate(SQLiteDatabase db) {
        String sql="create table person(_id Integer primary key autoincrement,name varchar(10),age Integer)  ";
        db.execSQL(sql);

    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

    }
}
 

 private ListView lv;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        SqliteHelper sqliteHelper=new SqliteHelper(MainActivity.this);
        SQLiteDatabase db = sqliteHelper.getReadableDatabase();
        lv= (ListView) findViewById(R.id.lv);
        Button button=new Button(mContext);

        if (AppUtils.isInstallApp("com.unking.personexercisedemo")){
            Log.i("tag","安装了这个软件");
        }


        button.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                return false;
            }
        });

        String path=Environment.getExternalStorageDirectory().getAbsolutePath()+ File.separator+"mydb.db";

        Cursor cursor = db.rawQuery("select * from person", null);

        SimpleCursorAdapter adapter=new SimpleCursorAdapter(this,R.layout.list_item,cursor,
                new String[]{"_id","name","age"},
                new int[]{R.id.tv_id,R.id.tv_name,R.id.tv_age},
                SimpleCursorAdapter.FLAG_REGISTER_CONTENT_OBSERVER); //flag_register_content_observer
        //3.将适配器数据展示到控件
        lv.setAdapter(adapter);


//         insert(db);
//         update(db);
//         queryData(db);
    }

    private void insert(SQLiteDatabase db){
        //插入数据SQL语句
        String stu_sql="insert into person(name,age) values('xiaoming',20)";
        //执行SQL语句
        db.execSQL(stu_sql);

    }

    private void update(SQLiteDatabase db){
        //修改SQL语句
        String sql = "update person set name = 654321 where _id = 1";
        //执行SQL
        db.execSQL(sql);
    }

     //查询数据,在数据库中
    private void queryData(SQLiteDatabase db){
        Cursor cursor = db.query("person", new String[]{"_id,name,age"}, "_id>1", null, null, null, null);
        List<Person> persons = cursorToList(cursor);
        for (Person p:persons) {
            Log.i("tag",p.getName());
        }
        db.close();


    }


    private List<Person> cursorToList(Cursor cursor){
        List<Person>cursorList=new ArrayList<>();
         while (cursor.moveToNext()){
             int ColumnIndexid = cursor.getColumnIndex("_id");
             int id = cursor.getInt(ColumnIndexid);


             int ColumnIndexname = cursor.getColumnIndex("name");
             String name = cursor.getString(ColumnIndexname);

             int ColumnIndexage = cursor.getColumnIndex("age");
             int age = cursor.getInt(ColumnIndexage);


             Person person=new Person(id,name,age);
             cursorList.add(person);
         }


        return cursorList;
    }




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值