安卓开发的一个常见任务就是使用数据库来存储和检索数据。尽管使用数据库可能会带来一定的复杂性,但它对于那些需要持久化数据的应用程序是十分重要的。在安卓应用程序中使用数据库的过程中,开发人员需要明确几个问题。首先需要选择一个适合自己开发需求的数据库,并学习如何在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 从activityA跳转传值到activityB中 然后在B中把A的传过来的数据保存到数据库怎么做
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怎么获取数据库的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。