2月31日总结
代码量:100行
现在是23日早上8点,来补充上昨日的总结。昨日除了上课之外学习了一些android的数据库部分内容,其中一个重要的是SQLiteOpenHelper,其与jdbc的操作非常类似.
示例代码如下:
package com.example.chapter06.database; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import com.example.chapter06.entity.User; import java.util.ArrayList; import java.util.List; public class UserDBHelper extends SQLiteOpenHelper { private static final String DB_NAME = "user.db"; private static final String TABLE_NAME = "user_info"; private static final int DB_VERSION = 2; private static UserDBHelper mHelper = null; private SQLiteDatabase mRDB = null; private SQLiteDatabase mWDB = null; public UserDBHelper(Context context) { super(context, DB_NAME, null, DB_VERSION); } public static UserDBHelper getInstance(Context context) { if (mHelper == null) { mHelper = new UserDBHelper(context); } return mHelper; } public SQLiteDatabase openReadLink() { if (mRDB == null || !mRDB.isOpen()) { mRDB = mHelper.getReadableDatabase(); } return mRDB; } public SQLiteDatabase openWriteLink() { if (mWDB == null || !mWDB.isOpen()) { mWDB = mHelper.getWritableDatabase(); } return mWDB; } public void closeLink() { if (mRDB != null && mRDB.isOpen()) { mRDB.close(); mRDB = null; } if (mWDB != null && mWDB.isOpen()) { mWDB.close(); mWDB = null; } } @Override public void onCreate(SQLiteDatabase db) { String sql = "create table if not exists " + TABLE_NAME + "(" + "_id INTEGER primary key AUTOINCREMENT NOT NULL," + "name VARCHAR NOT NULL," + "age INTEGER NOT NULL," + "height LONG NOT NULL," + "weight FLOAT NOT NULL," + "married INTEGER NOT NULL);"; db.execSQL(sql); } @Override public void onUpgrade(SQLiteDatabase db, int i, int i1) { String sql = "ALTER TABLE "+ TABLE_NAME+" ADD COLUMN phone VARCHAR;"; db.execSQL(sql); sql = "ALTER TABLE "+ TABLE_NAME+" ADD COLUMN password VARCHAR;"; db.execSQL(sql); } public long insert(User user) { ContentValues values = new ContentValues(); values.put("name", user.name); values.put("age", user.age); values.put("height", user.height); values.put("weight", user.weight); values.put("married", user.married); // return mWDB.insert(TABLE_NAME, null, values); try{ mWDB.beginTransaction(); mWDB.insert(TABLE_NAME, null, values); // int i = 10/0; mWDB.insert(TABLE_NAME, null, values); mWDB.setTransactionSuccessful(); }catch (Exception e){ e.printStackTrace(); }finally { mWDB.endTransaction(); } return 1; } public long deleteByName(String name) { return mWDB.delete(TABLE_NAME, "name=?", new String[]{name}); } public long upd(User user) { ContentValues values = new ContentValues(); values.put("name", user.name); values.put("age", user.age); values.put("height", user.height); values.put("weight", user.weight); values.put("married", user.married); return mWDB.update(TABLE_NAME, values, "name=?", new String[]{user.name}); } public List<User> queryAll() { List<User> list = new ArrayList<>(); Cursor cursor = mRDB.query(TABLE_NAME, null, null, null, null, null, null); while (cursor.moveToNext()){ User user = new User(); user.id = cursor.getInt(0); user.name = cursor.getString(1); user.age = cursor.getInt(2); user.height = cursor.getLong(3); user.weight = cursor.getFloat(4); user.married = cursor.getInt(5) == 0 ? false : true; list.add(user); } return list; } public List<User> queryByName(String name ) { List<User> list = new ArrayList<>(); Cursor cursor = mRDB.query(TABLE_NAME, null, "name=?", new String[]{name}, null, null, null); while (cursor.moveToNext()){ User user = new User(); user.id = cursor.getInt(0); user.name = cursor.getString(1); user.age = cursor.getInt(2); user.height = cursor.getLong(3); user.weight = cursor.getFloat(4); user.married = cursor.getInt(5) == 0 ? false : true; list.add(user); } return list; } }
本文作者:lmyyyy
本文链接:https://www.cnblogs.com/lmyy/p/17182920.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步