【玩转SQLite系列】(七)打造轻量级ORM工具类SQLiteDbUtil操作数据库
2016-11-29 09:50
585 查看
转载请注明出处:http://blog.csdn.net/linglongxin24/article/details/53385868
本文出自【DylanAndroid的博客】
【玩转SQLite系列】文章目录
【玩转SQLite系列】(一)初识SQLite,重拾sql语句
【玩转SQLite系列】(二)SQLite创建和打开数据库的三种方式
【玩转SQLite系列】(三)通过sql语句操作SQLite数据库
【玩转SQLite系列】(四)通过Android提供的API操作SQLite数据库
【玩转SQLite系列】(五)SQLite数据库优化
【玩转SQLite系列】(六)SQLite数据库应用案例实现历史搜索记录
【玩转SQLite系列】(七)SQLite数据库轻量级ORM操作数据库工具类
类似于ORM对象关系映射型的数据库工具类,比较轻量级,可能功能不是那么的完美,毕竟只是个工具而已吗。
支持在build.gradle引入
2.支持的数据类型
支持的表字段数据类型包括:基本类型、包装类型、String类型、Date类型
3.注意事项
数据库给默认会将id作为主键并自增。
2.操作代码
本文出自【DylanAndroid的博客】
【玩转SQLite系列】文章目录
【玩转SQLite系列】(一)初识SQLite,重拾sql语句
【玩转SQLite系列】(二)SQLite创建和打开数据库的三种方式
【玩转SQLite系列】(三)通过sql语句操作SQLite数据库
【玩转SQLite系列】(四)通过Android提供的API操作SQLite数据库
【玩转SQLite系列】(五)SQLite数据库优化
【玩转SQLite系列】(六)SQLite数据库应用案例实现历史搜索记录
【玩转SQLite系列】(七)SQLite数据库轻量级ORM操作数据库工具类
【玩转SQLite系列】(七)打造轻量级ORM工具类SQLiteDbUtil操作数据库
之前已经讲了SQLite数据库的各种使用和操作,我们发现,每次操作起来比较麻烦。在最后,我想到自己去封装一个轻量级的操作SQLite数据库工具类,类似于ORM对象关系映射型的数据库工具类,比较轻量级,可能功能不是那么的完美,毕竟只是个工具而已吗。
一.SQLiteDbUtil工具类超简单用法
1.引入库文件支持在build.gradle引入
compile 'cn.bluemobi.dylan:sqlitelibrary:0.1'
2.支持的数据类型
支持的表字段数据类型包括:基本类型、包装类型、String类型、Date类型
/** * 支持的表字段数据类型包括:基本类型、包装类型、String类型、Date类型 */ String[] types = {"java.lang.Integer", "java.lang.Double", "java.lang.Float", "java.lang.Long", "java.lang.Short", "java.lang.Byte", "java.lang.Boolean", "java.lang.Character", "java.lang.String", "java.util.Date", "int", "double", "long", "short", "byte", "boolean", "char", "float"};
3.注意事项
数据库给默认会将id作为主键并自增。
二.开始使用
1.建立对象User->对应表package cn.bluemobi.dylan.sqlite.mode; import java.util.Date; /** * Created by yuandl on 2016-11-21. */ public class User { private int id; private String name; private int age; private Double integral; private Date time; private boolean flag; public int getAge() { return age; } public User setAge(int age) { this.age = age; return this; } public int getId() { return id; } public User setId(int id) { this.id = id; return this; } public Double getIntegral() { return integral; } public User setIntegral(Double integral) { this.integral = integral; return this; } public String getName() { return name; } public User setName(String name) { this.name = name; return this; } public Date getTime() { return time; } public void setTime(Date time) { this.time = time; } public boolean isFlag() { return flag; } public User setFlag(boolean flag) { this.flag = flag; return this; } @Override public String toString() { return "User{" + "age=" + age + ", id=" + id + ", name='" + name + '\'' + ", integral=" + integral + ", time=" + time + ", flag=" + flag + '}'; } }
2.操作代码
package cn.bluemobi.dylan.sqlite; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v7.app.AppCompatActivity; import android.util.Log; import android.view.View; import android.widget.Toast; import java.util.Arrays; import java.util.Date; import java.util.List; import java.util.Map; import cn.bluemobi.dylan.sqlite.contacts.Contacts; import cn.bluemobi.dylan.sqlite.mode.User; import cn.bluemobi.dylan.sqlitelibrary.JavaReflectUtil; import cn.bluemobi.dylan.sqlitelibrary.SQLiteDbUtil; /** * 通过封装的工具类操作SQLite * Created by Administrator on 2016-11-19. */ public class UtilTestActivity extends AppCompatActivity { @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); getSupportActionBar().setTitle("通过封装的工具类操作SQLite"); setContentView(R.layout.ac_api_operate); SQLiteDbUtil.getSQLiteDbUtil().openOrCreateDataBase(this); Log.d(Contacts.TAG, "User类的所有信息:" + Arrays.toString(JavaReflectUtil.getAttributeNames(User.class))); Log.d(Contacts.TAG, "User类的所有信息:" + Arrays.toString(JavaReflectUtil.getAttributeType(User.class))); } /** * 1.创建数据表user * 表名 user * *数据表user表结构字段 * 主键:id * 名字:name * 年龄:age: * * @param v */ public void create(View v) { SQLiteDbUtil.getSQLiteDbUtil().createTable(User.class); } /** * 2.删除数据表user * * @param v */ public void drop(View v) { SQLiteDbUtil.getSQLiteDbUtil().drop(User.class); } /** * 3.给user表中新增一条数据 * * @param v */ public void insert(View v) { User user = new User(); user.setName("张三"); user.setAge(22); user.setIntegral(12.03); user.setTime(new Date()); long num = SQLiteDbUtil.getSQLiteDbUtil().insert(user); if (num == -1) { Toast.makeText(this, "插入失败", Toast.LENGTH_SHORT).show(); } else { Toast.makeText(this, "成功插入到第" + num + "行", Toast.LENGTH_SHORT).show(); } } /** * 4.修改user表中id为2的名字改成“李四” * @param v */ public void update(View v) { User user = new User(); user.setName("李四"); user.setAge(22); user.setIntegral(12.03); int num = SQLiteDbUtil.getSQLiteDbUtil().update(user, 5); Toast.makeText(this, "修改了" + num + "行", Toast.LENGTH_SHORT).show(); // user.setName("王五"); // SQLiteDbUtil.getSQLiteDbUtil().update(user, "name='李四'"); } /** * 5.删除user表中id为2的记录 * @param v */ public void delete(View v) { int num = SQLiteDbUtil.getSQLiteDbUtil().delete(User.class, 2); Toast.makeText(this, "删除了" + num + "行", Toast.LENGTH_SHORT).show(); // SQLiteDbUtil.getSQLiteDbUtil().delete(User.class,"name='李四'"); } /** * 6.查询数据 * @param v */ public void query(View v) { List<User> users = SQLiteDbUtil.getSQLiteDbUtil().query(User.class); if (users == null) { Log.d(Contacts.TAG, "没有数据"); return; } Log.d(Contacts.TAG, "util查:共" + users.size() + "个对象=" + users.toString()); String sql = "SELECT * FROM User"; List<Map<String, Object>> list = SQLiteDbUtil.getSQLiteDbUtil().rawQuery(sql); Log.d(Contacts.TAG, "sql查:共" + list.size() + "个对象=" + list.toString()); } @Override protected void onDestroy() { super.onDestroy(); } }
三.GitHub
相关文章推荐
- 【玩转SQLite系列】(七)打造轻量级ORM工具类SQLiteDbUtil操作数据库
- 【玩转SQLite系列】(二)SQLite创建和打开数据库的三种方式
- 【玩转SQLite系列】(四)通过Android提供的API操作SQLite数据库
- 【玩转SQLite系列】(三)通过sql语句操作SQLite数据库
- android轻量级数据库SQlite的工具类
- 【玩转SQLite系列】(二)SQLite创建和打开数据库的三种方式
- 深入理解Django中的ORM数据库操作(Django系列1)
- 基于ORMLite封装的数据库操作工具类
- ios - LKDBHelper - sqlite 数据库 自动化操作 工具类 v1.1版 更新
- 【玩转SQLite系列】(三)通过sql语句操作SQLite数据库
- 玩转JDBC打造数据库操作万能工具类JDBCUtil,加入了高效的数据库连接池,利用了参数绑定有效防止SQL注入
- 玩转JDBC打造数据库操作万能工具类JDBCUtil,加入了高效的数据库连接池,利用了参数绑定有效防止SQL注入
- 轻量级ORM开发系列:对象关系以及级联操作的探讨
- 原创的轻量级ORM,支持Lambda进行数据库操作
- Android操作SQLite轻量级的的ORM工具
- SQLite轻量级数据库,操作数据常用语句
- 【玩转SQLite系列】(四)通过Android提供的API操作SQLite数据库
- 玩转JDBC打造数据库操作万能工具类JDBCUtil,加入了高效的数据库连接池,利用了参数绑定有效防止SQL注入
- 【转】玩转Google开源C++单元测试框架Google Test系列(gtest)之八 - 打造自己的单元测试框架
- (转)玩转Google开源C++单元测试框架Google Test系列(gtest)之八 - 打造自己的单元测试框架