android与数据库
来源:互联网 发布:南京诺博源软件科技 编辑:程序博客网 时间:2024/04/29 05:39
public class SqliteHelper extends SQLiteOpenHelper {//String name 这个参数是表示数据库的名字public SqliteHelper(Context context, String name) {super(context, name,null, 1);}@Overridepublic void onCreate(SQLiteDatabase arg0) {/*当数据库创建时,onCreate方法只会被调用一次。当我们重新安装这个程序时,不卸载数据,同样只会创建一次。,在这里面我们一般新建一个表*/ System.out.println("create a database");arg0.execSQL("create table user(id int,name varchar(20))");}@Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {/* * 这个函数用来更新数据库的版本,其实用到得比较少。 */}}public class MainActivity extends Activity {private Button createBtn,insertBtn,updateBtn,queryBtn;private String table="user";private String whereClause="id=?";private String[] whereArgs=new String[]{"1"}; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); createBtn=(Button)findViewById(R.id.createbtn); insertBtn=(Button)findViewById(R.id.insertbtn); updateBtn=(Button)findViewById(R.id.updatebtn); queryBtn=(Button)findViewById(R.id.querybtn); createBtn.setOnClickListener(new OnClickListener() {public void onClick(View v) {SqliteHelper sqliteHelper=new SqliteHelper(MainActivity.this, "test_db");SQLiteDatabase db=sqliteHelper.getWritableDatabase();}});上述是创建一个数据库,可以看出,使用助手类的作用是比较方便的返回数据库的实例。 insertBtn.setOnClickListener(new OnClickListener() {public void onClick(View v) {SqliteHelper sqliteHelper=new SqliteHelper(MainActivity.this, "test_db");SQLiteDatabase db=sqliteHelper.getWritableDatabase();ContentValues values=new ContentValues();values.put("id", 1);values.put("name","xujian");db.insert("user", null, values);System.out.println("insert a data is sucess!");}}); 注意看test_db,助手类正是通过这种不同数据库的名字来区分的。 updateBtn.setOnClickListener(new OnClickListener() {public void onClick(View v) {SqliteHelper sqliteHelper=new SqliteHelper(MainActivity.this, "test_db");SQLiteDatabase db=sqliteHelper.getWritableDatabase();ContentValues values=new ContentValues();values.put("name","xujianxing");//最后面的两个参数构成了一个完整的where字句。//但是,我们们需要注意这样一个问题:可以直接whereClause变成”id=1”.后面那个参数传成空。// whereClause="id=?"与 String[] whereArgs=new String[]{"1"},但有时候我们可能需要的条件不止一个,这个时候需要and来连接:”id=?and name=?”.db.update(table, values, whereClause, whereArgs);System.out.println("update a data is sucess!");}}); queryBtn.setOnClickListener(new OnClickListener() {public void onClick(View v) {SqliteHelper sqliteHelper=new SqliteHelper(MainActivity.this, "test_db");SQLiteDatabase db=sqliteHelper.getWritableDatabase();////第二个参数是要查询的列名//第三四个参数加起来相当于一个where字句。具体的就是与id=?new String[]{"1"}相当于where id=1,如果为空的话,就表示全查了。注意仍然需要占位符。关于这些参数,看文档还是比较好理解的。Cursor cursor=db.query(table, new String[]{"id","name"}, null, null, null, null, null);while(cursor.moveToNext()){String name=cursor.getString(cursor.getColumnIndex("id"));System.out.println(name);}System.out.println("query a data is sucess!");}}); }}
1.在sqlite中,如果不声明主键的话,可以存在两条或者多条一模一样的元组。
2.我们为每一次操作都声明了一个助手类,也可以只声明一个助手类。
3. 事实上,sql语句是可以直接执行的,使用db.execSQL(String sql)方法,但不能执行查询语句。
4每一次操作应是一个单独的Contenvalues对象。
5合理的使用getWritableDatabase()和getReadableDatabase()方法。节约开销。
6其实版本号根本不会有影响,比如版本号变成了2,在查询中版本号唯一是不会有影响的。
7在sqlite中,行是完全可以重复的,比如不断点击insert键,插入的行是完全相同的,但我们在查询时,
并不影响,他会把所有的行全部显示出来。数据库不允许重复:多次按下create键不会起任何作用。
8.程序退出后数据照样在那里!除非你选择清除数据。
- android与数据库
- android 与sqlite数据库
- Android (SQLite 数据库与ContentProvider)
- Android 数据库备份与还原
- Android数据库存储与访问
- 轻型数据库SQLite与Android实例
- android 做登陆与mysql数据库交互
- android与数据库交互,传递实体类
- android 多线程数据库读写分析与优化
- android 多线程数据库读写分析与优化
- android 多线程数据库读写分析与优化
- android 多线程数据库读写分析与优化
- android:SQLiteOpenHelper 与 greenDao 数据库操作
- 【android】SQLite数据库之SQLiteOpenHelper与SQLiteDatabase
- android 多线程数据库读写分析与优化
- Android客户端与服务器端数据库同步
- Android数据库与数据表的关系
- Android OrmLite与SQLite数据库操作
- [Arduino教程3] Digital Read Serial-从串口读取数字信号
- python中read() readline()以及readlines()区别
- python基于http协议编程:httplib,urllib和urllib2
- 启动单一主线程(利用文件锁方式启动单一主线程)
- 精通initramfs构建step by step
- android与数据库
- 魔兽e
- Java 处理Map<K,V>的方法
- Linux内核中ioremap映射的透彻理解 .
- .net中静态与非静态的区别
- 类似于flash的菜单
- 游戏中的一些聊天框的:上、下方向键的回溯记录方法
- android学习笔记之ContentProvider
- KVO/KVC 实现机理分析