• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > android OrmLite,androidormlite

android OrmLite,androidormlite

作者:网友 字体:[增加 减小] 来源:互联网 时间:2017-05-26

网友通过本文主要向大家介绍了ormlite android,ormlite,ormlite框架,ormlite使用,servicestack.ormlite等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

android OrmLite,androidormlite


最近在使用ormlite框架进行数据库的操作,下面简单的写个demo来学习下

1.下载jar包

这里使用的是ormlite-core-5.0.jar 和 ormlite-android-5.0.jar

将下载的jar包放到我们项目的libs文件夹下

2.创建实体类对象

每一个实体类对应一张表,在我们项目中的bean目录下创建一个Student类

package com.item.jiejie.lite.db;

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

/**
 * 定义实体类Bean,代表一张表
 * 需要持久化到数据库的类,类名前需要添加@DatabaseTable,生成对应的表 类中的成员需要添加@DatabaseField,生成前面的表中的字段
 * 注意:在需要持久化的类中必须要有无参的构造器
 * Created by jiejie on 2017/5/3.
 */
@DatabaseTable(tableName = "tb_hello")
public class Hello {
    @DatabaseField(generatedId = true)
    private int id;
    @DatabaseField(columnName = "name")
    private String name;
    @DatabaseField(columnName = "sex")
    private String sex;
    @DatabaseField(columnName = "age")
    private int age;
    /*
     * 常用参数
     * generatedId = true 主键,自动生成的id 该注解下的字段必须是整形(int long)
     * id = true 主键
     * unique = true 唯一约束 默认false
     * columnName = "name" 表字段名,默认为变量名称
     * canBeNull = false 非空约束,默认为true,可以为null,设为false就不能为null
     * foreign = true 外键引用,字段不能是一个原始类型,应该定义一个对象当做外键引用,在外键对象的类中,必须要有一
     * 个ID字段(ID, generatedId,generatedIdSequence)
     * foreignAutoRefersh = true 在使用外键引用时,由于ormlite的外键引用使用的是对象,所以添加这个字段的话在查询,会把
     * 外键的对象数据都查询回来,否则外键数据就只有那个对象的主键有值,其余的值都是null
     * defaultValue = "小明" 默认值
     * index = true 建立索引 默认为false
     * uniqueIndex = true 唯一索引 默认为false
     */

    //空的构造方法一定要有,否则数据库会创建失败
    public  Hello(){

    }
    public Hello(String name, String sex, int age) {
        this.name = name;
        this.sex = sex;
        this.age = age;
    }

    public String getName() {
        return name;
    }

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

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public int getAge() {
        return age;
    }

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

    @Override
    public String toString() {
        return "Hello{" +
                "name='" + name + '\'' +
                ", sex='" + sex + '\'' +
                ", age=" + age +
                '}';
    }
}

3.编写我们的数据helper类

package com.item.jiejie.lite.db;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.util.Log;
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;

/**
 * 编写DAO类
 * Created by jiejie on 2017/5/3.
 */

public class DataHelper extends OrmLiteSqliteOpenHelper{

    private static  final  String TABLE_NAME = "Hellotext.db";
    /**
     * helloDao 没张表对应一个
     */
    private Dao<Hello,Integer> helloDao = null;

    /**构造方法*/
    public DataHelper(Context context) {
        super(context, TABLE_NAME, null, 1);
    }
    //创建数据表
    @Override
    public void onCreate(SQLiteDatabase sqLiteDatabase, ConnectionSource connectionSource) {
        try {
            TableUtils.createTable(connectionSource,Hello.class);
            Log.d("jiejie","数据库创建成功");
        } catch (SQLException e) {
            e.printStackTrace();
            Log.d("jiejie","数据库更新成功");
        }
    }
    //数据库更新
    @Override
    public void onUpgrade(SQLiteDatabase sqLiteDatabase, ConnectionSource connectionSource, int i, int i1) {
        try {
            TableUtils.dropTable(connectionSource,Hello.class,true);
            onCreate(sqLiteDatabase,connectionSource);
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

    /**
     * 单例获取该Helper
     * 1.先把构造函数私有化
     * 2.对外提供一个静态方法
     * 3.在方法中判断如果已经存在就不再创建,如果不存在再创建这样就永远只有一个DataHelper对象
     * 4.为了线程安全,需要再方法钱提供一个线程安全关键字synchronized
     */
    private static  DataHelper instance;
    public static  synchronized  DataHelper getHeper(Context context){
        if(instance == null){
            synchronized (DataHelper.class){
                if(instance == null){
                    instance = new DataHelper(context);
                }
            }
        }
        return instance;
    }
    public Dao<Hello,Integer> getHelloDao() throws  SQLException{
        if(helloDao == null){
            helloDao = getDao(Hello.class);
        }
        return helloDao;
    }
    public  synchronized void clearData(Class<Hello> clase){
        try {
            TableUtils.clearTable(connectionSource,clase);
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
    /**
     * 释放资源
     */
    @Override
    public void close() {
        super.close();
        helloDao = null;
    }
}

4.

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • android OrmLite,androidormlite

相关文章

  • 2017-05-26Android之RecyclerView(二),androidrecyclerview
  • 2017-05-26解决 Could not find com.android.tools.build:gradle 问题,couldnotfindntldr
  • 2017-05-26热修复-Tinker,修复-tinker
  • 2017-05-26Android Studio上面使用Ndk JNI 开发工程
  • 2017-05-26配置文件智能的备份和还原
  • 2017-05-26Activity按下2次退出,Activity2次退出
  • 2017-05-26【原】tinker dex文件格式的dump工具tinker-dex-dump,dextinker-dex-dump
  • 2017-05-26MaterialRefreshLayout,swiperefreshlayout
  • 2017-05-26[android] 手机卫士设置向导页面,android向导
  • 2017-05-26android开发游记:meterial design 5.0 新增控件介绍及使用方法

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 手机安全卫士——手机防盗页面,安全卫士防盗页面
    • Android SwipeRefreshLayout下拉刷新与上拉加载+滑动删除
    • 8.3.8 Paint API之—— Xfermode与PorterDuff详解(五)
    • Android5.0新特性-Material Design
    • Android学习笔记(28):三种选择器DatePicker_TimePicker_NumberPicker剖析
    • Android之网络编程利用PHP操作MySql插入数据(四),androidmysql
    • 系统重启后ngix reload不生效原因分析
    • 手机影音2--软件架构分析,影音2--架构分析
    • android开发之——获取相册图片和路径,
    • 手机安全卫士——软件管理-用户程序和系统程序,安全卫士系统程序

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有