Anroid——第三方数据库SQLite——SQLiteOpenHelper+SQLiteDatabase

Anroid——第三方数据库SQLite——SQLiteOpenHelper+SQLiteDatabase

<span style="font-size:18px;">package com.example.jreduch08.DataBaseHelpp;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;

import com.j256.ormlite.android.apptools.OrmLiteSqliteOpenHelper;
import com.j256.ormlite.dao.Dao;
import com.j256.ormlite.support.ConnectionSource;
import com.j256.ormlite.table.TableUtils;

import java.sql.SQLException;
import java.util.HashMap;
import java.util.Map;

public  class DatabaseHelper extends OrmLiteSqliteOpenHelper {
    private static final String TABLE_NAME = "ormtest.db";
    private Map<String, Dao> daos = new HashMap<String, Dao>();
    private static DatabaseHelper instance;
    private DatabaseHelper(Context context) {
        super(context, TABLE_NAME, null, 1);
    }
    @Override
    public void onCreate(SQLiteDatabase database,
            ConnectionSource connectionSource) {
        try {
            TableUtils.createTable(connectionSource, User.class);
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
    @Override
    public void onUpgrade(SQLiteDatabase database,
            ConnectionSource connectionSource, int oldVersion, int newVersion) {
        try {
            TableUtils.dropTable(connectionSource, User.class, true);
            onCreate(database, connectionSource);
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
    /**
     * 单例获取该Helper
     *
     * @param context
     * @return
     */
    public static synchronized DatabaseHelper getHelper(Context context) {
        context = context.getApplicationContext();
        if (instance == null) {
            synchronized (DatabaseHelper.class) {
                if (instance == null)  {
                    instance = new DatabaseHelper(context);
                }
            }
        }
        return instance;
    }
    public synchronized Dao getDao(Class clazz) throws SQLException {
        Dao dao = null;
        String className = clazz.getSimpleName();
        if (daos.containsKey(className)) {
            dao = daos.get(className);
        }
        if (dao == null) {
            dao = super.getDao(clazz);
            daos.put(className, dao);
        }
        return dao;
    }
    /**
     * 释放资源
     */
    @Override
    public void close() {
        super.close();
        for (String key : daos.keySet()) {
            Dao dao = daos.get(key);
            dao = null;
        }
    }
}  </span>

<span style="font-size:18px;">package com.example.jreduch08.DataBaseHelpp;

import com.j256.ormlite.field.DatabaseField;
import com.j256.ormlite.table.DatabaseTable;

/**
 * Created by 冲天之峰 on 2016/8/23.
 */

@DatabaseTable (tableName = "user")//表名
public class User {
    @DatabaseField(id=true)  //主键
private String  userId;
    @DatabaseField            //(columnName = "userName")
    private String name;
    @DatabaseField
    private int age;

    public User(){}

    public User(String userId, String name, int age) {
        this.userId = userId;
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getUserId() {
        return userId;
    }

    public String setUserId(String userId) {
        this.userId = userId;
        return userId;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

}
</span>
<span style="font-size:18px;">package com.example.jreduch08.DataBaseHelpp;

import android.content.Context;

import com.j256.ormlite.dao.Dao;

import java.sql.SQLException;
import java.util.List;

/**
 * Created by 冲天之峰 on 2016/8/23.
 */
public class UserDaoOrm {

    private Context context;
    private Dao<User,Integer> userDao;
    private DatabaseHelper helper;

    public   UserDaoOrm(Context context){
        this.context=context;
        helper=DatabaseHelper.getHelper(context);
        try {
            userDao=helper.getDao(User.class);
        } catch (SQLException e) {
            e.printStackTrace();
        }

    }

    public  void  add(User user){

        try {
            userDao.createOrUpdate(user);
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

    //查询全部
    public List<User> select() {
        try {
            return  userDao.queryForAll();
        } catch (SQLException e) {
            e.printStackTrace();
        }
return null;

    }

    public  void delete(User user){

        try {
            userDao.delete(user);
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

    public User selectUser(String id){

        try {
           return   userDao.queryBuilder().where()
                   .eq("userId",id)
                   .queryForFirst();

        } catch (SQLException e) {
            e.printStackTrace();
        }
return null;
    }

}
</span>
<span style="font-size:18px;">package com.example.jreduch08.DataBaseHelpp;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;

import com.example.jreduch08.R;

import java.util.ArrayList;
import java.util.List;

public class UserDaoTestActivity extends AppCompatActivity {
    private EditText name,age,userId;
    private Button button1,button2,button4,button5,button6;
    private TextView tv;
    private Spinner sp;
    private UserDaoOrm userDaoOrm;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_user_dao_test);
        name= (EditText) findViewById(R.id.name);
        age= (EditText) findViewById(R.id.age);
       userId= (EditText) findViewById(R.id.userId);
        button1= (Button) findViewById(R.id.button1);
        button2= (Button) findViewById(R.id.button2);
        button6= (Button) findViewById(R.id.button6);
        button4= (Button) findViewById(R.id.button4);
        button5= (Button) findViewById(R.id.button5);
        sp= (Spinner) findViewById(R.id.sp);
        tv= (TextView) findViewById(R.id.tv);
        userDaoOrm=new UserDaoOrm(this);
        button1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                 User user=new User();
                user.setUserId(userId.getText().toString());
                user.setName(name.getText().toString());
                user.setAge(Integer.parseInt(age.getText().toString()));
                userDaoOrm.add(user);
                Toast.makeText(getBaseContext(),"新增成功",Toast.LENGTH_SHORT).show();

            }
        });
        button2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                List<User> list=userDaoOrm.select();
                String text="";
                List myData=new ArrayList();
                for (User u:list){
                    myData.add(u.getUserId()+":"+u.getName()+":"+u.getAge());
                    text=text+u.getUserId()+":"+u.getName()+":"+u.getAge()+"\n";
                }
                ArrayAdapter aa=new ArrayAdapter(getBaseContext(),android.R.layout
                        .simple_list_item_1,myData);
                sp.setAdapter(aa);
                tv.setText(text);
            }
        });
        button4.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                User user=new User();
                user.setUserId(userId.getText().toString());
                user.setName(name.getText().toString());
                user.setAge(Integer.parseInt(age.getText().toString()));
                userDaoOrm.delete(user);
                Toast.makeText(getBaseContext(),"删除成功",Toast.LENGTH_SHORT).show();

        }
        });
        button5.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                User user=new User();
                String  id="";
               id= userId.getText().toString();

