创建sqlite数据库存储数据

来源:互联网 发布:看美剧学英语软件 编辑:程序博客网 时间:2024/05/29 14:22
先创建一个DBsqlHelper用于创建数据库public class MessageDBsqlHelper extends SQLiteOpenHelper {public MessageDBsqlHelper(Context context, String name,CursorFactory factory, int version) {super(context, "message.db", null, 1);}// oncrete只会在数据库第一次被创建的时候调用,其他时候不调用//primary key主键//autoincrement自增长@Overridepublic void onCreate(SQLiteDatabase db) {db.execSQL("create table Message(mid integer primary key autoincrement, content varchar(500),operation varchar(20),day varchar(20),time varchar(20))");}// onup方法只会在数据库版本号发生改变的时候调用@Overridepublic void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {}}//创建一个dao方法对数据库进行操作public class MessageDao {private Context context;private MessageDBsqlHelper messageDBsqlHelper;//在其他的Activity中new一个MessageDao对象,用这个对象来调用操作数据库的方法public MessageDao(Context context) {super();this.context = context;messageDBsqlHelper = new MessageDBsqlHelper(context, null, null, 1);}/** * 添加一条新数据到数据库 * */public void addMessage(String content, String operation, String day,String time) {SQLiteDatabase db = messageDBsqlHelper.getReadableDatabase();if (db.isOpen()) {ContentValues values = new ContentValues();values.put("content", "\t\t" + content);values.put("operation", operation);values.put("day", day);values.put("time", time);db.insert("Message", null, values);db.close();}}/** * 输入日期数据查询当天所有的数据 * */public ArrayList<Message> findByDay(String day) {ArrayList<Message> msgs = new ArrayList<Message>();Message msg;SQLiteDatabase db = messageDBsqlHelper.getReadableDatabase();if (db.isOpen()) {Cursor cursor = db.rawQuery("slect * from message where day=?",new String[] { day });while (cursor.moveToNext()) {msg = new Message();// 返回对应的键在游标中的位置,然后根据这个位置去取值int mid = cursor.getColumnIndex("mid");int content = cursor.getColumnIndex("content");int operation = cursor.getColumnIndex("operation");int day1 = cursor.getColumnIndex("day");int time = cursor.getColumnIndex("time");msg.setMid(cursor.getInt(mid));msg.setContent(cursor.getString(content));msg.setOperation(cursor.getString(operation));msg.setDay(cursor.getString(day1));msg.setTime(cursor.getString(time));msgs.add(msg);}db.close();}return msgs;}/** * 本方法返回所有的数据 * */public ArrayList<Message> findByAll() {ArrayList<Message> msgs = new ArrayList<Message>();Message msg;SQLiteDatabase db = messageDBsqlHelper.getReadableDatabase();if (db.isOpen()) {// 倒序查询Cursor cursor = db.rawQuery("select * from message order by mid desc", null);while (cursor.moveToNext()) {msg = new Message();// 返回对应的键在游标中的位置,然后根据这个位置去取值int mid = cursor.getColumnIndex("mid");int content = cursor.getColumnIndex("content");int operation = cursor.getColumnIndex("operation");int day1 = cursor.getColumnIndex("day");int time = cursor.getColumnIndex("time");msg.setMid(cursor.getInt(mid));msg.setContent(cursor.getString(content));msg.setOperation(cursor.getString(operation));msg.setDay(cursor.getString(day1));msg.setTime(cursor.getString(time));msgs.add(msg);}db.close();}return msgs;}/** * 修改当前的一条数据,未上传服务器,只是修改了本地sqlite文件 * */public boolean UpDateMessage(String operation, int mid) {SQLiteDatabase db = messageDBsqlHelper.getReadableDatabase();Boolean flag = false;// 今天的日期String today = DateUtil.getDateWithYear(System.currentTimeMillis());// 现在的时间String Now = DateUtil.getDateForNow();if (db.isOpen()) {ContentValues values = new ContentValues();values.put("operation", operation);values.put("day", today);values.put("time", Now);values.put("mid", mid);int rowCount = db.update("message", values, "mid=?",new String[] { mid + "" });if (rowCount >= 1) {flag = true;}db.close();}return flag;}/** * 删除一条数据数据 * */public boolean deleteMessage(int mid) {SQLiteDatabase db = messageDBsqlHelper.getReadableDatabase();Boolean flag = false;if (db.isOpen()) {int i = db.delete("message", "mid=?", new String[] { mid + "" });if (i > 0) {flag = true;}db.close();}return flag;}/** * 清空表数据 * */public void deleteAll() {SQLiteDatabase db = messageDBsqlHelper.getReadableDatabase();if (db.isOpen()) {db.execSQL("delete from message");// 表自动增长列归零---然而这句话并没有什么卵用,,,自增长列叫mid,执行完这句他还是没归零,归零的不是它!!!db.execSQL("DELETE FROM sqlite_sequence WHERE name = 'message'");db.close();}}}

0 0