如何在android中使用SQLite

时间:2015-08-26 14:11:21

标签: sqlite

如何在android中使用SQLite?

我创建了EditView用于输入姓名和电话号码,还有三个按钮用于" ADD","删除","更新"操作。然后在同一活动中使用ListView来填充列表视图中的这些数据。

我怎样才能以简单的方式做到这一点。我刚刚开始我的职业生涯,所以任何人都会帮助我。

2 个答案:

答案 0 :(得分:0)

SQLite支持所有关系数据库功能。要访问此数据库,您不需要为它建立任何类型的连接,如JDBC,ODBC e.t.c

数据库 - 包 主要包是android.database.sqlite,其中包含管理您自己的数据库的类

数据库 - 创建 要创建数据库,只需使用数据库名称和模式作为参数调用此方法openOrCreateDatabase。它返回一个SQLite数据库的实例,您必须在自己的对象中接收它。它的语法如下所示

SQLiteDatabse mydatabase = openOrCreateDatabase("your database name",MODE_PRIVATE,null);

除此之外,数据库包中还有其他可用的功能。它们列在下面

Sr.No Method&描述 1

openDatabase(String path, SQLiteDatabase.CursorFactory factory, int flags, DatabaseErrorHandler errorHandler)

此方法仅使用适当的标记模式打开现有数据库。公共标志模式可以是OPEN_READWRITE OPEN_READONLY

2

openDatabase(String path, SQLiteDatabase.CursorFactory factory, int flags)

它类似于上面的方法,因为它也会打开现有数据库,但它没有定义任何处理数据库错误的处理程序

3

openOrCreateDatabase(String path, SQLiteDatabase.CursorFactory factory)

它不仅会打开,还会创建数据库(如果不存在)。此方法等同于openDatabase方法

4

openOrCreateDatabase(File file, SQLiteDatabase.CursorFactory factory)

此方法与上述方法类似,但它将File对象作为路径而不是字符串。它等同于file.getPath()

数据库 - 插入 我们可以使用SQLiteDatabase类中定义的execSQL方法创建表或将数据插入表中。其语法如下所示

mydatabase.execSQL("CREATE TABLE IF NOT EXISTS TutorialsPoint(Username VARCHAR,Password VARCHAR);");
mydatabase.execSQL("INSERT INTO TutorialsPoint VALUES('admin','admin');");

这将在我们的数据库中的表中插入一些值。另一种方法也可以完成同样的工作,但需要一些额外的参数,如下所示

Sr.No Method&描述 1 execSQL(String sql,Object [] bindArgs) 此方法不仅插入数据,还用于使用绑定参数

更新或修改数据库中已存在的数据

数据库 - 提取 我们可以使用Cursor类的对象从数据库中检索任何内容。我们将调用这个名为rawQuery的类的方法,它将返回一个结果集,并将光标指向该表。我们可以向前移动光标并检索数据。

Cursor resultSet = mydatbase.rawQuery("Select * from TutorialsPoint",null);
resultSet.moveToFirst();
String username = resultSet.getString(1);
String password = resultSet.getString(2);

Cursor类中还有其他可用的函数,可以让我们有效地检索数据。那包括

Sr.No Method&描述 1 getColumnCount()此方法返回表的总列数。 2 getColumnIndex(String columnName) 此方法通过指定列的名称

返回列的索引号

3 getColumnName(int columnIndex) 此方法通过指定列的索引

返回列的名称

4 getColumnNames() 此方法返回表的所有列名称的数组。

5 getCount() 此方法返回游标中的总行数

6 getPosition() 此方法返回表

中光标的当前位置

7 isClosed() 如果光标关闭则此方法返回true,否则返回false

数据库 - 助手类 为了管理与数据库相关的所有操作,已经给出了一个辅助类,称为SQLiteOpenHelper。它自动管理数据库的创建和更新。其语法如下所示

public class DBHelper extends SQLiteOpenHelper {
   public DBHelper(){
      super(context,DATABASE_NAME,null,1);
   }
   public void onCreate(SQLiteDatabase db) {}
   public void onUpgrade(SQLiteDatabase database, int oldVersion, int newVersion) {}
}

Ref

答案 1 :(得分:0)

public class MainActivity extends AppCompatActivity {
    Button b1,b2,b3,b4;
    SQLiteDatabase db;
    EditText n,i;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        b1=(Button)findViewById(R.id.button);
        b2=(Button)findViewById(R.id.button3);
        b3=(Button)findViewById(R.id.button4);
        b4=(Button)findViewById(R.id.button5);
        n=(EditText)findViewById(R.id.editText);
        i=(EditText)findViewById(R.id.editText4);
        db = openOrCreateDatabase("emp", Context.MODE_PRIVATE, null);
        db.execSQL("CREATE TABLE IF NOT EXISTS student1(name VARCHAR, rollno number)");
        b1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                db.execSQL("INSERT INTO student1 VALUES('" + n.getText() + "'," + i.getText() + ");");

            }
        });

        b2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                //Toast.makeText(MainActivity.this, "hey", Toast.LENGTH_SHORT).show();
                db=openOrCreateDatabase("emp",Context.MODE_PRIVATE,null);
                Cursor c=db.rawQuery("SELECT * FROM student1",null);
                if(c.getCount()==0)
                {
                    Toast.makeText(MainActivity.this, "Error no records found", Toast.LENGTH_SHORT).show();
                }
                StringBuffer buffer=new StringBuffer();
                while(c.moveToNext())
                {
                    buffer.append("Name : "+c.getString(0)+"\n");
                    buffer.append("RollNo:"+c.getString(1)+"\n");
                }

                Toast.makeText(MainActivity.this, buffer, Toast.LENGTH_SHORT).show();

            }
        });

        b3.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                try {
                    db.execSQL("DELETE FROM student1 WHERE name='" + n.getText().toString() +"';");
                }
                catch(Exception e){
                    Toast.makeText(getApplicationContext(),"Crash",Toast.LENGTH_SHORT).show();
                    e.printStackTrace();
                }
            }
        });

        b4.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                db.execSQL("UPDATE student1 SET name='"+n.getText().toString()+"' where name='heyeee'");
            }
        });



                }


            }