               tv.setText(userDaoOrm.selectUser(id).getUserId()+":"+userDaoOrm.selectUser(id).getName()+
                       ":"+userDaoOrm.selectUser(id).getAge());
               user=userDaoOrm.selectUser(id);
               name.setText(user.getName().toString());
                age.setText(user.getAge()+"");
                Toast.makeText(getBaseContext(),"查询一个成功",Toast.LENGTH_SHORT).show();

            }
        });

        button6.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if(!userId.getText().toString().equals("")){
                    User u=new User();
                    u.setUserId(userId.getText().toString());
                    userDaoOrm.delete(u);
                    Toast.makeText(getBaseContext(), "删除一个成功", Toast.LENGTH_SHORT).show();
                }
            }
        });
    }
}
</span>

时间: 2024-11-06 02:25:30

Anroid——第三方数据库SQLite——SQLiteOpenHelper+SQLiteDatabase的相关文章

Anroid——数据库SQLite——SQLiteOpenHelper+SQLiteDatabase

1.SQLite  轻量级 .dp文件多用于手机里 轻量级的  嵌入式的 关系数据模型. SQLiteOpenHelper 负责创建打开更新关闭数据库 创建数据表 SQLiteDatabase 执行SQL语句 对数据表增.删.改.查. <span style="font-size:18px;">package com.example.jreduch08.sqlitedemo.entity; /** * Created by 冲天之峰 on 2016/8/22. */ pub

【Anroid进阶】SQLite数据库使用完全详解

