zoukankan      html  css  js  c++  java
  • 安卓平台SQLite数据库基础操作总结

    最近学了一些安卓开发,在这里分享一下SQLite数据库的使用相关部分,我使用的工具为Android Studio,后台语言为java:

    首先,需要创建一个数据库辅助类DataBaseHelper,用于数据库的创建,并方便我们之后对于数据库链接及的操作:

    package com.example.myapplication;
    import android.content.Context;
    import android.database.sqlite.SQLiteDatabase;
    import android.database.sqlite.SQLiteOpenHelper;
    public class DataBaseHelp extends SQLiteOpenHelper{
        private static final String DATABASENAME ="tip1";//数据库名称
        private static final int DATABASEVERSION =1;//数据库版本
        private static final String TABLENAME="tip1";//表名
        public DataBaseHelp(Context context)//定义构造
        {
        super(context,DATABASENAME,null,DATABASEVERSION);    //调用父类构造
        }
        public void onCreate(SQLiteDatabase db)
        {
            String sql="CREATE TABLE "+TABLENAME+"("+
                    "id   INTEGER PRIMARY KEY AUTOINCREMENT,"+                   //设置自动增长列
                    "name  VARCHAR(50) NOT NULL,"+
                    "text  VARCHAR(50) NOT NULL)";
        db.execSQL(sql);    //执行sql语句
        }
        public void onUpgrade(SQLiteDatabase db,int oldVersion,int newVersion)
        {
            String sql="DROP TABLE IF EXISTS "+TABLENAME;
            db.execSQL(sql);
            this.onCreate(db);//创建表
    
        }
    }
    

      这里在辅助类的构造函数中进行了数据库以及表的创建,在实例化对象时,数据库就会创建出来。

    为了操作数据库,接下来要创建一个数据库操作类OperateTable:

    package com.example.myapplication;
    import android.database.Cursor;
    import android.database.sqlite.SQLiteDatabase;
    import java.util.List;
    import java.util.Map;
    
    public class OperateTable {
        private static final String TABLENAME ="tip1";
        private SQLiteDatabase db=null;
        public OperateTable(SQLiteDatabase db)
        {
            this.db=db;
        }
        public void insert(String name,String text)
        {
            String sql="INSERT INTO "+TABLENAME+" (name,text) VALUES ('"+name+"','"+text+"')";
            this.db.execSQL(sql);
    
    
        }
        public void delete(String id)
        {
            String sql="DELETE FROM "+TABLENAME+" WHERE id='"+id+"'";
            this.db.execSQL(sql);
    
    
        }
        public void updata(String id,String name,String text)
        {
            String sql="UPDATE "+TABLENAME+" SET name ='"+name+"',text='"+text+"' WHERE id='"+id+"'";
            this.db.execSQL(sql);
        }
      
            public tip t(String id)
    //此为查询语句,tip为我自己设置的一个类,用于获取数据,有String name;String text;两个成员
            {
                tip t=new tip();
    
                String sql="SELECT name,text FROM "+TABLENAME+" WHERE id ='"+id+"'";
                Cursor result =this.db.rawQuery(sql,null);
                result.moveToFirst();
                t.setName(result.getString(0));
                t.setText(result.getString(1));
                return t;
            }
    }
      
    
    } }
    

      这两个类添加完毕后,在MainActivity中调用即可

    public class MainActivity extends AppCompatActivity {
    private OperateTable mytable =null;
    private SQLiteOpenHelper helper=null;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
    
            helper=new DataBaseHelp(this);//实例化数据库辅助类
           
            MainActivity.this.mytable=new
    OperateTable(MainActivity.this.helper.getWritableDatabase());//取得可写数据库
    MainActivity.this.mytable.insert("第一条","1111111");//执行插入语句
    
            
        }
    

      

  • 相关阅读:
    pycharm 使用pip3更新插件已经更新时报错
    剑指Offer系列之题11~题15
    剑指Offer系列之题1~题5
    个人hexo博客(静态,无后台)搭建
    设计模式之单例模式
    Hibernate实现limit语句效果
    Springboot项目中 前端展示本地图片
    eclipse报错:problems during content assist
    python中open与with open的区别
    修改Jenkins目录
  • 原文地址:https://www.cnblogs.com/liuleliu/p/12228844.html
Copyright © 2011-2022 走看看