一直不知道安卓创建数据库存储数据,以前遇到过,但是没有深入研究,今天仔细的看了一下,学习到了一点知识

直接看代码了

 public class DatabaseHelper extends OrmLiteSqliteOpenHelper{

     private static final String TABLE_NAME = "pspsp.db";
private static final int DB_VERSION = 3; private Map<String, Dao> daos = new HashMap<String, Dao>(); private DatabaseHelper(Context context)
{
super(context, TABLE_NAME, null, DB_VERSION);
}
@Override
public void onCreate(SQLiteDatabase database, ConnectionSource connectionSource) {
try
{
TableUtils.createTable(connectionSource, SearchHistroy.class); } catch (SQLException e)
{
e.printStackTrace();
}
} @Override
public void onUpgrade(SQLiteDatabase database, ConnectionSource connectionSource, int oldVersion, int newVersion) {
try
{
TableUtils.dropTable(connectionSource, SearchHistroy.class, true); } catch (SQLException e)
{
e.printStackTrace();
}
} private static DatabaseHelper instance; /**
* 单例获取该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;
}
} }
 @DatabaseTable(tableName = "search_history")
public class SearchHistroy { @DatabaseField(generatedId = true)
private int id; @DatabaseField
private String name; private boolean isDelete=false; public int getId() {
return id;
} public void setId(int id) {
this.id = id;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public boolean isDelete() {
return isDelete;
} public void setIsDelete(boolean isDelete) {
this.isDelete = isDelete;
} // @DatabaseField(canBeNull = true, foreign = true, columnName = "user_id")
// private User user;
}

然后在dao中运用

 public class SearchDao {

     private Context context;
private Dao<SearchHistroy, Integer> userDaoOpe;
private DatabaseHelper helper; public SearchDao(Context context) {
this.context = context;
try {
helper = DatabaseHelper.getHelper(context);
userDaoOpe = helper.getDao(SearchHistroy.class);
} catch (SQLException e) {
e.printStackTrace();
}
}
/**
* 增加一个用户
*
* @param model
*/
public void add(SearchHistroy model) {
try { SearchHistroy searchHistroy = userDaoOpe.queryBuilder().where().eq("name", model.getName()).queryForFirst();
if (searchHistroy == null || StringUtils.isEmpty(searchHistroy.getName()) && !StringUtils.isEmpty(model.getName())) {
userDaoOpe.create(model);
}
} catch (SQLException e) {
e.printStackTrace();
} } /**
* 清楚所有
*/
public void deteAll() {
try {
userDaoOpe.deleteBuilder().delete();
} catch (SQLException e) {
e.printStackTrace();
} } /**
* 获取所有查询记录
*
* @return
*/
public List<SearchHistroy> getAllList() {
try {
return userDaoOpe.queryForAll();
} catch (SQLException e) {
e.printStackTrace();
return new ArrayList<SearchHistroy>();
}
}
}

具体运用

 searchDao = new SearchDao(this);
list = new ArrayList<SearchHistroy>();
//获取数据
list = searchDao.getAllList(); //添加数据
SearchHistroy histroy = new SearchHistroy();
histroy.setName(strValue);
searchDao.add(histroy); //删除数据
searchDao.deteAll();