在Android开发中,我们一般可以使用文件.sharedpreferences.以及数据库来保存我们程序运行中产生的数据,本篇主要讲解如何使用SQLite数据库,完成数据的增删改查的一般操作 SQLite介绍 SQLite 一个非常流行的嵌入式数据库,它支持 SQL 语言,并且只利用很少的内存就有很好的性能.此外它还是开源的,任何人都可以使用它. SQLite 和其他的主要 SQL 数据库没什么区别.它的优点就是高效,Android 运行时环境包含了完整的 SQLite. SQLite 和其他

android在sqlite数据库的SQLiteOpenHelper中的onUpgrade里判断表是否存在

private boolean tabbleIsExist(String tableName, SQLiteDatabase db) { LogUtils.d("DatabaseHelper", "checking tabbleIsExist " + tableName); boolean result = false; if (tableName == null) { return false; } Cursor cursor = null; try { Stri

Android数据库SQLite表内设置外键

Android数据库SQLite表内设置外键 介绍 Android默认的数据是SQLite,但SQLite3.6.19之前(在2.2版本中使用的是3.6.22,因此如果你的应用只兼容到2.2版本就可以放心使用外键功能)是不支持外键的,如果有两张表需要关联,用外键是最省事的,但不支持的话怎么办呢?这里就有一个解决办法,就是用事务将两张表关联起来,并且最后生成一张视图. 现有两张表 Employees Dept 视图 ViewEmps:显示雇员信息和他所在的部门 创建数据库 自定义一个辅助类继承SQ

王立平--SQLite,SQLiteOpenHelper的简单应用

Android平台提供给我们一个数据库辅助类来创建或打开数据库,这个辅助类继承自SQLiteOpenHelper类.在该类的构造器中,调用Context中的方法创建并打开一个指定名称的数据库对象.继承和扩展SQLiteOpenHelper类主要做的工作就是重写下面两个 方法. public class MySQLiteHelper extends SQLiteOpenHelper { public MySQLiteHelper(Context context, String name, Curs

Android开发之数据库Sqlite

在Android中使用的数据库是开源数据库Sqlite数据库,下面主要详细的介绍Sqlite的使用: 一 SQLite简介 我们在编写数据库应用软件时,需要考虑这样的问题:因为我们开发的软件可能会安装在很多用户的手机上,如果应用使用到了SQLite数据库,我们必须在用户初次使用软件时创建出应用使用到的数据库表结构及添加一些初始化记录,另外在软件升级的时候,也需要对数据表结构进行更新.那么,我们如何才能实现在用户初次使用或升级软件时自动在用户的手机上创建出应用需要的数据库表呢?总不能让我们在每个需

android数据库 Android自带数据库SQLite 操作 一步一步 图示教程

开发过程中使用Android自带的数据库,不仅安全性较好,而且数据存取的效果也较好. 附源代码 http://download.csdn.net/detail/wyx100/8670843 开发规划 主界面 完成数据的输入,触发保存 启动后界面 输入数据 数据显示界面 数据库读取数据后显示 删除记录 开发顺序 主界面 类代码 package com.example.sqlitetest; import android.os.Bundle; import android.app.Activity;

轻量级数据库sqlite的使用

本文不涉及一些概念性的东西,请大家多多原谅 这个就是Android sqlite的简单框架. 使用sqlite 大概分为3步 第一步:创建自己的sqliteopenhelper类 第二步:创建数据库中的dao层 ,其中分装了对数据库的操作 第三步:在activity 中使用dao层的操作了(多线程的形式,防止卡界面) 第一步:创建 sqliteopenhelper /** * @author skyfin *@time 2015/6/4 */ public class MyDatabase ex

Android 学习心得(2)——Android内置数据库SQLite

一.简介: Android有一个内置数据库SQLite,它是一种轻型数据库,它有五种数据类型:NULL(空型).BLOB(二进制).INTEGER(整型).REAL(浮点型).TEXT(字符串文本),虽然有着五种数据之分,但是在内部SQLite存储数据是无类型的,也就是说你可以在integer中存入char数据之类的.  二.要点: INTEGER PRIMARY KEY中只能存放64位整数 在编写CREATE TABLE时候可以省略字段后面的数据类型 SQLite中可以解析大部分标准SQL语句