码迷,mamicode.com
首页 > 移动开发 > 详细

数据库连接android

时间:2016-06-04 09:15:07      阅读:270      评论:0      收藏:0      [点我收藏+]

标签:

activity

技术分享
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.lenovo.myapplication.SQLActivity"
    android:orientation="vertical">
    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:onClick="bt_1"
        android:text="初始化数据库"/>
    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:onClick="bt_2"
        android:text="升级数据库"/>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <EditText
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:id="@+id/et_id"
            android:hint="id"/>
        <EditText
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:id="@+id/et_name"
            android:hint="名称"/>
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <EditText
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:id="@+id/et_sex"
            android:hint="性别"/>
        <EditText
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:id="@+id/et_age"
            android:hint="年龄"/>
    </LinearLayout>
    <Button
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:onClick="bt_3"
    android:text="新增数据"/>
    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:onClick="bt_4"
        android:text="查询数据"/>

</LinearLayout>
View Code

 

 

java

技术分享
package com.example.lenovo.myapplication;

import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;

public class SQLActivity extends AppCompatActivity {

    EditText et_id,et_name,et_sex,et_age;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_sql);
        et_id=(EditText)findViewById(R.id.et_id);
        et_name=(EditText)findViewById(R.id.et_name);
        et_sex=(EditText)findViewById(R.id.et_sex);
        et_age=(EditText)findViewById(R.id.et_age);
    }

    //初始化数据库
    public void bt_1(View v)
    {
        //使用工具类得到数据库连接对象
        MyDBHelper myDBHelper=new MyDBHelper("test.db",1);
        //得到连接
        SQLiteDatabase sd= myDBHelper.getWritableDatabase();
        Toast.makeText(SQLActivity.this, "数据库连接成功", Toast.LENGTH_SHORT).show();
        //关闭连接
        sd.close();

    }
    //升级数据库
    public void bt_2(View v)
    {
        //使用工具类得到数据库连接对象
        MyDBHelper myDBHelper=new MyDBHelper("test.db",2);
        //得到连接
        SQLiteDatabase sd= myDBHelper.getWritableDatabase();
        Toast.makeText(SQLActivity.this, "数据库连接成功", Toast.LENGTH_SHORT).show();
        //关闭连接
        sd.close();

    }

    //插入新数据
    public void bt_3(View v)
    {
        //1-连接数据库,得到数据库连接对象
              //得到连接
        SQLiteDatabase sd= new MyDBHelper("test.db",2).getWritableDatabase();
        //2-准备数据
        ContentValues cv=new ContentValues();
        cv.put("name",et_name.getText().toString());
        cv.put("sex",et_sex.getText().toString());
        cv.put("age", et_age.getText().toString());
        //3-调用insret();插入数据
        long l=sd.insert("t_user", null, cv);
        Toast.makeText(SQLActivity.this, "插入数据的主键="+l, Toast.LENGTH_SHORT).show();
        //4-关闭连接。
        sd.close();

    }
    //数据查询
    public void bt_4(View v)
    {
        //1-连接数据库,得到数据库连接对象
        //得到连接
        SQLiteDatabase sd= new MyDBHelper("test.db",2).getWritableDatabase();
        //2-全表全字段查询
        Cursor c= sd.query("t_user", null, null, null, null, null, null);
        //3-遍历结果集.游标.
        while (c.moveToNext())
        {
            //如果移动成功,读取数据
            String str="id="+c.getLong(c.getColumnIndex("_id"))+"姓名="+c.getString(1)+"性别="+c.getString(2)+"年龄="+c.getString(3);
            Log.e("TAG",str);
        }
        c.close();
        //4-关闭连接。
        sd.close();
    }




    //实现SQLiteOpenHelper内部类
    class MyDBHelper extends SQLiteOpenHelper
    {
        public MyDBHelper(String dbname,int ver)
        {
            //显示调用父类的构造方法
            //必须在第一行
            super(SQLActivity.this,dbname,null,ver);
        }
        //创建初始化数据库
        @Override
        public void onCreate(SQLiteDatabase db) {
            //1-执行创建数据库的语句
            String sql="CREATE TABLE t_user ( " +
                    "_id  INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL," +
                    "name  VARCHAR(20) NOT NULL," +
                    "sex  CHAR9(1),age  INTEGER)";
            db.execSQL(sql);//建表
            Log.e("TAG","表创建成功");
            //2-执行初始化数据的语句,增加语句insert
            ContentValues contentValues=new ContentValues();
            contentValues.put("name","张三");
            contentValues.put("sex","男");
            contentValues.put("age","20");
            //3-执行插入,返回一个主键
            long l=db.insert("t_user",null,contentValues);
            Log.e("TAG","初始化数据="+l);

        }

        //升级数据库
        //触发条件:当版本号增大
        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

            //修改数据
            if (newVersion==2)
            {
                ContentValues contentValues = new ContentValues();
                contentValues.put("name","李四");
                String sql=" update t_user set name = ‘李四‘ where _id =1";
                String [] strings ={"1","18"}; //与?一一对应,用数组传进去
                //调用db的更新方法
                int i =db.update("t_user", contentValues, "_id=? and age>?", strings);
                Log.e("TAG","升级数据 数据条数="+i);
            }
        }
    }
}
View Code

 

数据库连接android

标签:

原文地址:http://www.cnblogs.com/1ming/p/5558081.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!