美文网首页
数据库:sql语句增删改查

数据库:sql语句增删改查

作者: biyu6 | 来源:发表于2019-02-26 17:56 被阅读0次

    1.数据库的管理类

    
    import android.content.Context;
    import android.database.sqlite.SQLiteDatabase;
    import android.database.sqlite.SQLiteOpenHelper;
    
    public class MyOpenHelper extends SQLiteOpenHelper {
    /**
     * context:上下文
     * name:数据库名字
     * factory:目的是创建游标(游动光标)对象,默认用null
     * version:数据库版本,从1开始递增,不能减
     * */
        public MyOpenHelper(Context context) {
            super(context, "i01.db", null, 1);
        }
        @Override
        public void onCreate(SQLiteDatabase db) {//数据库第一次创建的时候调用
            /**适合初始化表结构,用sql语句创建表
             * 示例:创建一个两列的表,第一列为id,第二列为name
             * id 一般以下划线开头“_id”
             * interger 是数据类型
             * primary key 指定id为主键
             * autoincrement 自增长
             * varchar(20) name不超过20个字符
             * 注意:sqlite底层都将类型转化为string类型,但为了严谨,这里还是指定类型
             */
    //      db.execSQL("create table info(_id integer primary key autoincrement,name varchar(20))");
            //初始化一个三列的表
            db.execSQL("create table info(_id integer primary key autoincrement,name varchar(20),phone  varchar(20))");
        }
        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {//当数据库版本升级时调用
            /**适合更新表结构
             * 示例:给表增加一列phone
             * varchar(20) phone 不超过20个字符
             * */
            db.execSQL("alter table info add phone varchar(20)");
            
            System.out.println("新版本数据库:"+newVersion+"旧版本:"+oldVersion);
            
        }
    }
    

    2.增删改查操作

    public class MainActivity extends Activity {
    
        private MyOpenHelper myOpenHelper;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            
            myOpenHelper = new MyOpenHelper(getApplicationContext());
    //      //打开一个数据库(如果不存在就创建)
    //      SQLiteDatabase writableDatabase = myOpenHelper.getWritableDatabase();
    //      //打开一个数据库(如果不存在就创建),跟上面的区别是,如果磁盘满了,返回一个只读的数据库
    ////        SQLiteDatabase readableDatabase = myOpenHelper.getReadableDatabase();
        }
        public void click1(View v) {//点击按钮增加一条记录
            //获取数据库对象
            SQLiteDatabase db = myOpenHelper.getWritableDatabase();
            //执行增加一条的sql语句
            db.execSQL("insert into info(name,phone) values(?,?)",new Object[]{"张三","13111112222"});
            //数据库用完需要关闭
            db.close();
        }
        public void click2(View v) {//删除一条记录
            //获取数据库对象
            SQLiteDatabase db = myOpenHelper.getWritableDatabase();
            //执行删除一条的sql语句
            db.execSQL("delete from info where name=?",new Object[]{"张三"});
            //数据库用完需要关闭
            db.close();
        }
        public void click3(View v) {//修改一条记录
            //获取数据库对象
            SQLiteDatabase db = myOpenHelper.getWritableDatabase();
            //执行修改一条的sql语句
            db.execSQL("update info set phone=? where name=?",new Object[]{"1871111","张三"});
            //数据库用完需要关闭
            db.close();
        }
        public void click4(View v) {//查询一条记录
            //获取数据库对象
            SQLiteDatabase db = myOpenHelper.getWritableDatabase();
            //执行查询一条的sql语句(返回的是一个结果集,后面是占位符)
            Cursor cursor = db.rawQuery("select * from info", null);//查询所有数据
            if (cursor!=null && cursor.getCount()>0) {//查询结果不为空,且个数大于0
                while (cursor.moveToNext()) {//循环,每次都取下一个,取不到则结束
                    //取值,参数为列的索引,从0开始
                    String name = cursor.getString(1);
                    String phone = cursor.getString(2);
                    System.out.println("name:"+name+"  phone:"+phone);
                }
            }
            //数据库用完需要关闭
            db.close(); 
        }
    }
    

    相关文章

      网友评论

          本文标题:数据库:sql语句增删改查

          本文链接:https://www.haomeiwen.com/subject/pwlzyqtx.html