基于ormlite创建数据库存储数据案例的更多相关文章

  1. 基于catalog 创建RMAN存储脚本

    --============================== -- 基于catalog 创建RMAN存储脚本 --============================== 简言之,将rman的 ...

  2. asp.net core 系列 20 EF基于数据模型创建数据库

    一.概述 本章使用 Entity Framework Core 构建执行基本数据访问的 ASP.NET Core MVC 应用程序.使用迁移(migrations)基于数据模型创建数据库,是一种cod ...

  3. 使用嵌入式关系型SQLite数据库存储数据

    除了可以使用文件或SharedPreferences存储数据,还可以选择使用SQLite数据库存储数据. 在Android平台上,集成了一个嵌入式关系型数据库—SQLite, 1.SQLite3支持 ...

  4. Android中数据存储(三)——SQLite数据库存储数据

    当一个应用程序在Android中安装后,我们在使用应用的过程中会产生很多的数据,应用都有自己的数据,那么我们应该如何存储数据呢? 数据存储方式 Android 的数据存储有5种方式: 1. Share ...

  5. sql server2008中怎样用sql语句创建数据库和数据表

    这是简单用代码实现创建数据库和数据表的sql语句,如下: --调用系统数据库-- use master go /***防止你要创建的数据库同名,先把它删除掉****/ if Exists(select ...

  6. 一个Web项目中实现多个数据库存储数据并相互切换用过吗?

    最近公司一个项目需要连接多个数据库(A和B)操作,根据不同的业务模块查询不同的数据库,因此需要改造下之前的spring-mybatis.xml配置文件以及jdbc.properties配置文件,项目后 ...

  7. C# 利用mysql.data 在mysql中创建数据库及数据表

    C# 利用mysql.data 在mysql中创建数据库及数据表 using System; using System.Collections.Generic; using System.Linq; ...

  8. (17)ASP.NET Core EF基于数据模型创建数据库

    1.简介 使用Entity Framework Core构建执行基本数据访问的ASP.NET Core MVC应用程序.使用迁移(Migrations)基于数据模型创建数据库,你可以在Windows上 ...

  9. 使用Entity Framework通过code first方式创建数据库和数据表

    开发环境 WIN10 Entity Framework6.0  MVC5.0  开发工具 VS2015  SqlServer2012 1.创建上下文Context继承DbContext,并创建其他的业 ...

随机推荐

  1. Hadoop之Storm基础

    1.离线计算是什么 离线计算:批量获取数据,批量传输数据,周期性批量计算数据,数据展示 代表技术:sqoop批量导入数据,hdfs批量存储数据,mapreduce批量计算数据,hive批量计算数据,* ...

  2. CentOS下安装实时检測网络带宽的小工具bmon

    首先下载rpmforge-release扩展的rpm包 32位操作系统:wget http://www.sudu.us/Tools/bmon/rpmforge-release-0.3.6-1.el5. ...

  3. windows盘符操作

    subst subst x: /d subst y: e:\

  4. 我的 Android 学习笔记-Okhttp 的使用(译)

    okhttp 已经是非常流行的网络请求库了.网上介绍的文章非常之多,但感觉都不是特别系统.遂想到官方应该有介绍的文档,仔细寻找一番,果然.但可惜是英文的,于是就大致翻译了一下,权当做笔记了. 1.Ca ...

  5. Linux下(centos6.8)JDK1.8的安装与配置

    今天说下在Linux(centos6.8)系统下的JDK安装与配置. 据我所知的jdk安装方式有三种(rpm.yum方式没用过,暂且不提)今天只说解压安装方式: 一.解压jdk安装包: 附上jdk1. ...

  6. 知也atitit.解决struts2 SpringObjectFactory.getClassInstance NullPointerException  v2 q31无涯 - I

    atitit.解决struts2 SpringObjectFactory.getClassInstance NullPointerExceptionv2 q31 1. #--现象 java.lang. ...

  7. 分享我们必须知道的高速GTX技术

    eSATA接口只有几根线为什么那么快?连上网线显示的1Gbps是不是很令人兴奋!没错他们都用了高速GTX技术,GTX全称为Gigabit Transceiver,是为了满足现代数字处理技术和计算技术庞 ...

  8. NGINX扩展

    https://github.com/cuber/ngx_http_google_filter_module

  9. python3 读取csv的常用语法

    import csv #打开文件,用with打开可以不用去特意关闭file了,python3不支持file()打开文件,只能用open() with open("info.csv" ...

  10. OC-1-面向对象

    课程要点: C语言是一种面向过程的语言,OC是一种面向对象的语言 类与对象的关联 如何在xcode中创建一个类 如何在类中标记该类事物的属性和动作 C语言是一种面向过程的语言,OC是一种面向对象的语言 ...