android安卓数据库的增删改查和发送通知

android安卓数据库的增删改查和发送通知,第1张

public class MyDbOpenHeler extends SQLiteOpenHelper {

    private static final String name="zhoukedb";

    private static final int version=1;

    public MyDbOpenHeler(Context context) {

        super(context, name, null, version);

    }

    @Override

    public void onCreate(SQLiteDatabase db) {

        dbexecSQL("create table if not exists word(_id integer primary key autoincrement,name varchar(20),age int)");

    }

    @Override

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

    }

}

------------------------------------------------

public class Main2Activity extends AppCompatActivity {

    ListView lv;

    MyDbOpenHeler heler;

    SQLiteDatabase db;

    SimpleCursorAdapter adapter;

    EditText et1;

    //通知

    NotificationManager manage;

    //---

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        superonCreate(savedInstanceState);

        setContentView(Rlayoutactivity_main2);

        lv= (ListView) findViewById(Ridlv);

        //实例化数据库帮助类

        heler=new MyDbOpenHeler(this);

        //获取一个可读写的数据库 *** 作对象

        db=helergetWritableDatabase();

        Cursor word = dbquery("word", null, null, null, null, null, "_id desc");

        adapter=new SimpleCursorAdapter(this,Rlayoutlist_ltem,word,

                new String[]{"_id","name","age"},new int[]{Ridtv1,Ridtv2,Ridtv3},

                CursorAdapterFLAG_REGISTER_CONTENT_OBSERVER);

        lvsetAdapter(adapter);

//        if(wordisClosed()){

//            wordclose();

//        }

        registerForContextMenu(lv);

        //通知的实例化

        manage= (NotificationManager) getSystemService(NOTIFICATION_SERVICE);

        //---

        et1= (EditText) findViewById(Ridet1);

    }

    //创建选项菜单

    @Override

    public boolean onCreateOptionsMenu(Menu menu) {

        menuadd(1,1,0,"增");

        return superonCreateOptionsMenu(menu);

    }

    //选项菜单监听事件

    @Override

    public boolean onOptionsItemSelected(MenuItem item) {

        View inflate = Viewinflate(this, Rlayoutdialog, null);

        final EditText et1 = (EditText) inflatefindViewById(Ridet1);

        final EditText et2 = (EditText) inflatefindViewById(Ridet2);

        new AlertDialogBuilder(this)setTitle("增加新学生信息")setView(inflate)

                setPositiveButton("确认", new DialogInterfaceOnClickListener() {

                    @Override

                    public void onClick(DialogInterface dialog, int which) {

                        ContentValues cv=new ContentValues();

                        cvput("name",et1getText()toString());

                        cvput("age", et2getText()toString());

                        long word = dbinsert("word", null, cv);

                        if (word>0){

                            ToastmakeText(Main2Activitythis,"增加数据成功",ToastLENGTH_SHORT)show();

                            Cursor word2 = dbquery("word", null, null, null, null, null, "_id desc");

                            adapterchangeCursor(word2);

                            //通知---开始

                            NotificationCompatBuilder builder=new NotificationCompatBuilder(Main2Activitythis);

                            buildersetSmallIcon(Rdrawableaa)

                                    setContentText("年龄:"+et2getText()toString())

                                    setContentTitle(et1getText()toString())

                                    setAutoCancel(true);

                            managenotify(1,builderbuild());

                            //通知 --结束

                        }

                    }

                })setNegativeButton("取消", new DialogInterfaceOnClickListener() {

            @Override

            public void onClick(DialogInterface dialog, int which) {

            }

        })show();

        return superonOptionsItemSelected(item);

    }

    //创建上下文菜单

    @Override

    public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuContextMenuInfo menuInfo) {

        superonCreateContextMenu(menu, v, menuInfo);

        menuadd(1,2,0,"修改");

        menuadd(1,3,0,"删除");

    }

    //上下文菜单监听事件

    @Override

    public boolean onContextItemSelected(MenuItem item) {

        //获取当前点击项的索引

        AdapterViewAdapterContextMenuInfo info= (AdapterViewAdapterContextMenuInfo) itemgetMenuInfo();

        int position = infoposition;

        //根据索引获取这一行数据,把它转化为Cursor

        Cursor  cursor= (Cursor) adaptergetItem(position);

        //从结果集中取出id

        final int _id = cursorgetInt(0);

        switch (itemgetItemId()){

            case 2:

                View inflate = Viewinflate(this, Rlayoutdialog, null);

                final EditText et1 = (EditText) inflatefindViewById(Ridet1);

                final EditText et2 = (EditText) inflatefindViewById(Ridet2);

                //获取单词名称

                String name=cursorgetString(1);

                String age=cursorgetString(2);

                et1setText(name);

                et2setText(age);

                new AlertDialogBuilder(this)setTitle("修改学生信息")setView(inflate)

                        setPositiveButton("确认", new DialogInterfaceOnClickListener() {

                            @Override

                            public void onClick(DialogInterface dialog, int which) {

                                ContentValues cv=new ContentValues();

                                cvput("name",et1getText()toString());

                                cvput("age", et2getText()toString());

                                int word=dbupdate("word",cv,"_id=",new String[]{StringvalueOf(_id)});

                                if (word>0){

                                    ToastmakeText(Main2Activitythis,"修改数据成功",ToastLENGTH_SHORT)show();

                                    Cursor word2 = dbquery("word", null, null, null, null, null, "_id desc");

                                    adapterchangeCursor(word2);

                                }

                            }

                        })setNegativeButton("取消", new DialogInterfaceOnClickListener() {

                    @Override

                    public void onClick(DialogInterface dialog, int which) {

                    }

                })show();

                break;

            case 3:

                int word = dbdelete("word", "_id=", new String[]{StringvalueOf(_id)});

                if (word>0){

                    ToastmakeText(Main2Activitythis,"删除数据成功",ToastLENGTH_SHORT)show();

                    Cursor word2 = dbquery("word", null, null, null, null, null, "_id desc");

                    adapterchangeCursor(word2);

                }

                break;

        }

        return superonContextItemSelected(item);

    }

    public void click1(View view) {

        //模糊查询

        String aa=et1getText()toString();

        Cursor word2 = dbquery("word", null, "name like ", new String[]{"%"+aa+"%"}, null, null, "_id desc");

        adapterchangeCursor(word2);

        //正常查询

 //       Cursor word2 = dbquery("word", null, "name=", new String[]{aa}, null, null, "_id desc");

    }

}

