2012-04-13我发布了AHibernate1.0,后面我的博客中很多个例子都用到了这个框架,看到这些博客的访问量和代码下载量我觉得我的辛苦没有白费.但任何代码都不会非常完美,在使用中发现了一些bug,并完善了一些功能,弄个新版本吧,就叫AHibernate1.1吧.
AHibernate1.1主要修改的内容:
1.修改bug,实体类的属性定义为int时自动生成Id正常,定义为Integer类型后不能自动生成Id.
2.实现功能:自动处理java.util.Date类型.
3.实现功能:调试时自动输入sql到日志中,输出的sql已经将?参数替换为了传入的变量,sql能直接运行.
4.实现功能:实现了主键自增和不自增控制方法的重载.默认使用主键自增,
//insert(entity)方法Id会自增,相当于调用insert(entity,true);
//使用insert(entity,false)这样方式可以插入有固定Id的数据
5.支持代码混淆处理,当设置了proguard.config=proguard.cfg后发布程序时,程序会自动混淆处理.使用老接口:public BaseDaoImpl(SQLiteOpenHelper dbHelper)会报错,请使用新接口:
public BaseDaoImpl(SQLiteOpenHelper dbHelper, Class clazz)
注:使用混淆时最好在proguard.cfg文件添加设置:-keepattributes *Annotation*
6.其他一些bug.
AHibernate1.0主要实现功能:
1.自动建表,支持属性来自继承类:可根据注解自动完成建表,并且对于继承类中的注解字段也支持自动建表.
2.自动支持增删改,增改支持对象化操作:增删改是数据库操作的最基本单元,不用重复写这些增删改的代码,并且添加和更新支持类似于hibernate中的对象化操作.
3.查询方式灵活:支持android框架提供的方式,也支持原生sql方式.
4.查询结果对象化:对于查询结果可自动包装为实体对象,类似于hibernate框架.
5.查询结果灵活:查询结果支持对象化,也支持结果为List
使用示例:
package com.tgb.lk.demo;
import java.util.List;
import java.util.Map;
import com.tgb.lk.demo.R;
import com.tgb.lk.demo.dao.impl.StudentDaoImpl;
import com.tgb.lk.demo.dao.impl.TeacherDaoImpl;
import com.tgb.lk.demo.model.Student;
import com.tgb.lk.demo.model.Teacher;
import android.app.Activity;
import android.os.Bundle;
/**
* AHibernate概要
* (一)支持功能: 1.自动建表,支持属性来自继承类:可根据注解自动完成建表,并且对于继承类中的注解字段也支持自动建表. 2.自动支持增删改
* ,增改支持对象化操作:增删改是数据库操作的最基本单元,不用重复写这些增删改的代码,并且添加和更新支持类似于hibernate中的对象化操作.
* 3.查询方式灵活:支持android框架提供的方式,也支持原生sql方式.
* 4.查询结果对象化:对于查询结果可自动包装为实体对象,类似于hibernate框架.
* 5.查询结果灵活:查询结果支持对象化,也支持结果为List
(1)在LogCat中设置查看日志:
(2)运行后输出的日志:
jar和源码下载地址:http://download.csdn.net/download/lk_blog/4786640
快速链接到以前的博客:
http://blog.csdn.net/lk_blog/article/details/7455992 http://blog.csdn.net/lk_blog/article/details/7456125
限于本人水平有限,很多地方写的并不完美,希望大家不吝赐教.如果觉得本文对您有帮助请顶支持一下,如果有不足之处欢迎留言交流,希望在和大家的交流中得到提高.