如何在android中使用SQLite?
我创建了EditView用于输入姓名和电话号码,还有三个按钮用于" ADD","删除","更新"操作。然后在同一活动中使用ListView来填充列表视图中的这些数据。
我怎样才能以简单的方式做到这一点。我刚刚开始我的职业生涯,所以任何人都会帮助我。
答案 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) {}
}
答案 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'");
}
});
}
}