用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - android代码库

Sqlite

2015-08-01 作者: 锋客举报

[android]代码库

package com.example.sqliteopenhelper;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

/**
 * @author 锋客
 * 安卓数据库构建
 * 
 */

public class SQLiteOpenHelperDemo extends SQLiteOpenHelper {
	
	private static final String DATABASESNAME="test.db";
	private static final String TABLENAME="test";
	private static final int VERSION=1;
	

	public SQLiteOpenHelperDemo(Context context) {
		super(context, DATABASESNAME, null, VERSION);
		// TODO Auto-generated constructor stub
	}

	@Override
	public void onCreate(SQLiteDatabase db) {
		String sql="create table "+TABLENAME+"(id integer primary key,name char(12),sex char(2))";
		db.execSQL(sql);
		// TODO Auto-generated method stub

	}

	@Override
	public void onUpgrade(SQLiteDatabase db, int arg1, int arg2) {
		String sql="drop table exists "+TABLENAME;
		db.execSQL(sql);
		this.onCreate(db);
		// TODO Auto-generated method stub

	}

	
}
==============================================================================
package com.example.dao;

/**
 * @author 锋客
 * 操作数据库的方法:增删改查
 * 形式:sql语句   SQLiteDatabases提供的方法
 * 查询:SimpleAdapter《——————————》List<Map<String, Object>>;
 *     Adapter《————————————》List<String>;
 */

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;

public class SqliteDao {

	private static final String TABLENAME = "test";
	private static SQLiteDatabase db;

	public SqliteDao(SQLiteDatabase db) {
		this.db = db;
		// TODO Auto-generated constructor stub
	}

	/**
	 * 添加
	 * 
	 * @param name
	 * @param sex
	 *            将值传入到方法中,使用ContentValues 存放数据 ContentValues类似于map
	 */
	public void add(String name, String sex) {
		
//		 sql
		 String sql="insert into "+TABLENAME+"(name,sex) values(?,?)";
		 System.out.println("已调用sql");
		 Object args[]=new Object[]{name,sex};
		 db.execSQL(sql,args);
		 db.close();
		 System.out.println("已添加");

//		ContentValues cvs = new ContentValues();
//		cvs.put("name", name);
//		cvs.put("sex", sex);
//		db.insert(TABLENAME, null, cvs);
//		db.close();

	}

	/**
	 * 修改
	 * 
	 * @param id
	 * @param name
	 * @param sex
	 *            将值传入到方法中,使用Sting【】 a【】={},存放更新条件; contentvalues存放跟新内容;
	 *            update(表名,更新内容,条件,条件的值)
	 */
	public void update(int id, String name, String sex) {
		
		// sql
		// String sql="update "+TABLENAME+" set name=?,sex=? where id=?";
		// Object args[]=new Object[]{name,sex,id};
		// db.execSQL(sql,args);
		// db.close();
		
		ContentValues cvs = new ContentValues();
		cvs.put("name", name);
		cvs.put("sex", sex);
		String a[] = { String.valueOf(id) };
		db.update(TABLENAME, cvs, "id=?", a);
		db.close();

	}

	/**
	 * 删除
	 * 
	 * @param id
	 *            传入删除的id值,使用String【】 a【】={};存放删除的条件值; delete(表名,条件,条件值)
	 * 
	 */

	public void delete(int id) {
		
		// sql
		// String sql="delete from test where id="+id+"";
		// db.execSQL(sql);
		// db.close();
		
		String a[] = { String.valueOf(id) };
		db.delete(TABLENAME, "id=?", a);
		db.close();

	}

	/**
	 * adapter查询
	 * 
	 * @return 游标,默认在最后的值 使用query方法进行查询 使用List<String> 储存结果
	 */
	public List<String> select() {
		
		// sql
		// String sql="select*from "+TABLENAME;
		// Cursor cursor=db.rawQuery(sql, null);

		List<String> list = new ArrayList<String>();
		String columns[] = new String[] { "id", "name", "sex" };
		Cursor cursor = db.query(TABLENAME, columns, null, null, null, null,
				null, null);
		for (cursor.moveToFirst(); !cursor.isAfterLast(); cursor.moveToNext()) {
			list.add("[" + cursor.getInt(0) + "]" + "" + cursor.getString(1)
					+ "" + cursor.getString(2));
			System.out.println("list已成功加入信息 " + "{" + cursor.getInt(0) + "}");
		}
		return list;
	}

