[Android学习系列8]数据库ormlite笔记
一.下载包
http://ormlite.com/
http://ormlite.com/releases/
把core包 和 android包 build path到项目里
二.参考资料
http://ormlite.com/
http://blog.csdn.net/joker_zhou/article/details/7869244
https://www.youtube.com/watch?v=beb-n2yq0kM&hd=1
三.自己写的
1.写一个类代表一个表
package com.example.test_ormlite;
import com.j256.ormlite.field.DatabaseField; public class Person { public static final String ID = "person_id"; public static final String Name = "person_name"; public static final String Info = "persin_info"; @DatabaseField(useGetSet = true , columnName = ID , generatedId = true) private int id; @DatabaseField(useGetSet = true , columnName = Name) private String name; @DatabaseField(useGetSet = true , columnName = Info) private String info; //必须提供一个无参数的构造函数,这个不能少 public Person() {} //自定义构造函数 public Person( String name , String info) { //super(); this.name = name; this.info = info; } @Override //方便输出查看 public String toString() { return "id:" + id + " ,name:" + name + " ,info:" + info; } //get,set方法不能漏 之前就是漏了 结果报错无法运行 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 String getInfo() { return info; } public void setInfo(String info) { this.info = info; } }
2.在res目录新建一个raw文件夹
继承一个OrmLiteConfigUtil类, 用来生成配置文件
package com.example.test_ormlite; import java.io.IOException;
import java.sql.SQLException; import com.j256.ormlite.android.apptools.OrmLiteConfigUtil; public class MyConfigUtil extends OrmLiteConfigUtil { public static final Class<?>[] classes = new Class[]{ Person.class }; public static void main(String[] args) throws SQLException,IOException { writeConfigFile("my_ormlite_config.txt",classes); } }
以j2se的形式run这个类, 对MyConfigUtil.java 进行 run as 的配置
3.第2步完成后会在raw里面生成表的配置文件my_ormlite_config.txt,然后我们就可以写一个DatabaseHelper加载它
并在里面实现创建DAO的方法
package com.example.test_ormlite; import java.sql.SQLException; import android.R.integer;
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.dao.RuntimeExceptionDao;
import com.j256.ormlite.support.ConnectionSource;
import com.j256.ormlite.table.TableUtils; public class MyDatabaseHelper extends OrmLiteSqliteOpenHelper { public static final String DATABASE_NAME = "mydatabase.db"; public static final int DATABASE_VERSION = 1; private Dao<Person,Integer> personDao = null; private RuntimeExceptionDao<Person, Integer> personRuntimeDao = null; public MyDatabaseHelper(Context context) { //加载数据库 和 表的配置文件 super(context, DATABASE_NAME, null , R.raw.my_ormlite_config); } @Override public void onCreate(SQLiteDatabase db, ConnectionSource con) { try { //创建表 TableUtils.createTable(con, Person.class); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } @Override public void onUpgrade(SQLiteDatabase db, ConnectionSource con, int oldVersion, int newVersion) { try { //删除表 TableUtils.dropTable(con, Person.class, true); //重建表 TableUtils.createTable(con, Person.class); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } //person类的DAO public Dao<Person, Integer> getDao() throws SQLException { if( personDao == null ) { personDao = getDao(Person.class); } return personDao; } //person类的RuntimeDao public RuntimeExceptionDao<Person, Integer> getPersonRuntimeExceptionDao() { if( personRuntimeDao == null ) { personRuntimeDao = getRuntimeExceptionDao(Person.class); } return personRuntimeDao; } }
4.然后就可以在activity里面做一些测试了
package com.example.test_ormlite; import java.util.List; import com.j256.ormlite.android.apptools.OpenHelperManager;
import com.j256.ormlite.dao.RuntimeExceptionDao; import android.os.Bundle;
import android.app.Activity;
import android.database.DatabaseUtils;
import android.util.Log;
import android.view.Menu; public class MainActivity extends Activity { MyDatabaseHelper myDbHelper = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); doSomeTestWithOrmlite(); } private void doSomeTestWithOrmlite() { //建立databaseHelper myDbHelper = OpenHelperManager.getHelper(this,MyDatabaseHelper.class); //用databaseHelper 建立 dao RuntimeExceptionDao<Person, Integer> personDao = myDbHelper.getPersonRuntimeExceptionDao(); //插入三条数据 personDao.create(new Person("姓名1","猜猜他是谁") ); personDao.create(new Person("姓名2","猜猜他是谁") ); personDao.create(new Person("姓名s","猜猜他是谁") ); //输出全部数据 List<Person> list_person = personDao.queryForAll(); Log.d( "mytag", list_person.toString() ); //释放helper OpenHelperManager.releaseHelper(); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } }
转载于:https://www.cnblogs.com/sleeptothedeath/p/3681455.html
[Android学习系列8]数据库ormlite笔记相关推荐
- Android学习系列(15)--App列表之游标ListView(索引ListView)
游标ListView,提供索引标签,使用户能够快速定位列表项. 也可以叫索引ListView,有的人称也为Tweaked ListView,可能更形象些吧. 一看图啥都懂了: ...
- Android学习系列(27)--App缓存管理
随笔- 53 文章- 10 评论- 1064 Android学习系列(27)--App缓存管理 无论大型或小型应用,灵活的缓存可以说不仅大大减轻了服务器的压力,而且因为更快速的用户体验而方便了用户. ...
- Android学习系列(7)--App轮询服务器消息
这篇文章是android开发人员的必备知识. 1.轮询服务器 一般的应用,定时通知消息可以采用轮询的方法从服务器拿取消息,当然实时消息通知的话,建议采用推送服务. 其中需要注意轮询的 ...
- Android学习系列(10)--App列表之拖拽ListView(上)
研究了很久的拖拽ListView的实现,受益良多,特此与尔共飨. 鉴于这部分内容网上的资料少而简陋,而具体的实现过程或许对大家才有帮助,为了详尽而不失真,我们一步一步分析,分成两篇文章. ...
- Android学习系列(34)--App应用之发布各广告平台版本
Android的广告平台是很多的,各市场对各平台的接受程度是不一样的,Android的开发者如果想集成广告基本要考虑下面两个问题: (1)集成什么广告,会赚钱? (2)集成什么广告,不会被市场拒绝? ...
- Android学习系列(11)--App列表之拖拽ListView(下)
接着上篇Android学习系列(10)--App列表之拖拽ListView(上)我们继续实现ListView的拖拽效果. 7.重写onTouchEvent()方法. 在这个方法中我们主要是处 ...
- Android学习系列--App调试的几个命令实践
2019独角兽企业重金招聘Python工程师标准>>> 在Android的应用开发中,我们会用到各种代码调试:其实在Android的开发之后,我们可能会碰到一些随机的问题,如cpu过 ...
- Android学习系列--App缓存管理
http://www.cnblogs.com/qianxudetianxia/archive/2012/02/20/2112128.html 无论大型或小型应用,灵活的缓存可以说不仅大大减轻了服务器的 ...
- Android学习系列(19)--App离线下载
宜未雨而绸缪,毋临渴而掘井.----朱用纯<治家格言> 离线下载,在有网络的情况下下载服务器数据,以便无网络时也能阅读,就是离线阅读. 离线下载的功能点如下: 1.下载管理(开 ...
最新文章
- ubuntu下安装ftp服务器
- 获取父页面URL的参数对应值及左对齐字符串
- 信用模型评分卡入门介绍
- mplus 软件_Mplus 7.4 软件及代码
- J2EE 中的安全第一部分 - J2EE安全介绍
- 计算机学院志愿公益活动,计算机学院开展学雷锋主题公益活动
- IDEA中找不到maven插件Plugin ‘org.apache.tomcat.maven:tomcat7-maven-plugin:2.2‘ not found
- 北京昌平回龙观史各庄找PHP开发人员一起做私活
- python 单例模式的实现方法_python中单例模式的四种实现方式
- C++ 写时拷贝 3
- ShardingSphere JDBC 分库分表 读写分离 数据加密
- webpack2 项目构建一
- C++面试题-面向对象-构造函数和析构函数
- 计算机内存不足黑屏怎么办,win10内存不足会黑屏怎么办
- php电子病历毕业设计,基于区块链的电子病历系统设计与实现(自制毕设)
- IBM服务器无法启动怎么恢复
- 猴子偷桃(Java实现)
- 选购发烧游戏台式计算机的内存储器,游戏发烧友福音 惠普暗影精灵5 Super游戏台式电脑评测...
- un7.28:redis客户端常用命令。
- 电脑游戏计算机哪年发明的,电子计算机发明于哪一年