android的四大组件中就有Content Provider,对其他应用,提供自己的数据,所以,一般情况下,android应用不需要提供content provider。

  1.  简单的数据库表单字段声明:

   MySqlName.java

    

        public static final int VERSION = 1;

    public static final String DBNAME = "mydb";     

        /*
* 联系人详情数据库
*/
public class Contacts{
public static final String TableName="contacts"; public static final String Id="cId";//联系人的uri public static final String Number="number"; public static final String Name="name";
}

一般一张表,写一个内部类,内部类的变量是数据库中的列。这个文件写成这样子就可以了。

  2. 创建数据库

  MySql.java

  

public class Mysql extends SQLiteOpenHelper{

public Mysql(Context context) {
super(context,Mysqlname.DBNAME, null, Mysqlname.VERSION); } @Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
/*
* 创建人员表单
*/
db.execSQL("create table "+Mysqlname.Contacts.TableName+"(" + Mysqlname.Contacts.Id+" integer primary key autoincrement not null,"+ Mysqlname.Contacts.Number+" text ," + Mysqlname.Contacts.Name+" text );"
  
        );
}
}

这样,在这个数据库创建就完成了,但是除了创建工作,还需要对外提供一些方法;

  3.  操作

  • 查询 
SQLiteDatabase db = this.getWritableDatabase();
Cursor cr =db.query(Mysqlname.Contact.TableName, null, Mysqlname.Contact.Id+"=?", new String[]{id}, null, null, null);

如果需要使用这个cr的内的值,需要:

if(cr!=null&&cr.getCount()>0&&cr.moveToFirst()){
String name = cr.getString(cr.getColumnIndex(Mysqlname.Contact.Name));
}

这里必须要movetofirst,不然会报错。

  • 插入
db.insert(Mysqlname.Contact.TableName, Mysqlname..Contact.ID, values)
  • 删除
db.delete(Mysqlname.Contact.TableName, Mysqlname.Contact.Id+"=? and "+Mysqlname.Contact.NAME+"=?", new String[]{id,name});
  • 修改
db.update(Mysqlname.Contact.TableName, values, Mysqlname.Contact.Id+"=?", new String[]{id})

注意,以上的db ,Cursor,在使用完毕后,必须及时调用db.close(),cr.close();

使用事务进行批量操作:

db.beginTransaction();

String deleteContactSql = "DELETE from "+ Mysqlname.Contact.TableName+ " where "
+ Mysqlname.Contact.ContactId+ "='"+num+"';";
SQLiteStatement deleteContact = db.compileStatement(deleteContactSql);
deleteContact.executeUpdateDelete(); db.setTransactionSuccessful();
db.endTransaction();

最新文章

  1. php综合应用
  2. js中eval详解,用Js的eval解析JSON中的注意点
  3. Java知多少(111)数据库之修改记录
  4. request对象实现请求转发
  5. DTcms同一频道需要两种类型的列表模版思路
  6. CentOS系统、Jdk、Tomcat安装实战
  7. 为iPhone6 设计自适应布局(一)
  8. Asp.Net MVC学习总结(一)——Asp.Net MVC简单入门
  9. 201521123014 《Java程序设计》第10周学习总结
  10. iOS 信号量
  11. [LeetCode] 231 Power of Two && 326 Power of Three && 342 Power of Four
  12. 微信小程序初识
  13. c运行时函数参考学习地址
  14. JAVA四类八种基本数据类型
  15. C# 在Word中添加表格的方法
  16. deque源码4(deque元素操作:pop_back、pop_front、clear、erase、insert)
  17. February 12th, 2018 Week 7th Monday
  18. django之模型层(model)--建表、查询、删除基础
  19. python中的print()、str()和repr()的区别
  20. Docker小白从零入门到实战系列【二】

热门文章

  1. StringToInt
  2. mysql相关重要问题解决
  3. jquery动态添加/删除 tr/td
  4. bzoj2618[Cqoi2006]凸多边形 半平面交
  5. HttpClient4.3 使用经验(一) 简单使用
  6. IOS 学习笔记 2015-03-20 OC-数值类型
  7. 初学JqueryMobile(一)
  8. Html代码Font-Size中px与pt的区别
  9. qt 5 小练习 简易画板
  10. MySQL中的max_connections和max_user_connections 及 MySQL服务器最大连接数的合理设置