您的位置:首页 > 数据库

Android 数据库编程——传统方法

2015-07-30 17:24 337 查看
本文主要是介绍Android传统数据库编程——SQLite,包括注释部分的增删改查。方便今后查看,做下笔记。

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;
	}
	
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: