1、SQLite数据库
创建和管理SQLite数据库:
创建一个继承自SQLiteOpenHelper
的数据库帮助类。
public class DatabaseHelper extends SQLiteOpenHelper { private static final String DATABASE_NAME = "mydatabase.db"; 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_NAME = "name"; private static final String COLUMN_AGE = "age"; public DatabaseHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); } @Override public void onCreate(SQLiteDatabase db) { String createTable = "CREATE TABLE " + TABLE_NAME + " (" + COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + COLUMN_NAME + " TEXT, " + COLUMN_AGE + " INTEGER)"; db.execSQL(createTable); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME); onCreate(db); } }
插入数据时,可以使用SQLiteDatabase
对象:
public void addUser(String name, int age) { SQLiteDatabase db = this.getWritableDatabase(); ContentValues values = new ContentValues(); values.put(COLUMN_NAME, name); values.put(COLUMN_AGE, age); db.insert(TABLE_NAME, null, values); db.close(); }
2、Room数据库
定义实体类:
@Entity public class User { @PrimaryKey(autoGenerate = true) public int id; @ColumnInfo(name = "name") public String name; @ColumnInfo(name = "age") public int age; }
定义DAO(Data Access Object):
@Dao public interface UserDao { @Insert void insert(User user); @Query("SELECT FROM user WHERE id = :id") User getUserById(int id); }
创建数据库:
@Database(entities = {User.class}, version = 1) public abstract class AppDatabase extends RoomDatabase { public abstract UserDao userDao(); }
实例化数据库并使用:
AppDatabase db = Room.databaseBuilder(getApplicationContext(), AppDatabase.class, "database-name").build();
1、RESTful API
创建API接口:使用Retrofit库来创建API接口。
public interface ApiService { @GET("users/{id}") Call<User> getUserById(@Path("id") int id); @POST("users") Call<User> createUser(@Body User user); }
配置Retrofit:
Retrofit retrofit = new Retrofit.Builder() .baseUrl("https://yourapi.com/") .addConverterFactory(GsonConverterFactory.create()) .build();
调用API:
ApiService apiService = retrofit.create(ApiService.class); Call<User> call = apiService.getUserById(1); call.enqueue(new Callback<User>() { @Override public void onResponse(Call<User> call, Response<User> response) { if (!response.isSuccessful()) { // 处理错误情况 return; } User user = response.body(); // 处理用户数据 } @Override public void onFailure(Call<User> call, Throwable t) { // 处理请求失败情况 } });
三、通过第三方服务连接数据库(以Firebase为例)
1、添加Firebase依赖:在项目的build.gradle
文件中添加Firebase相关的依赖。
2、配置Firebase项目:在Firebase控制台中创建一个新的Android项目,并下载google-services.json
文件,将其添加到Android项目中。
3、初始化Firebase:在应用启动时初始化Firebase。
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { FirebaseApp.initializeApp(this); }
4、连接Firebase数据库:使用Firebase提供的API来连接和操作数据库,获取Firebase数据库实例并读取数据:
FirebaseDatabase database = FirebaseDatabase.getInstance(); DatabaseReference myRef = database.getReference("message"); myRef.addValueEventListener(new ValueEventListener() { @Override public void onDataChange(DataSnapshot dataSnapshot) { // This method is called once with the initial value and then again // whenever data at this location changes. } @Override public void onCancelled(DatabaseError error) { // Failed to read value } });
1、问题:如何在Android中使用SQLite数据库进行增删改查操作?
回答:首先需要创建一个继承自SQLiteOpenHelper
的数据库帮助类,并在其中实现onCreate
和onUpgrade
方法来创建和升级数据库表,可以通过SQLiteDatabase
对象的insert
、delete
、update
和query
方法来进行增删改查操作,插入数据可以使用insert
方法,查询数据可以使用query
方法等。
2、问题:如何通过Retrofit连接远程MySQL数据库?
回答:首先需要在项目中添加Retrofit的依赖,创建一个代表API接口的Java类,并使用注解来定义HTTP请求的方法(如@GET
、@POST
等),配置Retrofit实例,指定基础URL和转换器工厂(如GsonConverterFactory
),通过Retrofit实例创建API接口的实例,并调用相应的方法来发送HTTP请求,获取或提交数据。