在Android开发中,不同的类中经常需要共享数据,而数据库则是数据存储的一种常见方式之一。因此,实现两个类之间的数据库传递是开发中不可避免的问题之一。本文将介绍如何在Android中实现两个类之间的数据库传递。
成都创新互联是一家集网站建设,雨山企业网站建设,雨山品牌网站建设,网站定制,雨山网站建设报价,网络营销,网络优化,雨山网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
一、SQLite数据库
Android中常用的数据库是SQLite,它是一种轻量级的关系型数据库系统。SQLite自带在所有的Android设备中,无需任何额外的安装。在Android应用程序中使用SQLite,需要使用Android提供的SQLite API。
二、SQLiteOpenHelper类
SQLiteOpenHelper是Android提供的一个用于管理SQLite数据库的类。使用SQLiteOpenHelper可以完成数据库的创建、升级、降级等操作。
SQLiteOpenHelper包含两个抽象方法:onCreate()和onUpgrade()。onCreate()方法用于创建数据库,onUpgrade()方法用于升级数据库。在SQLiteOpenHelper的子类中,需要重写这两个方法。
三、数据模型类
为了将数据存储到SQLite数据库中,需要定义一个数据模型类。数据模型类通常包含数据表的所有列及其对应的数据类型。在数据模型类中,通常包含以下方法:构造方法、get方法和set方法。
四、实现类之间的数据库传递
在实现类之间的数据库传递时,需要完成以下几个步骤:
1、创建SQLiteOpenHelper的子类,并在子类中实现onCreate()和onUpgrade()方法。
2、创建数据模型类,并在数据模型类中实现保存、查询等操作。
3、在需要进行数据库传递的类中使用SQLiteOpenHelper获取数据库,并通过数据模型类完成数据的读取和保存。
具体实现步骤如下:
1. 创建SQLiteOpenHelper子类
在Android项目中,创建一个“DatabaseHelper”类,继承SQLiteOpenHelper。在子类中重写onCreate()和onUpgrade()方法。onCreate()方法中创建数据表,onUpgrade()方法中升级或降级数据库版本。
public class DatabaseHelper extends SQLiteOpenHelper {
private static final String DB_NAME = “my_db”;
private static final int DB_VERSION = 1;
public DatabaseHelper(Context context) {
super(context, DB_NAME, null, DB_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
String CREATE_TABLE_QUERY = “CREATE TABLE ” +
“person” +
” (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, age INTEGER)”;
db.execSQL(CREATE_TABLE_QUERY);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
if(oldVersion
db.execSQL(“DROP TABLE IF EXISTS person”);
onCreate(db);
}
}
}
2. 创建数据模型类
在Android项目中,创建一个“Person”类,实现数据表中所有的列,以及get方法和set方法。
public class Person {
private int id;
private String name;
private int age;
public Person() {}
public Person(int id, String name, int age) {
this.id = id;
this.name = name;
this.age = age;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
在Person类中,还需要实现保存、查询等方法。如下所示:
public void save(Context context) {
SQLiteDatabase db = new DatabaseHelper(context).getWritableDatabase();
ContentValues cv = new ContentValues();
cv.put(“name”, name);
cv.put(“age”, age);
db.insert(“person”, null, cv);
db.close();
}
public static ArrayList getAll(Context context) {
ArrayList list = new ArrayList();
SQLiteDatabase db = new DatabaseHelper(context).getReadableDatabase();
Cursor cursor = db.rawQuery(“SELECT * FROM person”, null);
if(cursor != null && cursor.getCount() > 0) {
while(cursor.moveToNext()) {
int id = cursor.getInt(cursor.getColumnIndex(“id”));
String name = cursor.getString(cursor.getColumnIndex(“name”));
int age = cursor.getInt(cursor.getColumnIndex(“age”));
list.add(new Person(id, name, age));
}
}
if(cursor != null) {
cursor.close();
}
db.close();
return list;
}
public static void delete(Context context, int id) {
SQLiteDatabase db = new DatabaseHelper(context).getWritableDatabase();
db.delete(“person”, “id=?”, new String[]{String.valueOf(id)});
db.close();
}
3. 在需要进行数据库传递的类中使用SQLiteOpenHelper获取数据库
在需要进行数据库传递的类中,使用DatabaseHelper获取数据库,并通过Person类进行数据的读取和保存。
如下所示,MnActivity中展示了数据库中所有的Person数据,另一个类中通过Person类保存了一个Person对象。
public class MnActivity extends AppCompatActivity {
private ListView listView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_mn);
listView = findViewById(R.id.list_view);
ArrayList list = Person.getAll(this);
listView.setAdapter(new ArrayAdapter(this, R.layout.list_item, list));
}
}
public class OtherActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_other);
Person person = new Person();
person.setName(“Tom”);
person.setAge(18);
person.save(this);
}
}
五、
相关问题拓展阅读:
SQLite也支持SQL标准类型,VARCHAR、CHAR、BIGINT等。
创建数据库
Android 不自动提供数据库。在 Android 应用程序中使用 SQLite,必须自己创建数据库,然后创建表、索引,填充数据。Android 提供了 SQLiteOpenHelper 帮助你创建一个数据库,只要继承 SQLiteOpenHelper 类,就可以创建数据库。继颂指承了SQLiteOpenHelper的子类,必须实现三个方法:
1、构造函数,调用父类 SQLiteOpenHelper 的构造函数。这个方法需要四个参数:上下文环境(例如,一个 Activity),数据库名字,一个可选的游标工厂(通常是 Null),一个代表你正在使用的数据库模型版本的整数。
2、onCreate()方法,它需要一个 SQLiteDatabase 对象作为参数,根据需要对这个对象填充表和初始化数据。
3、onUpgrage() 方法,它需要三个参数祥兄,一个野宴配 SQLiteDatabase 对象,一个旧的版本号和一个新的版本号,这样可以清楚如何把一个数据库从旧的模型转变到新的模型。
android读取数据库可以简模使用sqlite一些api进行读取拦春,实例如下:
/**
* 查找一条数据
* @param uid
*/
public User find(Integer uid){
SQLiteDatabase db=dbOpenHelper.getReadableDatabase(); //创建数据库辅助类
Cursor cursor =db.rawQuery(“select * from user where uid=?”, new String{uid.toString()}); //创建一个游标
if(cursor.moveToFirst()){ //循环遍历查找数组
int uid2=cursor.getInt(cursor.getColumnIndex(“uid”));
String uname=cursor.getString(cursor.getColumnIndex(“uname”));
String uaddress=cursor.getString(cursor.getColumnIndex(“uaddress”简咐耐));
User user=new User();
user.setUid(uid2);
user.setUname(uname);
user.setUaddress(uaddress);
return user;
}
cursor.close();
return null;
}
安卓两个类间传递数据库的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于安卓两个类间传递数据库,如何在Android中实现两个类之间的数据库传递?,android 怎么调用数据库方法的信息别忘了在本站进行查找喔。
香港服务器选创新互联,2H2G首月10元开通。
创新互联(www.cdcxhl.com)互联网服务提供商,拥有超过10年的服务器租用、服务器托管、云服务器、虚拟主机、网站系统开发经验。专业提供云主机、虚拟主机、域名注册、VPS主机、云服务器、香港云服务器、免备案服务器等。
新闻标题:如何在Android中实现两个类之间的数据库传递?(安卓两个类间传递数据库)
标题URL:http://www.mswzjz.cn/qtweb/news49/244149.html
攀枝花网站建设、攀枝花网站运维推广公司-贝锐智能,是专注品牌与效果的网络营销公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 贝锐智能