zl程序教程

您现在的位置是:首页 >  移动开发

当前栏目

开始学习android 的sqlite

2023-09-11 14:21:06 时间
是一个嵌入式数据库,非常的小。适合移动开发。 http://www.sqlite.org/download.html 下载地址: 支持mac,windows,linux系统。直接安装就行了。 同时还有源代码,可以学习下。 文档: http://www.sqlite.org/docs.html android下面的已经有支持了。 https:
import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import android.nfc.Tag; import android.util.Log; import java.util.ArrayList; import java.util.List; import java.util.Random;
public static final int DATABASE_VERSION = 1; public static final String DATABASE_NAME = "UserInfo.db"; public static final String TABLE_NAME = "user_info"; //创建数据库。 private static final String SQL_CREATE_ENTRIES = "CREATE TABLE IF NOT EXISTS " + TABLE_NAME + " (id INTEGER PRIMARY KEY,name TEXT,age INTEGER,sex INTEGER,city TEXT)"; //删除数据库。 private static final String SQL_DELETE_ENTRIES = "DROP TABLE IF EXISTS " + TABLE_NAME; public UserHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); @Override public void onCreate(SQLiteDatabase db) { db.execSQL(SQL_CREATE_ENTRIES); @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { db.execSQL(SQL_DELETE_ENTRIES); onCreate(db); @Override public void close() { super.close(); Log.v("SQLite", "##################cloes db.##################"); public void save() { Random random = new Random(); ContentValues contentValues = new ContentValues(); contentValues.put("name", "zhangsan_" + random.nextInt()); contentValues.put("age", random.nextInt()); contentValues.put("sex", random.nextInt()); contentValues.put("city", "city_" + random.nextInt()); getWritableDatabase().insert(UserHelper.TABLE_NAME, "", contentValues); public List UserInfo queryAll() { List UserInfo list = new ArrayList UserInfo Cursor cursor = getReadableDatabase().rawQuery("select * from " + UserHelper.TABLE_NAME + " limit 5", null); while (cursor.moveToNext()) { UserInfo userInfo = new UserInfo(); userInfo.setId(cursor.getInt(cursor.getColumnIndex("id"))); userInfo.setName(cursor.getString(cursor.getColumnIndex("name"))); userInfo.setAge(cursor.getInt(cursor.getColumnIndex("age"))); userInfo.setSex(cursor.getInt(cursor.getColumnIndex("sex"))); userInfo.setCity(cursor.getString(cursor.getColumnIndex("city"))); //增加到数据中。 list.add(userInfo); if (cursor != null) { cursor.close(); return list; public void delete() { List UserInfo list = queryAll(); //只删除第一个。 if (list != null list.size() 0) { UserInfo userInfo = list.get(0); String[] whereArgs = {userInfo.getId() + ""}; getWritableDatabase().delete(UserHelper.TABLE_NAME, "id = ? ", whereArgs); public void update() { List UserInfo list = queryAll(); //只更新第一个。 if (list != null list.size() 0) { Random random = new Random(); UserInfo userInfo = list.get(0); ContentValues values = new ContentValues(); values.put("name", "lisi_" + random.nextInt()); String[] args = {String.valueOf(userInfo.getId())}; //更新数据。 getWritableDatabase().update(UserHelper.TABLE_NAME, values, "id = ? ", args);

mainActivity代码:


protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_database_main); //c创建对象。 helper = new UserHelper(getBaseContext()); Button btn1 = (Button) findViewById(R.id.button1); btn1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { //保存。 for (int i = 0; i 10; i++) { helper.save(); //查询。 List UserInfo list = helper.queryAll(); for (UserInfo userInfo : list) { Log.v(TAG, userInfo.toString()); //更新 helper.update(); //删除 helper.delete(); //在每次注销的时候关闭。 @Override protected void onDestroy() { super.onDestroy(); if (helper != null) { helper.close(); Log.v(TAG, "############# close db ############"); }

本文的原文连接是: http://blog.csdn.net/freewebsys/article/details/53319494
未经博主允许不得转载。
博主地址是:http://blog.csdn.net/freewebsys

作为对比,发现在android下面使用sqlite和mysql差不多。
但是使用sqliteHelper之后会方便很多。创建表和查询其实其实差不多。
就是调用函数和普通的jdbc不太一样。适应下就行了。
官方给的sqlite就已经不错了,不需要再使用orm了。自己做个对象转换就行了。
没有必要封装,比较作为android的客户端,大小也是很重要的。


Android数据库Sqlite的基本用法及升级策略 SQLite是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入 式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持 Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如Tcl、PHP、Java、C++、.Net等,还有ODBC接口,同样比起 Mysql、PostgreSQL这两款开源世界著名的数据库管理系统来讲,它的处理速度比他们都快。
Android Sqlite数据库升级——kotlin 对于android开发同学来说,数据库相关操作是我们日常操作之一,相应的数据库的升级操作就必不可少了。这里我总结下数据库升级时需要注意的事项。 Android中数据库操作的核心类是SqliteOpenHelper,这个类有两个方法,onCreate和onUpgrade。onCreate方法只会调用一次,onUpgrade方法会在版本号增加之后触发。 数据库升级的操作过程中,我们需要处理的情况有两种,第一种是数据库从低版本升级上来的,第二种是新安装app的用户。
【Android】7.0复杂数据的存储SQLite(内置数据库)Room框架 常用的数据库 sqlserver oracle mysql Android嵌入式数据库SQLite SQLite数据库支持SQL语法和ACID事务,适用于存储大量的关系型数据 eg:qq的聊天列表 学习强国的新闻
Android-SQLite数据库实例 使用SQLite保存数据 SQL的基本语法 数据库帮助器SQLiteOpenHelper 继承SQLiteOpenHelper类,重写onCreate、onUpgrade、onOpen方法 打开数据库表 关闭数据库 各参数说明 项目实例:SQLiteDemo.zip