Android 数据库新增数据教程:insert操作详解 (android 数据库insert)

Android 数据库新增数据教程:insert 操作详解

作为一款移动操作系统,Android 功能强大,且拥有广泛的用户群体。其数据存储机制与传统的数据库类似,通常使用 SQLite、MySQL 等关系型数据库进行数据存储。在 Android 中进行数据操作的语言是 SQL,因此,学会 SQL 对 Android 开发者来说非常重要。在本篇文章中,我们将重点介绍 Android 数据库中新增数据的 SQL 语句 —— insert 操作。

一、概述

insert 操作是数据库中最常用的操作之一,可以将数据插入到数据库表中。在 Android 数据库中,可以通过 ContentValues 对象或 SQL 语句实现 insert 操作。

二、通过 ContentValues 插入数据

ContentValues 是 Android 框架中的一个类,可以将数据打包成键值对的形式,向 SQLiteDatabase 中的表中插入数据。下面是一个示例代码,演示了如何使用 ContentValues 插入数据:

“`

ContentValues contentValues = new ContentValues();

contentValues.put(“name”, “张三”);

contentValues.put(“age”, 20);

SQLiteDatabase db = dbHelper.getWritableDatabase();

long rowId = db.insert(“person”, null, contentValues);

“`

其中,contentValues.put() 方法用于设置数据,之一个参数是列名,第二个参数是列的值。将每一列的列名和列值插入到 ContentValues 中后,使用 SQLiteDatabase 的 insert() 方法插入数据。insert() 方法的参数分别为表名、null(在不插入空数据的情况下可传入 null)和 ContentValues。返回值是插入数据的行 ID,如果插入失败,则返回 -1。

三、使用 SQL 语句插入数据

除了使用 ContentValues 插入数据外,Android 还支持纯 SQL 语句进行数据插入。下面是一个示例代码,演示了如何通过插入 SQL 语句插入数据到数据库中:

“`

SQLiteDatabase db = dbHelper.getWritableDatabase();

String sql = “INSERT INTO person (name, age) VALUES (‘张三’, 20)”;

db.execSQL(sql);

“`

其中,”INSERT INTO” 指定插入数据的表名,后面的括号中指定了要插入的列和值。使用 execSQL() 方法执行 SQL 语句,如果执行成功,则不会返回任何值,如果执行失败,则会抛出异常。

四、

本文介绍了 Android 数据库新增数据的 insert 操作,介绍了两种实现方式:使用 ContentValues 对象和使用 SQL 语句。当然,ContentValues 插入数据更加方便,适用于较为简单的场景,而 SQL 语句插入数据则适用于复杂的场景。使用时需根据实际需求进行选择。

数据库操作是 Android 开发中非常重要的一部分,各种操作都需要使用 SQL 语句进行实现。希望本文的介绍可以对您的工作或学习带来帮助。

相关问题拓展阅读:

android 怎么读取数据库中的数据?

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里面Sqlite的使用

使用步骤

1,创建一个SqliteOpenHelper的子类

public class MySqliteOpenHelper extends SQLiteOpenHelper { private static final int DATABASE_VERSION = 1;//数据库版本
 public static final String DATABASE_NAME=”user.db”;//数据库文件 名
 public static final String TABLE_NAME=”user”;//表名

