@Override public void onCreate(SQLiteDatabase sqLiteDatabase) { sqLiteDatabase.execSQL("CREATE TABLE registeruser (ID INTEGER PRIMARY KEY AUTOINCREMENT, username TEXT, password TEXT)"); sqLiteDatabase.execSQL("CREATE TABLE bwl (bwlID INTEGER PRIMARY KEY AUTOINCREMENT, bwlTitle TEXT, bwlText TEXT)"); } @Override public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) { sqLiteDatabase.execSQL(" DROP TABLE IF EXISTS " + TABLE_NAME); sqLiteDatabase.execSQL(" DROP TABLE IF EXISTS " + TABLE_BWL); onCreate(sqLiteDatabase); }
时间: 2024-01-14 17:04:36 浏览: 105
这段代码是在Android中使用SQLite数据库进行数据存储时所需要的两个方法:onCreate()和onUpgrade()。
在onCreate()方法中,首先创建了一个名为"registeruser"的表,其中包含了ID、username和password三个字段。其中,ID是一个自增的整数类型的主键,用于唯一标识每一条记录;username和password分别是用于存储用户注册时输入的用户名和密码。
接着,又创建了一个名为"bwl"的表,其中包含了bwlID、bwlTitle和bwlText三个字段。其中,bwlID同样是一个自增的整数类型的主键,用于唯一标识每一条备忘录记录;bwlTitle和bwlText分别是用于存储备忘录的标题和内容。
在onUpgrade()方法中,首先通过执行"DROP TABLE IF EXISTS"语句删除了之前创建的两个表,然后再次调用onCreate()方法重新创建这两个表。
这些方法的主要作用是在数据库版本升级或者第一次创建数据库时执行相应的操作,以确保数据库结构的正确性和一致性。
相关问题
用安卓java实现一个用户登录注册的SQL数据库程序
好的,下面是一个简单的安卓Java程序,实现用户登录和注册的SQL数据库操作。
首先,需要在安卓项目中添加SQLiteDatabase的依赖库,可以在build.gradle文件中添加以下代码:
```gradle
dependencies {
implementation 'com.android.support:support-sqlite:28.0.0'
}
```
接着,在MainActivity类中定义一个SQLiteOpenHelper类来创建和管理数据库。这里我们创建一个名为"UserDB"的数据库,其中包含一个名为"users"的表,用于存储用户信息。
```java
public class UserDBHelper extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "UserDB";
private static final int DATABASE_VERSION = 1;
private static final String TABLE_NAME = "users";
private static final String COLUMN_ID = "id";
private static final String COLUMN_USERNAME = "username";
private static final String COLUMN_PASSWORD = "password";
public UserDBHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
String CREATE_TABLE = "CREATE TABLE " + TABLE_NAME + "("
+ COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT,"
+ COLUMN_USERNAME + " TEXT,"
+ COLUMN_PASSWORD + " TEXT" + ")";
db.execSQL(CREATE_TABLE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);
onCreate(db);
}
}
```
接着,在MainActivity中,定义一个User类来表示用户信息,包含用户名和密码属性。
```java
public class User {
private int id;
private String username;
private String password;
public User(String username, String password) {
this.username = username;
this.password = password;
}
// getter and setter methods
}
```
接下来,实现注册和登录功能。在注册功能中,将新用户的用户名和密码插入到数据库中;在登录功能中,查询数据库中是否存在相应的用户名和密码。
```java
public class MainActivity extends AppCompatActivity {
private EditText usernameEditText;
private EditText passwordEditText;
private UserDBHelper dbHelper;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
dbHelper = new UserDBHelper(this);
usernameEditText = findViewById(R.id.usernameEditText);
passwordEditText = findViewById(R.id.passwordEditText);
Button registerButton = findViewById(R.id.registerButton);
registerButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String username = usernameEditText.getText().toString();
String password = passwordEditText.getText().toString();
User user = new User(username, password);
registerUser(user);
}
});
Button loginButton = findViewById(R.id.loginButton);
loginButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String username = usernameEditText.getText().toString();
String password = passwordEditText.getText().toString();
User user = new User(username, password);
if (authenticateUser(user)) {
// login success
} else {
// login failed
}
}
});
}
private void registerUser(User user) {
SQLiteDatabase db = dbHelper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(UserDBHelper.COLUMN_USERNAME, user.getUsername());
values.put(UserDBHelper.COLUMN_PASSWORD, user.getPassword());
db.insert(UserDBHelper.TABLE_NAME, null, values);
db.close();
}
private boolean authenticateUser(User user) {
SQLiteDatabase db = dbHelper.getReadableDatabase();
String[] projection = {
UserDBHelper.COLUMN_ID
};
String selection = UserDBHelper.COLUMN_USERNAME + " = ? and " + UserDBHelper.COLUMN_PASSWORD + " = ?";
String[] selectionArgs = { user.getUsername(), user.getPassword() };
Cursor cursor = db.query(
UserDBHelper.TABLE_NAME,
projection,
selection,
selectionArgs,
null,
null,
null
);
boolean result = cursor.moveToFirst();
cursor.close();
db.close();
return result;
}
}
```
以上就是一个简单的安卓Java程序,实现用户登录和注册的SQL数据库操作。需要注意的是,这只是一个简单的示例,实际开发中需要根据具体需求进行修改和完善。
阅读全文