Android (sept)

Une base de données sqlite
  1. Avantages: ressources moins occupées, efficacité opérationnelle élevée, sécurité et fiabilité, et portabilité élevée

  2. Utilisez sqlite3

    2.1 Allumez le simulateur de dieu nocturne et connectez-vous (une connexion infructueuse signalera une erreur)

    2.2 Trouver le répertoire racine du simulateur

    2.3 Ouvrir cmd dans la barre d'adresse bin du simulateur de dieu nocturne

    2.4 Écrivez la commande adb shell, elle en entrera une avec # et réussira

    2.5 Exécutez le fichier sur le périphérique virtuel, puis utilisez l'explorateur de fichiers pour trouver le nom du package

    2.6 Nous plaçons généralement les fichiers sqlite dans un dossier fixe, nous devons donc créer un répertoire mkdir /data/data/com.example.save_sqlite/database (mkdir est la commande pour créer un dossier, base de données est le nom du dossier créé )

    2.7 adb shell

    2.8 Basculez vers le répertoire correspondant cd /data/data/com.example.save_sqlite/database (si vous faites une erreur, vous pouvez utiliser .exit pour annuler la commande précédente)

    2.9 Utilisez sqlite3 pour créer ou ouvrir la base de données: nom de la base de données sqlite3 (ouvrir si la base de données existe, créer et ouvrir si elle n'existe pas)
    Tels que: sqlite3 mysqlite sqlite> apparaît avec succès

    2.10 Créer une table (écrire une commande ici, il est recommandé d'écrire et de copier dans le Bloc-notes ou Word)
    comme:
    créer la table tb_user (
    auto-incrémentation de la clé primaire de l'entier id,
    nom varchar (50) non nul,
    mot de passe varchar (20) non nul
    );

    2.11 Affichez le tableau de données.

    2.12 Insérer (ajouter) une donnée
    dans les valeurs tb_user (null, "zhangsan", "zhangsan123");

    2.13 Requête de données
    select * from tb_user;

    2.14 .schema peut afficher le code lors de la création de la table

    	数据库具体语句的语法:
    		创建表:create table 表名(列名称1 类型1 约束1, 列名称2 类型2 约束2);
    		删除表:drop table 表名称;
    		更改表结构:
    		增加一个列:alter table 表名称 add column 字段名 数据类型 约束;(约束一般为 not null一类的)
    		插入数据:insert into 表名称 values(value1,value2,value3,value4);//此处value个数与列名称(表属性)个数一致
    		删除数据:delete from 表名称 where 条件;
    		更新数据:update 表名称 set 字段="要修改成什么的值" where 条件;
    		查询数据:
    		查询所有:select * from 表名称;
    		携带条件:select 字段1,字段n from 表名称 where 条件;
    	整体:
    		找到数据库文件并打开
    
Deuxièmement, utilisez sqlite3 dans Android
  1. Dans le dossier src, créez un nouveau fichier de classe, tel que: MyDBOpenHelper.java
    		public class MyDBOpenHelper extends SQLiteOpenHelper{
    			public MyDBOpenHelper(Context context, String name, CursorFactory factory,int version) {
    				super(context, "my.db", null, 1);//super(context, name, factory, version);分别为继承父类的:文本、数据库名字、模式、版本
    			}
    			public void onCreate(SQLiteDatabase db) {//数据库第一次被创建时调用
    				//在此处创建数据表,因为数据库对象db是可以直接执行sql语句的
    				db.execSQL("create table person(personid integer primary key autoincrement,name varchar(50))");
    			}
    			public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {//当数据库版本改变时执行S
    				//此处增加一个字段
    				db.execSQL("alter table person addcolumn phone varchar(15);");
    			}
    		}
    
  2. En Java principal
    		public class MainActivity extends Activity implements View.OnClickListener{
    			Button btn_insert;
    			Button btn_delete;
    			Button btn_update;
    			Button btn_query;
    			private SQLiteDatabase db;//数据库对象,可以执行sql语句,操作数据库
    			private MyDBOpenHelper myDBHelper;//创建数据库时定义的变量
    			private int i=1;//用在插入中
    			private StringBuilder sb;//用来构建查询中的最后的where条件
    			@Override
    			protected void onCreate(Bundle savedInstanceState) {
    				super.onCreate(savedInstanceState);
    				setContentView(R.layout.activity_main);
    				
    				myDBHelper=new MyDBOpenHelper(MainActivity.this, "my.db", null, 1); //在Activity创建时,实例化数据库对象
    				
    				btn_insert=(Button)findViewById(R.id.insert);
    				btn_delete=(Button)findViewById(R.id.delete);
    				btn_update=(Button)findViewById(R.id.update);
    				btn_query=(Button)findViewById(R.id.query);
    				
    				btn_insert.setOnClickListener(this);
    				btn_delete.setOnClickListener(this);
    				btn_update.setOnClickListener(this);
    				btn_query.setOnClickListener(this);
    			}
    			public void onClick(View v) {//v为每一个视图
    				db=myDBHelper.getWritableDatabase();
    				switch (v.getId()) {
    				case R.id.insert: 
    					ContentValues value1=new ContentValues();//ContentValues对象,时一种(key.value)的数据,相当于Python中的字典
    					value1.put("name", "君山"+i+"品");
    					i++;
    					db.insert("person", null, value1);
    					Toast.makeText(getApplicationContext(), "信息增加结束", 1).show();
    					break;
    				case R.id.delete: 
    					db.delete("person", "personid=2", null);
    					//db.delete("person", "personid=?", new String[]{"3"});//这里使用了占位符
    					break;
    				case R.id.update:
    					ContentValues value2=new ContentValues();
    					value2.put("name", "君山1000品");
    					db.update("person", value2, "personid=1", null);
    					break;
    				case R.id.query:
    					sb=new StringBuilder();//构建字符串用
    					Cursor cursor=db.query("person", null, null, null, null, null, null);//游标查询(借助游标移动查询)
    					if(cursor.moveToFirst()){
    						do{
    							int id=cursor.getInt(cursor.getColumnIndex("personid"));
    							String name=cursor.getString(cursor.getColumnIndex("name"));
    							sb.append("id:"+id+"\tname:"+name+"\n");//把id和name拼接起来放入sb
    						}while(cursor.moveToNext());
    					}
    					cursor.close();
    					TextView showTextView=(TextView)findViewById(R.id.showtext);
    					showTextView.setText(sb.toString());//把内容提取到文本框中去
    					break;
    				default: 
    					break;
    				}
    			}
    	}
    
Publié 72 articles originaux · loué 3 · visites 3544

Je suppose que tu aimes

Origine blog.csdn.net/id__39/article/details/105196447
conseillé
Classement