 //字段名
 public static final String ID=”id”; public static final String NAME=”name”; public static final String AGE=”age”; /** * 构造方法
 * @param context :闷孝上下文
 * @param name :数据文件名
 * @param factory :数据库工厂 使用过程中传null * @param version :数据库版本*/ public MySqliteOpenHelper(Context context) {super(context, DATABASE_NAME, null, DATABASE_VERSION); } /** * 当数据库打开时调用
 * @param db 数据库操作对象
 */ @Override public void onOpen(SQLiteDatabase db) {super.onOpen(db);System.out.println(“onOpen”); } /** * 创建数据库的方法
 * @param db 数据库操作对象升罩迅 CRUDCREATE READ UPDATE DELETE */ @Override public void onCreate(SQLiteDatabase db) {System.out.println(“onCreate”); } /** *当数据库的版本有提升时调用
 * @param db 数据库操作对象
 * @param oldVersion 老吵此版本号
 * @param newVersion 新版本号
 */ @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {//更新表//更新数据System.out.println(“onUpgrade”); } /** * 当数据库版本降低时调用 —没什么用
 * @param db * @param oldVersion * @param newVersion */ @Override public void onDowngrade(SQLiteDatabase db, int oldVersion, int newVersion) {super.onDowngrade(db, oldVersion, newVersion);System.out.println(“onUpgrade”); }}

onCreate方法:在之一次调用getReadableDatabase(),getWriteableDatabase()方法里调用【如果磁盘上没有数据库文件就会调用】

onOpen方法:在调用getReadableDatabase(),getWriteableDatabase()调用

onUpgrade()方法,当数据库版本提升时调用

getWritableDatabase()得到可读可写的数据库操作对象。如果内存不足,该方法会锁定数据库,并抛异常

getReadableDatabase()得到可读写的数据库操作对象,,如果内存不足,数据库就只能写了

2,重写onCreate方法

public MySqliteOpenHelper(Context context) {super(context, DATABASE_NAME, null, DATABASE_VERSION); }

@Override public void onCreate(SQLiteDatabase db) { // 创建表 String sql = “CREATE TABLE ” + TABLE_NAME + “( ” + _ID + ” Integer primary key autoincrement,” + NAME + ” TEXT, ” + PASSWORD + ” TEXT)”; db.execSQL(sql); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { }

3,初始化数据库

//创建数据库

public void mysqlite(View view)

{

//创建 实现工具类

DBHelper dh = new DBHelper(“test.db”,1);

//连接数据库 获取数据库实例

//getWritableDatabase() 数据写满会报错

//getReadableDatabase() 数据写满不会报错

SQLiteDatabase sd = dh.getWritableDatabase();

sd.close();

4,对数据库进行CRUD

参考demo:

public class DBHelper { private final static String DATABASE_NAME = “TestDB2.db”;// 数据库文件名 private final static int VERSION = 1;// 数据库版本 private final static String TABLE_NAME = “users”;// 表名 private final static String _ID = “_id”;// 编号 private final static String NAME = “name”;// 用户名字段 private final static String PASSWORD = “password”;// 用户密码 // 操作数据库的类 private SQLiteDatabase database; MySQLiteOpenHepler hepler; // 写一个内部类去处理数据库的创建和版本的更新 class MySQLiteOpenHepler extends SQLiteOpenHelper { public MySQLiteOpenHepler(Context context) { super(context, DATABASE_NAME, null, VERSION); } @Override public void onCreate(SQLiteDatabase db) { // 创建表 String sql = “CREATE TABLE ” + TABLE_NAME + “( ” + _ID + ” Integer primary key autoincrement,” + NAME + ” TEXT, ” + PASSWORD + ” TEXT)”; db.execSQL(sql); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { } } public DBHelper(Context context) { hepler = new MySQLiteOpenHepler(context); database = hepler.getWritableDatabase(); } // 添加 public void insert(User user) { ContentValues values = new ContentValues(); values.put(NAME, user.getName()); values.put(PASSWORD, user.getPassword()); database.insert(TABLE_NAME, null, values); } // 修改 public void update(User user) { ContentValues values = new ContentValues(); values.put(NAME, user.getName()); values.put(PASSWORD, user.getPassword()); database.update(TABLE_NAME, values, _ID + “=?”, new String { String.valueOf(user.getId()) }); } // 删除 public void delete(int id) { database.delete(TABLE_NAME, _ID + “=?”, new String { String.valueOf(id) }); }// 查询一个 public User queryById(int id) { User u = null; Cursor cursor = database.query(TABLE_NAME, null, _ID + “=?”, new String { String.valueOf(id) }, null, null, null); if (cursor.getCount() > 0) { cursor.moveToNext(); u = new User(cursor.getInt(0), cursor.getString(1), cursor.getString(2)); } return u; } }

做一个WEBServerse取出数据转换成XML输出,再用android。bundle接受编译

Android编程问题db.insert(table, nullColumnHack, values)

肯定没有问题啊,你每次庆岁插入相同的值也不会报错。 你应该去看一下誉胡睁数据库的相关东西,你每次执行这个语句都会新插做昌入一行。

android 数据库insert的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于android 数据库insert,Android 数据库新增数据教程:insert操作详解,android 怎么读取数据库中的数据?,Android编程问题db.insert(table, nullColumnHack, values)的信息别忘了在本站进行查找喔。


数据运维技术 » Android 数据库新增数据教程:insert操作详解 (android 数据库insert)