创建数据库

选择开始菜单中→程序→Management SQL Server 2008→SQL Server Management Studio命令,打开SQL Server Management Studio窗口,并使用Windows或 SQL Server身份验证建立连接。

在对象资源管理器窗口中展开服务器,然后选择数据库节点

右键单击数据库节点,从d出来的快捷菜单中选择新建数据库命令。

执行上述 *** 作后,会d出新建数据库对话框。在对话框、左侧有3个选项,分别是常规、选项和文件组。完成这三个选项中的设置会后,就完成了数据库的创建工作,

在数据库名称文本框中输入要新建数据库的名称。例如,这里以“新建的数据库”。

在所有者文本框中输入新建数据库的所有者,如sa。根据数据库的使用情况,选择启用或者禁用使用全文索引复选框。

在数据库文件列表中包括两行,一行是数据库文件,而另一行是日记文件。通过单击下面的添加、删除按钮添加或删除数据库文件。

切换到选项页、在这里可以设置数据库的排序规则、恢复模式、兼容级别和其他属性。

切换到文件组页,在这里可以添加或删除文件组。

完成以上 *** 作后,单击确定按钮关闭新建数据库对话框。至此“新建的数据”数据库创建成功。新建的数据库可以再对象资源管理器窗口看到。

android中清除缓存时数据库不会被删除。因为缓存只是应用程序留在手机存储上的临时文件,而数据库是手机正式保存下来的文件。

android清除缓存的工作原理如图:

ALTER TABLE的SQLite SQLite支持ALTER TABLE的一个有限子集。

在ALTER SQLite中允许一个表或一个新列添加到现有表。删除列,或者添加或从表中删除约束。

sqlite中是不支持删除有值的列 *** 作的,所以alter table table_name drop column col_name这个语句在sqlite中是无效的,而替代的方法可以如下:

1根据原表创建一张新表

2删除原表

3将新表重名为旧表的名称

示例例子如下

1创建一张旧表Student,包含id(主码),name, tel

create table student (

id integer primary key,

name text,

tel text

)

2给旧表插入两个值

insert into student(id,name,tel) values(101,"Jack","110")

insert into student(id,name,tel) values(102,"Rose","119")

3接下来我们删除电话这个列,首先根据student表创建一张新表teacher

create table teacher as select id,name from student

4然后我们删除student这个表

drop table if exists student

5将teacher这个表重命名为student

alter table teacher rename to student

结果演示:

select  from student order by name desc(desc降序, asc升序)

以上就是关于android安卓数据库的增删改查和发送通知全部的内容,包括:android安卓数据库的增删改查和发送通知、android的sqlite数据库如何保证能不被删除呢、android中清除缓存时数据库会被删除吗等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9520237.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-29
下一篇2023-04-29

发表评论

登录后才能评论

评论列表(0条)

    保存