	/**
	 * SimpleAdapter
	 * 
	 * @return 游标,默认在最后的值 使用query方法进行查询 使用List<Map<String, Object>> 储存结果;
	 *         注意类型的对应;
	 */

	public List<Map<String, Object>> selectSimpleAdapter() {
		
		// sql
		// String sql="select*from "+TABLENAME;
		// Cursor cursor=db.rawQuery(sql, null);
		
		List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
		String columns[] = new String[] { "id", "name", "sex" };
		Cursor cursor = db.query(TABLENAME, columns, null, null, null, null,
				null);
		//共有部分
		for (cursor.moveToFirst(); !cursor.isAfterLast(); cursor.moveToNext()) {
			Map<String, Object> map = new HashMap<String, Object>();
			map.put("id", String.valueOf(cursor.getInt(0)));
			map.put("name", String.valueOf(cursor.getString(1)));
			map.put("birthday", String.valueOf(cursor.getString(2)));
			list.add(map);
			System.out.println("list已成功加入信息 " + "{" + cursor.getInt(0) + "}");
		}
		return list;
	}

}
=====================================================================================
package com.example.sqlitetest;

/**
 * @author 锋客
 * 
 * 主控制class
 */

import com.example.dao.SqliteDao;
import com.example.sqliteopenhelper.SQLiteOpenHelperDemo;
import android.support.v7.app.ActionBarActivity;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Adapter;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.SimpleAdapter;

public class MainActivity extends ActionBarActivity {
	private SQLiteOpenHelper demo;
	private Button zengjia,shanchu,xiugai,chaxun1,chaxun2;
	private LinearLayout linearLayout;
	private ListView listView;
	

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
        listView=(ListView) findViewById(R.id.main_listview);
        linearLayout=(LinearLayout)findViewById(R.id.linearlayout_listview);
		demo = new SQLiteOpenHelperDemo(this);
		System.out.println(demo.hashCode());
		System.out.println("已创建");
		
		
	}

	public void addTest(View v) {
		System.out.println("已调用");
		SqliteDao dao = new SqliteDao(demo.getWritableDatabase());
		System.out.println("已调用11");
		dao.add("fengke", "男");

	}
	
	public void delete(View v){
		SqliteDao dao = new SqliteDao(demo.getWritableDatabase());
		dao.delete(6);
	}
	
	public void update(View v){
		SqliteDao dao = new SqliteDao(demo.getWritableDatabase());
		dao.update(8, "laosong", "女");
	}

	/**
	 * {@link ArrayAdapter}
	 *  查询的结果为List<String> 创建类的方法:上下文,风格,数据(查询结果)
	 */
	public void selectAll(View v) {
		SqliteDao dao = new SqliteDao(demo.getWritableDatabase());
		dao.select();
		ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
				android.R.layout.simple_list_item_activated_1, dao.select());
		 ListView listview =new  ListView(this);
    	 listview.setAdapter(adapter);
    	 linearLayout.addView(listview);

	}

	/**
	 * {@link SimpleAdapter}
	 * 
	 *  创建类的方法:上下文,数据,自定义布局,new String【】{字段名},new
	 * int【】{自定义布局的id}
	 */
	public void selectAllSimple(View v) {
		SqliteDao dao = new SqliteDao(demo.getWritableDatabase());
		dao.selectSimpleAdapter();
		SimpleAdapter adapter = new SimpleAdapter(this,
				dao.selectSimpleAdapter(), R.layout.user, new String[] { "id",
						"name", "sex" }, new int[] { R.id.id_1, R.id.id_2,
						R.id.id_3 });
		listView.setAdapter(adapter);

	}

}


网友评论    (发表评论)

共2 条评论 1/1页

发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...