Android :这是一份详细 & 全面的 SQLlite数据库 使用手册

// 2. 删除数据行
(int) delete(String table,String whereClause,String[] whereArgs)

// 3. 添加数据行
(long) insert(String table,String nullColumnHack,ContentValues values)

// 4. 更新数据行
(int) update(String table, ContentValues values, String whereClause, String[] whereArgs)

// 5. 执行一个SQL语句,可以是一个select or 其他sql语句
// 即 直接使用String类型传入sql语句 & 执行
(void) execSQL(String sql)


3. 具体使用

  • 使用步骤 = 自定义数据库子类(继承SQLiteOpenHelper类)、创建数据库 & 操作数据库(增、删、查、改)
  • 下面,我将逐一介绍每个步骤

3.1 自定义数据库子类(继承 SQLiteOpenHelper 类)

/**

  • 创建数据库子类,继承自SQLiteOpenHelper类
  • 需 复写 onCreat()、onUpgrade()
    */
    public class DatabaseHelper extends SQLiteOpenHelper {

// 数据库版本号
private static Integer Version = 1;

/**

  • 构造函数
  • 在SQLiteOpenHelper的子类中,必须有该构造函数
    */
    public DatabaseHelper(Context context, String name, SQLiteDatabase.CursorFactory factory,
    int version) {
    // 参数说明
    // context:上下文对象
    // name:数据库名称
    // param:一个可选的游标工厂(通常是 Null)
    // version:当前数据库的版本,值必须是整数并且是递增的状态

// 必须通过super调用父类的构造函数
super(context, name, factory, version);
}

/**

  • 复写onCreate()
  • 调用时刻:当数据库第1次创建时调用
  • 作用:创建数据库 表 & 初始化数据
  • SQLite数据库创建支持的数据类型: 整型数据、字符串类型、日期类型、二进制
    */
    @Override
    public void onCreate(SQLiteDatabase db) {
    // 创建数据库1张表
    // 通过execSQL()执行SQL语句(此处创建了1个名为person的表)
    String sql = “create table person(id integer primary key autoincrement,name varchar(64),address varchar(64))”;
    db.execSQL(sql);

// 注:数据库实际上是没被创建 / 打开的(因该方法还没调用)
// 直到getWritableDatabase() / getReadableDatabase() 第一次被调用时才会进行创建 / 打开
}

/**

  • 复写onUpgrade()
  • 调用时刻:当数据库升级时则自动调用(即 数据库版本 发生变化时)
  • 作用:更新数据库表结构
  • 注:创建SQLiteOpenHelper子类对象时,必须传入一个version参数,该参数 = 当前数据库版本, 若该版本高于之前版本, 就调用onUpgrade()
    */

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// 参数说明:
// db : 数据库
// oldVersion : 旧版本数据库
// newVersion : 新版本数据库

// 使用 SQL的ALTER语句
String sql = “alter table person add sex varchar(8)”;
db.execSQL(sql);
}

}

3.2 创建数据库:getWritableDatabase()、getReadableDatabase()

// 步骤1:创建DatabaseHelper对象
// 注:此时还未创建数据库
SQLiteOpenHelper dbHelper = new DatabaseHelper(SQLiteActivity.this,“test_carson”);

// 步骤2:真正创建 / 打开数据库
SQLiteDatabase sqliteDatabase = dbHelper.getWritableDatabase(); // 创建 or 打开 可读/写的数据库
SQLiteDatabase sqliteDatabase = dbHelper.getReadab

  • 16
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先,需要在 Android Studio 中创建一个新的项目。然后,需要在 `build.gradle` 文件中添加以下依赖: ``` dependencies { implementation 'com.android.support:appcompat-v7:28.0.0' implementation 'com.android.support.constraint:constraint-layout:1.1.3' implementation 'com.android.support:design:28.0.0' implementation 'com.android.support:support-v4:28.0.0' implementation 'com.squareup.okhttp3:okhttp:3.12.0' implementation 'com.squareup.okio:okio:1.15.0' } ``` 接下来,需要创建一个 `SQLiteOpenHelper` 类来管理数据库。这个类需要继承 `SQLiteOpenHelper` 并实现以下方法: ```java public class DatabaseHelper extends SQLiteOpenHelper { private static final String DATABASE_NAME = "mydatabase.db"; private static final int DATABASE_VERSION = 1; public DatabaseHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL("CREATE TABLE users (_id INTEGER PRIMARY KEY AUTOINCREMENT, username TEXT, password TEXT)"); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { db.execSQL("DROP TABLE IF EXISTS users"); onCreate(db); } } ``` 在 `onCreate` 方法中,我们创建了一个名为 `users` 的表,包括 `_id`、`username` 和 `password` 三个字段。在 `onUpgrade` 方法中,我们删除了旧的表并创建了一个新的表。 接下来,需要在 Activity 中使用这个类来实现注册功能。下面是一个简单的实现: ```java public class MainActivity extends AppCompatActivity { private EditText usernameEditText; private EditText passwordEditText; private DatabaseHelper dbHelper; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); dbHelper = new DatabaseHelper(this); usernameEditText = findViewById(R.id.username_edit_text); passwordEditText = findViewById(R.id.password_edit_text); Button registerButton = findViewById(R.id.register_button); registerButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String username = usernameEditText.getText().toString(); String password = passwordEditText.getText().toString(); if (username.isEmpty() || password.isEmpty()) { Toast.makeText(MainActivity.this, "Username and password are required", Toast.LENGTH_SHORT).show(); return; } SQLiteDatabase db = dbHelper.getWritableDatabase(); ContentValues values = new ContentValues(); values.put("username", username); values.put("password", password); db.insert("users", null, values); Toast.makeText(MainActivity.this, "User registered successfully", Toast.LENGTH_SHORT).show(); } }); } @Override protected void onDestroy() { super.onDestroy(); dbHelper.close(); } } ``` 在 `onCreate` 方法中,我们创建了一个 `DatabaseHelper` 对象,并获取了两个 EditText 对象。接着,我们为注册按钮添加了一个点击事件,事件中首先获取了用户名和密码,然后进行非空校验。如果用户名或密码为空,我们就显示一个 Toast 提示用户。 如果用户名和密码都不为空,我们就创建一个 `SQLiteDatabase` 对象,并使用 `ContentValues` 类来存储用户名和密码。最后,我们调用 `db.insert` 方法将数据插入到 `users` 表中,并显示一个 Toast 提示用户。 在 `onDestroy` 方法中,我们关闭了 `DatabaseHelper` 对象,释放资源。 以上就是使用 Java 连接 SQLite 数据库并实现注册功能的代码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值