SQLite---T_double
import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; public class DB { // 数据库相关数据 private static final String DATABASE_NAME = "DB.db";// 定义数据库名 private static final int DATABASE_VERSION = 1;// 数据版本,如果构造器调用的版本比之前创建的高此类自动调用onUpgrade private static final String TABLE_NAME = "PEOPLE"; // 定义数据库表名 private Context context;// 定义上下文 private SQLiteHelper helper;// 继承于抽象类SQLiteOpenHelper private SQLiteDatabase sDatabase;// 该类封装了一些操作数据库的API,使用该类可以完成对数据进行增删改查 private Cursor cursor; public DB(Context ct) { this.context = ct; } /* * SQliteOpenHelper是一个抽象类,来管理数据库的创建和版本的管理。 * 要使用它必须实现它的onCreate(SQLiteDatabase),onUpgrade(SQLiteDatabase,int,int)方法 * onCreate:当数据库第一次被建立的时候被执行,例如创建表,初始化数据等。 * onUpgrade:当数据库需要被更新的时候执行,例如删除旧表,创建新表。 */ public class SQLiteHelper extends SQLiteOpenHelper { public SQLiteHelper(Context context) { super(context,DATABASE_NAME,null,DATABASE_VERSION); } @Override public void onCreate(SQLiteDatabase db) { // 创建表名为PEOPLE的数据表 final String P_table = "CREATE TABLE " +TABLE_NAME + " ( " + People.id + " integer primary key autoincrement," + People.name + " text not null," + People.pwd + " text not null);"; db.execSQL(P_table); } // 如果构造器的本本比之前创建的高,就自动调用onUpgrade的方法 @Override public void onUpgrade(SQLiteDatabase db, int oldVersion,int newVersion) { String upgrade = "DORP TABLE IF EXIST " + DATABASE_NAME; db.execSQL(upgrade); onCreate(db); } } // ******************SQLiteHelper类结束************************** /** * 建立数据库连接 */ public void Open() { helper = new SQLiteHelper(this.context); } /** * 关闭数据库连接 */ public void Close(SQLiteDatabase sDatabase) { if (cursor != null) { cursor.close(); } if (helper != null) { helper.close(); } } /** * 传入用户名,密码添加到数据库 * * @param name * @param pwd * @return */ public int addPeople(String name,String pwd) { String sort = "id desc";// 定义按照id降序 int count = 0; Open(); sDatabase = helper.getWritableDatabase(); // 插入数据方法一 ContentValues values = new ContentValues(); values.put(People.name,name); values.put(People.pwd,pwd); sDatabase.insert(TABLE_NAME,values); /* * 插入数据方法二 String * sql="insert into "+TABLE_NAME+"( "+People.name+","+People * .pwd+" ) values ( 'mxt','mxt')"; sDatabase.execSQL(sql); */ cursor = sDatabase.query(TABLE_NAME,// columns 要返回的列 select *, null,// selection 类似where,// selectionArgs,// groupBy,// having, sort); // sort count = cursor.getCount(); Close(sDatabase); return count; } /** * 判断用户名是否存在(登陆) * * @param name * @param pwd * @return */ public boolean login(String name,String pwd) { boolean flag = false; Open(); sDatabase = helper.getReadableDatabase(); String columns[] = { People.name }; String sql = People.name + " ='" + name + "' AND " + People.pwd + " ='" + pwd + "'"; cursor = sDatabase.query(TABLE_NAME,// 表名 columns,// columns 要查询出来的列名, sql,// selection // 查询条件子句,相当于select语句where关键字后面的部分,在条件子句允许使用占位符“?” null,// selectionArgs 对应于selection语句中占位符的值,// groupBy 相当于select语句group by关键字后面的部分,// having 相当于select语句having关键字后面的部分, null); // sort 相当于排序 if (cursor.moveToFirst()) { flag = true; } Close(sDatabase); return flag; } /* * sDatabase.update(表名,values(更改后的数据),whereClause(更改的条件), * whereArgs(更改的条件值)) sDatabase.insert(表名,nullColumnHack,values(要插入的数据)) * sDatabase.delete(表名,whereClause(删除的条件),whereArgs(删除条件的数据值)) */ } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |