android怎么连接sqlite数据库?

android怎么连接sqlite数据库?,第1张

//用数据库助手类:SQLiteOpenHelper连接

//当然 这个类是个虚拟(abstract)类,所以你要写个子类出来

//例如:

/** 数据库助手类 */

public class CU_SqlHelper extends SQLiteOpenHelper {

/** 版本号 */

private static final int VERSION = 1

/** 数据库对象 */

private SQLiteDatabase db = null

/** 在SQLiteOepnHelper的子类当中,必须有该构造函数 */

public CU_SqlHelper(Context context, String name, CursorFactory factory, int version) {

// 必须通过super调用父类当中的构造函数

super(context, name, factory, version)

}

public CU_SqlHelper(Context context, String dbName) {

this(context, dbName, VERSION)

}

public CU_SqlHelper(Context context, String dbName, int version) {

this(context, dbName, null, version)

}

/** 该函数是在第一次创建数据库的时候执行,实际上是在第一次得到SQLiteDatabse对象的时候,才会调用这个方法 */

@Override

public void onCreate(SQLiteDatabase db) {}

@Override

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

/** 打开数据库 */

public void openDB() {

db = getWritableDatabase()

}

/** 关闭数据库 */

public void closeDB() {

if (db != null) {

db.close()

}

}

/** 获得数据库 */

public SQLiteDatabase getDB() {

if (db == null) {

openDB()

} else {

db.close()

openDB()

}

return db

}

}

具体的增删查改等 *** 作你就要好好的看一下网上,详细的使用方法很多的

public class MyDbOpenHeler extends SQLiteOpenHelper {

    private static final String name="zhouke.db"

    private static final int version=1

    public MyDbOpenHeler(Context context) {

        super(context, name, null, version)

    }

    @Override

    public void onCreate(SQLiteDatabase db) {

        db.execSQL("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) {

        super.onCreate(savedInstanceState)

        setContentView(R.layout.activity_main2)

        lv= (ListView) findViewById(R.id.lv)

        //实例化数据库帮助类

        heler=new MyDbOpenHeler(this)

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

        db=heler.getWritableDatabase()

        Cursor word = db.query("word", null, null, null, null, null, "_id desc")

        adapter=new SimpleCursorAdapter(this,R.layout.list_ltem,word,

                new String[]{"_id","name","age"},new int[]{R.id.tv1,R.id.tv2,R.id.tv3},

                CursorAdapter.FLAG_REGISTER_CONTENT_OBSERVER)

        lv.setAdapter(adapter)

//        if(word.isClosed()){

//            word.close()

//        }

        registerForContextMenu(lv)

        //通知的实例化

        manage= (NotificationManager) getSystemService(NOTIFICATION_SERVICE)

        //---

        et1= (EditText) findViewById(R.id.et1)

    }

    //创建选项菜单

    @Override

    public boolean onCreateOptionsMenu(Menu menu) {

        menu.add(1,1,0,"增")

        return super.onCreateOptionsMenu(menu)

    }

    //选项菜单监听事件

    @Override

    public boolean onOptionsItemSelected(MenuItem item) {

        View inflate = View.inflate(this, R.layout.dialog, null)

        final EditText et1 = (EditText) inflate.findViewById(R.id.et1)

        final EditText et2 = (EditText) inflate.findViewById(R.id.et2)

        new AlertDialog.Builder(this).setTitle("增加新学生信息").setView(inflate)

                .setPositiveButton("确认", new DialogInterface.OnClickListener() {

                    @Override

                    public void onClick(DialogInterface dialog, int which) {

                        ContentValues cv=new ContentValues()

                        cv.put("name",et1.getText().toString())

                        cv.put("age", et2.getText().toString())

                        long word = db.insert("word", null, cv)

                        if (word>0){

                            Toast.makeText(Main2Activity.this,"增加数据成功",Toast.LENGTH_SHORT).show()

                            Cursor word2 = db.query("word", null, null, null, null, null, "_id desc")

                            adapter.changeCursor(word2)

                            //通知---开始

                            NotificationCompat.Builder builder=new NotificationCompat.Builder(Main2Activity.this)

                            builder.setSmallIcon(R.drawable.aa)

                                    .setContentText("年龄:"+et2.getText().toString())

                                    .setContentTitle(et1.getText().toString())

                                    .setAutoCancel(true)

                            manage.notify(1,builder.build())

                            //通知 --结束

                        }

                    }

                }).setNegativeButton("取消", new DialogInterface.OnClickListener() {

            @Override

            public void onClick(DialogInterface dialog, int which) {

            }

        }).show()

        return super.onOptionsItemSelected(item)

    }

    //创建上下文菜单

    @Override

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

        super.onCreateContextMenu(menu, v, menuInfo)

        menu.add(1,2,0,"修改")

        menu.add(1,3,0,"删除")

    }

    //上下文菜单监听事件

    @Override

    public boolean onContextItemSelected(MenuItem item) {

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

        AdapterView.AdapterContextMenuInfo info= (AdapterView.AdapterContextMenuInfo) item.getMenuInfo()

        int position = info.position

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

        Cursor  cursor= (Cursor) adapter.getItem(position)

        //从结果集中取出id

        final int _id = cursor.getInt(0)

        switch (item.getItemId()){

            case 2:

                View inflate = View.inflate(this, R.layout.dialog, null)

                final EditText et1 = (EditText) inflate.findViewById(R.id.et1)

                final EditText et2 = (EditText) inflate.findViewById(R.id.et2)

                //获取单词名称

                String name=cursor.getString(1)

                String age=cursor.getString(2)

                et1.setText(name)

                et2.setText(age)

                new AlertDialog.Builder(this).setTitle("修改学生信息").setView(inflate)

                        .setPositiveButton("确认", new DialogInterface.OnClickListener() {

                            @Override

                            public void onClick(DialogInterface dialog, int which) {

                                ContentValues cv=new ContentValues()

                                cv.put("name",et1.getText().toString())

                                cv.put("age", et2.getText().toString())

                                int word=db.update("word",cv,"_id=?",new String[]{String.valueOf(_id)})

                                if (word>0){

                                    Toast.makeText(Main2Activity.this,"修改数据成功",Toast.LENGTH_SHORT).show()

                                    Cursor word2 = db.query("word", null, null, null, null, null, "_id desc")

                                    adapter.changeCursor(word2)

                                }

                            }

                        }).setNegativeButton("取消", new DialogInterface.OnClickListener() {

                    @Override

                    public void onClick(DialogInterface dialog, int which) {

                    }

                }).show()

                break

            case 3:

                int word = db.delete("word", "_id=?", new String[]{String.valueOf(_id)})

                if (word>0){

                    Toast.makeText(Main2Activity.this,"删除数据成功",Toast.LENGTH_SHORT).show()

                    Cursor word2 = db.query("word", null, null, null, null, null, "_id desc")

                    adapter.changeCursor(word2)

                }

                break

        }

        return super.onContextItemSelected(item)

    }

    public void click1(View view) {

        //模糊查询

        String aa=et1.getText().toString()

        Cursor word2 = db.query("word", null, "name like ?", new String[]{"%"+aa+"%"}, null, null, "_id desc")

        adapter.changeCursor(word2)

        //正常查询

 //       Cursor word2 = db.query("word", null, "name=?", new String[]{aa}, null, null, "_id desc")

    }

}


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

原文地址: https://outofmemory.cn/sjk/10015457.html

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

发表评论

登录后才能评论

评论列表(0条)

保存