阿里云国际站:android数据库操作 demo

以下是一个小型的Android数据库操作的示例。在这个示例中,我将创建一个用户表,然后插入和查询数据。该数据库使用SQLite。

假设有一个User类如下:

public class User {
    public int id;
    public String name;
    public int age;
}

首先,创建一个SQLiteOpenHelper:

public class DbHelper extends SQLiteOpenHelper {
 
    private static final String DATABASE_NAME = "TestAppDB";
    private static final int DATABASE_VERSION = 1;
 
    public DbHelper(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }
 
    @Override
    public void onCreate(SQLiteDatabase db) {
        String CREATE_USER_TABLE =
            "CREATE TABLE " + User.TABLE  + "("
            + User.KEY_ID  + " INTEGER PRIMARY KEY AUTOINCREMENT ," 
            + User.KEY_name + " TEXT, "
            + User.KEY_age + " INTEGER )";
        db.execSQL(CREATE_USER_TABLE);
    }
 
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        db.execSQL("DROP TABLE IF EXISTS "+ User.TABLE);
 
        onCreate(db);
    }
}

然后在数据库中插入数据可以如下:

public int insert(User user) {
    SQLiteDatabase db = dbHelper.getWritableDatabase();
    ContentValues values = new ContentValues();
    values.put(User.KEY_age, user.age);
    values.put(User.KEY_name, user.name);
 
    long user_Id = db.insert(User.TABLE, null, values);
    db.close();
    return (int) user_Id;
}

查询数据可以如下:

public User getUser(int Id){
    SQLiteDatabase db = dbHelper.getReadableDatabase();
    String selectQuery =  "SELECT  " 
            + User.KEY_ID + ","
            + User.KEY_name + ","
            + User.KEY_age + 
            " FROM " + User.TABLE
            + " WHERE " + 
            User.KEY_ID + "=?";
 
    int iCount =0;
    User user = new User();
 
    Cursor cursor = db.rawQuery(selectQuery, new String[] { String.valueOf(Id) } );
 
    if (cursor.moveToFirst()) {
        do {
            user.user_ID =cursor.getInt(cursor.getColumnIndex(User.KEY_ID));
            user.name =cursor.getString(cursor.getColumnIndex(User.KEY_name));
            user.email =cursor.getInt(cursor.getColumnIndex(User.KEY_age));
 
        } while (cursor.moveToNext());
    }
 
    cursor.close();
    db.close();
    return user;
}

在这个示例中,我们创建了一个用户数据库,并演示了如何在数据库中插入和查询用户数据。

在Android中,一种常见的数据库操作是使用SQLite。以下是一个使用SQLite实现的数据库操作的简单Demo:

首先创建一个SQLiteOpenHelper的子类,用于创建和更新数据库:

阿里云国际站:android数据库操作 demo
public class DBHelper extends SQLiteOpenHelper {

    private static final String DB_NAME = "app_db"; // 数据库名
    private static final int DB_VERSION = 1; // 数据库版本

    // 建表语句
    private static final String CREATE_TABLE = "create table my_table(id integer primary key autoincrement, name text, age integer)";

    public DBHelper(Context context) {
        super(context, DB_NAME, null, DB_VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        // 创建表
        db.execSQL(CREATE_TABLE);
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        // 这里是更新数据库版本时所执行的操作
    }
}

然后在Activity中使用DBHelper来操作数据库:

public class MainActivity extends AppCompatActivity {

    private DBHelper dbHelper;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        dbHelper = new DBHelper(this);

        // 插入数据
        insertData();

        // 查询数据
        queryData();
    }

    private void insertData(){
        SQLiteDatabase db = dbHelper.getWritableDatabase();
        ContentValues values = new ContentValues();
        values.put("name", "张三");
        values.put("age", 20);
        db.insert("my_table", null, values);
        db.close();
    }

    private void queryData(){
        SQLiteDatabase db = dbHelper.getReadableDatabase();
        Cursor cursor = db.query ("my_table", null, null, null, null, null, null);
        if(cursor.moveToFirst()){
            do{
                String name = cursor.getString(cursor.getColumnIndex("name"));
                int age = cursor.getInt(cursor.getColumnIndex("age"));
                Log.d("MainActivity", "name:" + name + ";age:" + age);   
            } while(cursor.moveToNext());
        }
        cursor.close();
        db.close();
    }
}

以上为简单的插入和查询数据的方法,更复杂的数据库操作可以参考SQLite的语法进行。

发布者:luotuoemo,转转请注明出处:https://www.jintuiyun.com/167292.html

(0)
luotuoemo的头像luotuoemo
上一篇 2024年3月16日 09:04
下一篇 2024年3月16日 09:12

相关推荐

  • 阿里云国际站:安卓登录连接服务器失败怎么办

    如果你在使用阿里云并试图通过安卓设备登录连接服务器时遇到了困难,以下可能是一些解决失败连接的方法: 检查你的网络连接:确保你的设备已经连接到网络,并且网络可以正常使用。 使用正确的接入点:确保你以正确的方式连接到服务器,包括使用正确的IP地址和端口。 检查你的安全设置:你可能需要在阿里云控制台上为你的服务器设置安全规则,允许你的设备能够通过指定的端口连接到服…

    2024年3月16日
    14000
  • 哈尔滨阿里云代理商:阿里云邮箱 日历

    在哈尔滨,如果您正在寻找阿里云的代理商来获取阿里云邮箱和日历服务,那您可以通过以下几种方式进行联系和了解: 阿里云官网 首先,您可以访问阿里云的官方网站(www.aliyun.com),在那里可以找到资源和联系方式。 可以查询阿里云服务的详细信息,包括邮箱和日历,以及相应的费用和功能。 阿里云合作伙伴 阿里云有许多认证的合作伙伴和代理商,他们可以提供本地支持…

    2024年5月30日
    14500
  • 荆州阿里云代理商:阿里云云数据库RDS MySQL支持的存储引擎和特性?

    阿里云云数据库RDS MySQL支持的存储引擎包括InnoDB、MyISAM、Memory、CSV和Archive。 不同存储引擎支持的特性也不同,下面是它们的一些区别: InnoDB:支持事务、行级锁、外键,适合高并发、高可靠性的应用。 MyISAM:不支持事务和行级锁,性能较高,适合读写比较平衡的应用。 Memory:将数据存储在内存中,读写速度非常快,…

    2023年11月25日
    17100
  • 阿里云物联网发布信息怎么看

    要怎么查看阿里云服务器里面的内容? 1. 记录下所有的IP地址,访问IP地址;2. 搞到服务器的密码,远程登录检查下。 上传到阿里云引擎的文件在哪里查看 需要你先在云主机里面架设下FTP.然后设置一个目录.并在本地电脑上安装下flashfxp上传工具.利用这个工具就可以把本地数据上传到云主机里面.如果你是上传简单的小文件.也可以在远程连接服务器的时候点选项.…

    2023年8月28日
    15800
  • 如何远程操作物联网云平台

    信捷物联网触摸屏如何远程控制 信捷物联网触摸屏可以通过远程控制方式来实现对其的控制。具体的步骤如下: 1. 首先,需要在信捷物联网触摸屏上设置远程控制的密码和用户名,并开启远程控制功能。 2. 然后,在远程电脑上下载并安装信源郑捷物联网触摸屏控制软件,并输入正确的用户名和密码进行登录。 3. 登录成功后,就可以通过软件远程控制信捷物联网触摸屏了,可以进行触摸…

    2023年8月26日
    16400

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

4000-747-360

在线咨询: QQ交谈

邮件:ixuntao@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
购买阿里云服务器请访问:https://www.4526.cn/