如何在安卓Activity中获取数据库 (安卓activity怎么获取数据库)

安卓开发的一个常见任务就是使用数据库来存储和检索数据。尽管使用数据库可能会带来一定的复杂性,但它对于那些需要持久化数据的应用程序是十分重要的。在安卓应用程序中使用数据库的过程中,开发人员需要明确几个问题。首先需要选择一个适合自己开发需求的数据库,并学习如何在Activity中获取数据。这篇文章将重点阐述。

关于数据库

在安卓开发中,可用的数据库有多种不同的选择。其中最广泛使用的数据库有SQLite。SQLite是一个轻量级的、自给自足的嵌入式数据库引擎,支持 ANSI SQL 92 标准的子集。它适用于许多场合,例如嵌入式设备、web 浏览器和小型应用程序等。

另一个常见的数据库选择是Realm。Realm是一种专门为移动应用程序而设计的数据库,它运行在设备上,并为应用程序提供持久数据存储。尽管与SQLite相比,Realm显得更具有优越性,但SQLite依然受到许多开发人员的青睐,因为它更可靠、稳定,并且是开箱即用的,因此它更受广大开发人员的喜爱。

下面,我们将重点讲解如何在Activity中获取SQLite数据库。

获取SQLite数据库

在安卓应用程序中,可以通过以下几个步骤来获取SQLite数据库:

一、创建一个数据库帮助类

为了使用SQLite数据库,我们首先需要创建一个数据库帮助类。自定义数据库帮助器将允许我们指定特定的数据库名称和版本,并为数据库定义表。以下是创建帮助器类的常规步骤:

1.继承SQLiteOpenHelper类。

2.覆盖onCreate()和onUpgrade()方法。

3.在onCreate()方法中,使用SQLiteDatabase对象执行CREATE TABLE语句来创建表。

创建一个数据库帮助类的示例代码如下:

public class MyDatabaseHelper extends SQLiteOpenHelper {

public static final String DATABASE_NAME = “MyDatabase.db”;

public static final int DATABASE_VERSION = 1;

public MyDatabaseHelper(Context context) {

super(context, DATABASE_NAME, null, DATABASE_VERSION);

}

@Override

public void onCreate(SQLiteDatabase db) {

db.execSQL(“CREATE TABLE MyTable (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT);”);

}

@Override

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

db.execSQL(“DROP TABLE IF EXISTS MyTable”);

onCreate(db);

}

}

该类中,我们定义数据库的名称和版本,并在onCreate()方法中,使用SQLiteDatabase对象执行CREATE TABLE语句来创建一个名为MyTable的表,该表包含两个列:id和name。

二、在Activity中获取数据库

处理完上面的工作后,我们需要在Activity中获取数据库。可以通过以下几个步骤来获取:

1.创建一个MyDatabaseHelper对象。

2.调用getWritableDatabase()方法来获取SQLiteDatabase对象。

以下是在Activity中获取数据库的示例代码:

public class MnActivity extends AppCompatActivity {

private SQLiteDatabase db;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_mn);

// 创建 MyDatabaseHelper 对象

MyDatabaseHelper dbHelper = new MyDatabaseHelper(this);

// 获取 SQLiteDatabase 对象

db = dbHelper.getWritableDatabase();

}

@Override

protected void onDestroy() {

super.onDestroy();

db.close();

}

}

在这个示例代码中,我们首先创建一个MyDatabaseHelper对象,然后调用getWritableDatabase()方法来获取SQLiteDatabase对象。此时,我们已经成功获取了数据库,并可以对它进行读写操作。

在安卓应用程序开发中,使用数据库是一个常见的任务。虽然选择适合自己需求的数据库是一个很大的挑战,但熟练获取数据库至少是关键的之一步。在本文中,我们着重讲述了如何在安卓Activity中获取SQLite数据库。虽然上述例子使用的是SQLite,但如果开发人员选择了其他数据库,获取过程大致相同。掌握好这一技能,可以极大地增加开发效率,减少开发时间。

相关问题拓展阅读:

android怎么链接数据库mysql

有点多请耐心看完。

希望能帮助你,还请及时采纳谢谢。

一.前言

android连接数据库的方式有两种,之一种是通过连接服务器,再由服务器读取数据弯胡库来实现数据的增删改查,这也是我们常用的方式。第二种方式是android直接埋如拦连接数据库,这种方式非常耗手机内存,而且容易被

