Android 数据库编程——传统方法
2015-07-30 17:24
337 查看
本文主要是介绍Android传统数据库编程——SQLite,包括注释部分的增删改查。方便今后查看,做下笔记。
1.MySQLActivity.java
2.MySQLiteHelper.java
3.News.java
1.MySQLActivity.java
public class MySQLActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); /* 创建表 SQLiteOpenHelper dbHelper = new MySQLiteHelper(this, "demo.db", null, 1); SQLiteDatabase db = dbHelper.getWritableDatabase(); */ /* 新增表 SQLiteOpenHelper dbHelper = new MySQLiteHelper(this, "demo.db", null, 2); SQLiteDatabase db = dbHelper.getWritableDatabase(); */ /* 新增列 SQLiteOpenHelper dbHelper = new MySQLiteHelper(this, "demo.db", null, 3); SQLiteDatabase db = dbHelper.getWritableDatabase(); */ /* // 往news表中插入一条新闻 SQLiteOpenHelper dbHelper = new MySQLiteHelper(this, "demo.db", null, 1); SQLiteDatabase db = dbHelper.getWritableDatabase(); ContentValues values = new ContentValues(); values.put("title", "这是一条新闻标题"); values.put("content", "这是一条新闻内容"); values.put("publishdate", System.currentTimeMillis()); long id = db.insert("news", null, values); */ /* List<News> newsList; for (News news : newsList) { news.save(); } */ /* // 把news表中id为2的记录的标题改成“今日iPhone6发布” SQLiteOpenHelper dbHelper = new MySQLiteHelper(this, "demo.db", null, 1); SQLiteDatabase db = dbHelper.getWritableDatabase(); ContentValues values = new ContentValues(); values.put("title", "今日iPhone6发布"); db.update("news", values, "id = ?", new String[] {"2"}); // update news set title='今日iPhone6发布' where id=2; */ /* //把news表中所有没有评论的新闻都删除掉 SQLiteOpenHelper dbHelper = new MySQLiteHelper(this, "demo.db", null, 1); SQLiteDatabase db = dbHelper.getWritableDatabase(); db.delete("news", "commentcount = ?", new String[] {"0"}); //delete from news where commentcount=0; */ /* //查询news表中的所有数据 SQLiteOpenHelper dbHelper = new MySQLiteHelper(this, "demo.db", null, 1); SQLiteDatabase db = dbHelper.getWritableDatabase(); Cursor cursor = db.query("news", null, null, null, null, null, null); */ /* //查询news表中所有评论数大于零的新闻 SQLiteOpenHelper dbHelper = new MySQLiteHelper(this, "demo.db", null, 1); SQLiteDatabase db = dbHelper.getWritableDatabase(); Cursor cursor = db.query("news", null, "commentcount>?", new String[]{"0"}, null, null, null); List<News> newsList = new ArrayList<News>(); if (cursor != null && cursor.moveToFirst()) { do { int id = cursor.getInt(cursor.getColumnIndex("id")); String title = cursor.getString(cursor.getColumnIndex("title")); String content = cursor.getString(cursor.getColumnIndex("content")); Date publishDate = new Date(cursor.getLong(cursor.getColumnIndex("publishdate"))); int commentCount = cursor.getInt(cursor.getColumnIndex("commentcount")); News news = new News(); news.setId(id); news.setTitle(title); news.setContent(content); news.setPublishDate(publishDate); news.setCommentCount(commentCount); newsList.add(news); } while (cursor.moveToNext()); } */ /* //统计news表中一共有多少行,count(1)就是用于去统计一共有多少行的 //并不一定要用count(1),使用count(*)或者count(主键)都可以 SQLiteOpenHelper dbHelper = new MySQLiteHelper(this, "demo.db", null, 1); SQLiteDatabase db = dbHelper.getWritableDatabase(); Cursor c = db.rawQuery("select count(1) from news", null); if (c != null && c.moveToFirst()) { int count = c.getInt(0); Log.d("TAG", "result is " + count); } c.close(); */ //统计出news表中评论的总数量 SQLiteOpenHelper dbHelper = new MySQLiteHelper(this, "demo.db", null, 1); SQLiteDatabase db = dbHelper.getWritableDatabase(); Cursor c = db.rawQuery("select sum(commentcount) from news", null); if (c != null && c.moveToFirst()) { int count = c.getInt(0); Log.d("TAG", "result is " + count); } c.close(); } }
2.MySQLiteHelper.java
public class MySQLiteHelper extends SQLiteOpenHelper { public static final String CREATE_NEWS = "create table news (" + "id integer primary key autoincrement, " + "title text, " + "content text, " + "publishdate integer," + "commentcount integer)"; /* public static final String CREATE_COMMENT = "create table comment (" + "id integer primary key autoincrement, " + "content text)"; */ public static final String CREATE_COMMENT = "create table comment (" + "id integer primary key autoincrement, " + "content text, " + "publishdate integer)"; public MySQLiteHelper(Context context, String name, CursorFactory factory, int version) { super(context, name, factory, version); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL(CREATE_NEWS); db.execSQL(CREATE_COMMENT); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { /* db.execSQL("drop table if exists news"); onCreate(db); */ switch (oldVersion) { case 1: db.execSQL(CREATE_COMMENT); break; case 2: db.execSQL("alter table comment add column publishdate integer"); break; default: } } }
3.News.java
public class News { private int id; private String title; private String content; private Date publishDate; private int commentCount; // 自动生成get、set方法 public int getId() { return id; } public void setId(int id) { this.id = id; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getContent() { return content; } public void setContent(String content) { this.content = content; } public Date getPublishDate() { return publishDate; } public void setPublishDate(Date publishDate) { this.publishDate = publishDate; } public int getCommentCount() { return commentCount; } public void setCommentCount(int commentCount) { this.commentCount = commentCount; } }
相关文章推荐
- MongoDB副本集安全验证
- mysql获取下一篇和上一篇文章的ID
- ORACLE 12c 设置完inmemory_size参数后,报ORA-04031错误
- mybatis1,mybaits连接数据库
- MySQL数据表的CRUD(増、删、改、查)操作
- Oracle带参数的视图
- [转]mysql 乱码问题解决终结
- mysql数据一致性和副本复制-part2
- MySQL无法存储Emoji表情问题
- Mysql第三方备份工具Xtrabackup使用说明
- Mysql第三方备份工具Xtrabackup使用说明
- mysql安装后设置root密码
- Mysql第三方备份工具Xtrabackup使用说明
- MySQL的内存表
- Oracle提交和回滚处理
- MySQL存储过程学习笔记
- Win7下 MySQL5.5.24 解压缩安装
- SQL Server里Grouping Sets的威力
- Linux服务器运行环境搭建(二)——Redis数据库安装
- Linux服务器运行环境搭建(二)——Redis数据库安装