基于ormlite创建数据库存储数据案例
一直不知道安卓创建数据库存储数据,以前遇到过,但是没有深入研究,今天仔细的看了一下,学习到了一点知识
直接看代码了
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创建数据库存储数据案例的更多相关文章
- 基于catalog 创建RMAN存储脚本
--============================== -- 基于catalog 创建RMAN存储脚本 --============================== 简言之,将rman的 ...
- asp.net core 系列 20 EF基于数据模型创建数据库
一.概述 本章使用 Entity Framework Core 构建执行基本数据访问的 ASP.NET Core MVC 应用程序.使用迁移(migrations)基于数据模型创建数据库,是一种cod ...
- 使用嵌入式关系型SQLite数据库存储数据
除了可以使用文件或SharedPreferences存储数据,还可以选择使用SQLite数据库存储数据. 在Android平台上,集成了一个嵌入式关系型数据库—SQLite, 1.SQLite3支持 ...
- Android中数据存储(三)——SQLite数据库存储数据
当一个应用程序在Android中安装后,我们在使用应用的过程中会产生很多的数据,应用都有自己的数据,那么我们应该如何存储数据呢? 数据存储方式 Android 的数据存储有5种方式: 1. Share ...
- sql server2008中怎样用sql语句创建数据库和数据表
这是简单用代码实现创建数据库和数据表的sql语句,如下: --调用系统数据库-- use master go /***防止你要创建的数据库同名,先把它删除掉****/ if Exists(select ...
- 一个Web项目中实现多个数据库存储数据并相互切换用过吗?
最近公司一个项目需要连接多个数据库(A和B)操作,根据不同的业务模块查询不同的数据库,因此需要改造下之前的spring-mybatis.xml配置文件以及jdbc.properties配置文件,项目后 ...
- C# 利用mysql.data 在mysql中创建数据库及数据表
C# 利用mysql.data 在mysql中创建数据库及数据表 using System; using System.Collections.Generic; using System.Linq; ...
- (17)ASP.NET Core EF基于数据模型创建数据库
1.简介 使用Entity Framework Core构建执行基本数据访问的ASP.NET Core MVC应用程序.使用迁移(Migrations)基于数据模型创建数据库,你可以在Windows上 ...
- 使用Entity Framework通过code first方式创建数据库和数据表
开发环境 WIN10 Entity Framework6.0 MVC5.0 开发工具 VS2015 SqlServer2012 1.创建上下文Context继承DbContext,并创建其他的业 ...
随机推荐
- represent states with objects
1. The behavior of objects in the real world is more complex than simply being in one state at a tim ...
- android 开发者的个人博客集
1. http://stormzhang.com/posts.html //不少的好的工具与建议
- B8:中介者模式 Mediator
用一个中介对象来封装一系列的对象交互,中介者使得各对象不需要显示地相互引用,从而使其耦合松散,而且可以独立的改变它们之间的交互. 减少了各对象之间的耦合,使得可以独立的改变或复用各个Mediator或 ...
- JPA 使用报Named query not found错误
具体错误如下: Caused by: java.lang.IllegalArgumentException: Named query not found: select emp from TBicEm ...
- 【MyBatis学习11】MyBatis中的延迟加载
1. 什么是延迟加载 举个例子:如果查询订单并且关联查询用户信息.如果先查询订单信息即可满足要求,当我们需要查询用户信息时再查询用户信息.把对用户信息的按需去查询就是延迟加载. 所以延迟加载即先从单表 ...
- 工作总结 string类型保存 "" 这种类型
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- 用Darwin开发RTSP级联server(拉模式转发)(附源代码)
源代码下载地址:https://github.com/EasyDarwin orwww.easydarwin.org 在博客 在Darwin进行实时视频转发的两种模式 中,我们描写叙述了流媒体serv ...
- 【应用篇】Activiti外置表单实例demo(四)
在这里我想说的外置表单.是说我们将我们自己的jsp(.form,.html)等页面上传到工作流的数据库中,当任务运行到当前结点时.给我们像前台发送绑定好的表单. 此处是给表单绑定表单的过程 water ...
- QT学习二:工具栏
QT 的工具栏提供 Dock 功能.文字/图标显示排列的功能. void MainWindow::createToolBar(void) { QToolBar *toolBar = new QToo ...
- 【bzoj1875】【SDOI2009】【HH去散步】
1875: [SDOI2009]HH去散步 Time Limit: 20 Sec Memory Limit: 64 MB Submit: 932 Solved: 424 [Submit][Status ...