我需要一步一步的过程来在Android中创建数据库。如何在android中创建数据库?
28
A
回答
5
1
请注意,这是一个很好的做法,换到ContentProviders
6
所有的数据访问创建的数据库:
db= this.openOrCreateDatabase("db_hw3", MODE_PRIVATE, null);
45
数据库是编程重要的事情。我们的许多代码总是使用数据进行处理和保存。就像任何其他编程环境一样,Android也支持数据库编程。您可以使用android支持的默认数据库SQLiteDatabase
。
SQLiteDatabase中的数据库可以包含多个表。假设我们有一个数据库PERSONALDB
和一个表BIODATA
。的BIODATA
结构是:
_id integer
code string
name string
gender string
_id is for key increment,
code
,name
和gender
是用于person
描述。
当程序第一次被调用时,我们必须确保数据库和表被打开(如果存在)。否则,我们必须创建一个数据库和一个表。作为来自Android notepad sample
的示例,这里是用于操作表Biodata
的类PersonDbHelper
。
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.List;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.util.Log;
public class PersonDbHelper {
class Row extends Object {
public long _Id;
public String code;
public String name;
public String gender;
}
private static final String DATABASE_CREATE =
"create table BIODATA(_id integer primary key autoincrement, "
+ "code text not null,"
+ "name text not null"
+");";
private static final String DATABASE_NAME = "PERSONALDB";
private static final String DATABASE_TABLE = "BIODATA";
private static final int DATABASE_VERSION = 1;
private SQLiteDatabase db;
public PersonDbHelper(Context ctx) {
try {
db = ctx.openDatabase(DATABASE_NAME, null);
} catch (FileNotFoundException e) {
try {
db =
ctx.createDatabase(DATABASE_NAME, DATABASE_VERSION, 0,
null);
db.execSQL(DATABASE_CREATE);
} catch (FileNotFoundException e1) {
db = null;
}
}
}
public void close() {
db.close();
}
public void createRow(String code, String name) {
ContentValues initialValues = new ContentValues();
initialValues.put("code", code);
initialValues.put("name", name);
db.insert(DATABASE_TABLE, null, initialValues);
}
public void deleteRow(long rowId) {
db.delete(DATABASE_TABLE, "_id=" + rowId, null);
}
public List<Row> fetchAllRows() {
ArrayList<Row> ret = new ArrayList<Row>();
try {
Cursor c =
db.query(DATABASE_TABLE, new String[] {
"_id", "code", "name"}, null, null, null, null, null);
int numRows = c.count();
c.first();
for (int i = 0; i < numRows; ++i) {
Row row = new Row();
row._Id = c.getLong(0);
row.code = c.getString(1);
row.name = c.getString(2);
ret.add(row);
c.next();
}
} catch (SQLException e) {
Log.e("Exception on query", e.toString());
}
return ret;
}
public Row fetchRow(long rowId) {
Row row = new Row();
Cursor c =
db.query(true, DATABASE_TABLE, new String[] {
"_id", "code", "name"}, "_id=" + rowId, null, null,
null, null);
if (c.count() > 0) {
c.first();
row._Id = c.getLong(0);
row.code = c.getString(1);
row.name = c.getString(2);
return row;
} else {
row.rowId = -1;
row.code = row.name= null;
}
return row;
}
public void updateRow(long rowId, String code, String name) {
ContentValues args = new ContentValues();
args.put("code", code);
args.put("name", name);
db.update(DATABASE_TABLE, args, "_id=" + rowId, null);
}
public Cursor GetAllRows() {
try {
return db.query(DATABASE_TABLE, new String[] {
"_id", "code", "name"}, null, null, null, null, null);
} catch (SQLException e) {
Log.e("Exception on query", e.toString());
return null;
}
}
}
在该方法中onCreate
,你只要把下面给出一个命令初始化数据库: ...
Db = new PersonDbHelper(this);
...
它会尝试打开'PersonalDB'first.If它不存在,那么它将创建一个数据库。在这个'PersonDbHelper'类中,你有插入,删除,更新,查询表的方法。
这里是参考上面的教程:
Creating my first android Database
您可能也经历:
http://www.devx.com/wireless/Article/40842
http://www.vogella.de/articles/AndroidSQLite/article.html
希望这有助于。
相关问题
- 1. 在Android中创建远程数据库
- 2. 不能在android中创建数据库
- 3. 在android中创建SQLite数据库
- 4. 在android中创建数据库
- 5. 如何在android中创建数据库时将表添加到数据库中?
- 6. 如何在C++中创建数据库
- 7. 如何在Azure中创建数据库?
- 8. Android studio创建数据库
- 9. Android的数据库创建
- 10. 我们如何使用SQLiteDatabase类在android中创建数据库?
- 11. 我如何在android中创建/打开数据库?
- 12. 如何在我的android应用程序中创建数据库?
- 13. 如何在Android中创建动态Sqlite数据库
- 14. 如何在Android中创建/打开数据库?
- 15. 如何在SQL Server中创建数据库的数据库图
- 16. 如何在数据库中创建数据库(postgres)?
- 17. 如何创建数据库
- 18. 在android项目上创建数据库
- 19. 如何创建在线数据库?
- 20. 如何在Tryton创建新数据库
- 21. 如何创建与数据库中
- 22. 如何创建数据库表中
- 23. Android数据库中的SQLite数据库不会创建
- 24. 如何在Android应用更新上重新创建数据库?
- 25. 如何在Android的onCreate方法创建SQLite数据库?
- 26. 如何在Android应用程序之外创建SQLite数据库?
- 27. 如何在Android SQLite数据库上创建AUTO_INCREMENT?
- 28. Android:如何在访问数据库时创建加载屏幕
- 29. 如何使用数据库数据在angularjs中创建图表?
- 30. 如何在mysql数据库中创建TINYINT(1)数据类型?
有关更多信息,我建议您阅读http://developer.android.com/training/basics/data-storage/databases.html上的android文档。它一步一步教你一切。祝一切顺利 – user2070775 2013-02-14 18:51:28