反编译

造成

安全隐患

,所以在实际项目中不推荐橡派使用。

二.准备工作

1.加载外部jar包

在Android工程中要使用jdbc的话,要导入jdbc的外部jar包,因为在Java的jdk中并没有jdbc的api,我使用的jar包是mysql-connector-java-5.1.18-bin.jar包,网络上有使用mysql-connector-java-5.1.18-bin.jar包的,自己去用的时候发现不兼容,所以下载了比较新版本的,jar包可以去官网下载,也可以去百度,有很多前人们上传的。

2.导入jar包的方式

方式一:

可以在项目的build.gradle文件中直接添加如下语句导入

compile files(‘libs/mysql-connector-java-5.1.18-bin.jar’)

方式二:下载jar包复制到项目的libs目录下,然后右键复制过来的jar包Add as libs

三.建立数据库连接

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_jdbc);

new Thread(runnable).start();

}

Handler myHandler=new Handler(){

public void handleMessage(Message msg) {

// TODO Auto-generated method stub

super.handleMessage(msg);

Bundle data=new Bundle();

data=msg.getData();

//System.out.println(“id:”+data.get(“id”).toString()); //输出第n行,列名为“id”的值

Log.e(“TAG”,”id:”+data.get(“id”).toString());

TextView tv= (TextView) findViewById(R.id.jdbc);

//System.out.println(“content:”+data.get(“content”).toString());

}

};

Runnable runnable=new Runnable() {

private Connection con = null;

@Override

public void run() {

// TODO Auto-generated method stub

try {

Class.forName(“com.mysql.jdbc.Driver”);

//引用代码此处需要修改,address为数据IP,Port为

端口号

,DBName为数据名称,UserName为数据库登录账户,Password为数据库登录密码

con =

//DriverManager.getConnection(“jdbc: “root”, “”);

DriverManager.getConnection(“jdbc:

“,

UserName,Password);

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (ClassNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

try {

testConnection(con); //测试数据库连接

} catch (java.sql.SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

public void testConnection(Connection con1) throws java.sql.SQLException {

try {

String sql = “select * from ecs_users”;//查询表名为“oner_alarm”的所有内容

Statement stmt = con1.createStatement();//创建Statement

ResultSet rs = stmt.executeQuery(sql);//ResultSet类似Cursor

//ResultSet最初指向之一行

Bundle bundle=new Bundle();

while (rs.next()) {

bundle.clear();

bundle.putString(“id”,rs.getString(“userid”));

//bundle.putString(“content”,rs.getString(“content”));

Message msg=new Message();

msg.setData(bundle);

myHandler.sendMessage(msg);

}

rs.close();

stmt.close();

} catch (SQLException e) {

} finally {

if (con1 != null)

try {

con1.close();

} catch (SQLException e) {}

}

}

};

注意:

在Android4.0之后,不允许在主

线程

中进行比较耗时的操作(连接数据库就属于比较耗时的操作),需要开一个新的线程来处理这种耗时的操作,没新线程时,一直就是程序直接退出,开了一个新线程处理直接,就没问题了。

当然,连接数据库是需要网络的,千万别忘了添加访问网络权限:

四.bu

1.导入的jar包一定要正确

2.连接数据库一定要开启新线程

3.数据库的IP一定要是可以ping通的,局域网地址手机是访问不了的

4.数据库所在的服务器是否开了防火墙,阻止了访问

————————————————

版权声明:本文为CSDN博主「shuaiyou_comon」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:

Android 从activityA跳转传值到activityB中 然后在B中把A的传过来的数据保存到数据库怎么做

在B中设置静态成员变量,用来传递值

Intent intent = new Intent();

//用intent.putExtra(String name, String value);来传缓帆运递参数。扰梁

intent.putExtra(“one”,number1);

intent.putExtra(“two”, number2);

intent.setClass(activity1.this, activity2.class);

startActivity(intent);

然后在activity2中

Intent intent1 = getIntent();

// 用intent1.getStringExtra()来得到activity1发过来的字符串。

String one = intent1.getStringExtra(“one”);

String two = intent1.getStringExtra(“two”);

然后在sql语句获取值存储轿芦。

关于安卓activity怎么获取数据库的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。


数据运维技术 » 如何在安卓Activity中获取数据库 (安卓activity怎么获取数据库)