数据库的使用与创建

数据库的创建:
1。继承 SQLiteOpenHelper,创建数据库,在oncreate()中创建,执行sql语句,OnCreate()和onUpgrade()两个回调函数
2。创建dao 对象,
//创建一个DatabaseHelper对象
DatabaseHelper dbHelper = new DatabaseHelper(SQLiteActivity.this,”test_mars_db”);
//只有调用了DatabaseHelper对象的getReadableDatabase()方法,或者是getWritableDatabase()方法之后,才会创建,或打开一个数据库 。
3。创建DAO 的方法;l
插入数据L;
public void Insert(Friend person) {
ContentValues values = new ContentValues();
values.put(“userId”, person.getUserId());
values.put(“name”, person.getUserName());
values.put(“url”, person.getPortraitUri());
db.insert(MyHelper.TABIE_NAME, null, values);
}
查找数据:
/**
* 根据id查询用户对象
*/
public Friend queryByid(String id) {
Friend friend = null;
Cursor cursor = db.query(MyHelper.TABIE_NAME, null, “userId=?”, new String[]{id}, null, null, null);
if (cursor != null && cursor.moveToNext()) {
friend = new Friend(); friend.setUserId(cursor.getString(cursor.getColumnIndex(“userId”)));
friend.setUserName(cursor.getString(cursor.getColumnIndex(“name”)));
friend.setPortraitUri(cursor.getString(cursor.getColumnIndex(“url”)));
}
cursor.close();
return friend;
}

查找所有的数据;
public List loadAll() {
ArrayList persons = null;
Cursor cursor = db.query(MyHelper.TABIE_NAME, null, null, null, null, null, null);
if (cursor != null) {
persons=new ArrayList();
while(cursor.moveToNext()){
Friend friend=new Friend();
friend.setUserId(cursor.getString(cursor.getColumnIndex(“userId”)));
friend.setUserName(cursor.getString(cursor.getColumnIndex(“name”)));
friend.setPortraitUri(cursor.getString(cursor.getColumnIndex(“url”)));
persons.add(friend);
}
}
cursor.close();
return persons;
}
关闭数据库
public void close() {
if (db != null) db.close();
}
3。数据库的调用
DatabaseUtil dao = new DatabaseUtil(getActivity());
Friend friend = dao.queryByid(store_service);
if (friend == null) {
friend = new Friend(store_service, chat_name, chat_image);
dao.Insert(friend);
SysoUtils.syso(“数据插入”+store_service+chat_name+chat_image);
}
SysoUtils.syso(“———-friend”);
dao.close();

注意细节:1。cursor的使用:在你理解和使用 Android Cursor 的时候你必须先知道关于 Cursor 的几件事情:

Cursor 是每行的集合。
使用 moveToFirst() 定位第一行。
你必须知道每一列的名称。
你必须知道每一列的数据类型。
Cursor 是一个随机的数据源。
所有的数据都是通过下标取得。
访问 Cursor 的下标获得其中的数据
int nameColumnIndex = cur.getColumnIndex(People.NAME);
String name = cur.getString(nameColumnIndex);
循环访问cursor
while 循环
while (cur.moveToNext())
{
// 光标移动成功
// 把数据取出
}
for()循环
for (cur.moveToFirst(); ! cur.isAfterLast();cur.moveToNext())
{
int nameColumn = cur.getColumnIndex(People.NAME);
int phoneColumn = cur.getColumnIndex(People.NUMBER);
String name = cur.getString(nameColumn);
String phoneNumber = cur.getString(phoneColumn);
}
2.sqlite 数据库的使用
SQLite采用的是动态数据类型,会根据存入值自动判断。SQLite具有以下五种数据类型:
1.NULL:空值。
  2.INTEGER:带符号的整型,具体取决有存入数字的范围大小。
  3.REAL:浮点数字,存储为8-byte IEEE浮点数。
  4.TEXT:字符串文本。
  5.BLOB:二进制对象。
创建表:
“CREATE TABLE Mytable(_id INTEGER PRIMARY KEY AUTOINCREMENT, title TEXT,value REAL);”
添加数据:
ContentValues cv = new ContentValues();//实例化一个ContentValues用来装载待插入的数据
cv.put(“username”,”Jack Johnson”);//添加用户名
cv.put(“password”,”iLovePopMusic”); //添加密码
db.insert(“user”,null,cv);//执行插入操作
2.使用execSQL方式来实现
String sql = “insert into user(username,password) values (‘Jack Johnson’,’iLovePopMuisc’);//插入操作的SQL语句
db.execSQL(sql);//执行SQL语句
数据的删除“
1。String whereClause = “username=?”;//删除的条件
String[] whereArgs = {“Jack Johnson”};//删除的条件参数
db.delete(“user”,whereClause,whereArgs);//执行删除
2。String sql = “delete from user where username=’Jack Johnson’”;//删除操作的SQL语句
db.execSQL(sql);//执行删除操作
数据的修改
1、ContentValues cv = new ContentValues();//实例化ContentValues cv.put(“password”,”iHatePopMusic”);//添加要更改的字段及内容
String whereClause = “username=?”;//修改条件
String[] whereArgs = {“Jack Johnson”};//修改条件的参数
db.update(“user”,cv,whereClause,whereArgs);//执行修改
2。String sql = “update [user] set password = ‘iHatePopMusic’ where username=’Jack Johnson’”;//修改的SQL语句
db.execSQL(sql);//执行修改
数据的查询;
public Cursor query(String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy, String limit)

Cursor c = db.query(“user”,null,null,null,null,null,null);//查询并获得游标
if(c.moveToFirst()){//判断游标是否为空
for(int i=0;i

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值