Android 的对象关系映射框架 —— Homocentric
Homocentric框架其实是一个意外产物,在公司做项目时,苦于数据库的繁琐,需要对代码进行一层层的封装,遂产生了冲动,不如自己写一个框架吧,于是说做就做,由于学过JavaEE的三大框架,对其中的Hibernate的原理有一定的了解,因此写起来并不是十分的吃力,断断续续的过了三个月,Homocentric的第一个版本出来了,不消说,用起来确实方便多了,闲话少说,开始正题。
Homocentric在使用方法上与Hibernate几乎一致(因为本人也是模仿它做的),对外提供一个接口负责执行被持久化对象的CRUD操作——Sessoin,Session共有提供了十个方法,分别是:
public List get(Object obj) throws JavaBeanException; public Object get(Class<?> clazz, Integer id); public List getPaging(Class<?> clazz, int start, int count); public boolean save(Object obj) throws JavaBeanException; public boolean update(Object obj) throws JavaBeanException; public boolean delete(Object obj) throws JavaBeanException; public int getCount(Class<?> clazz); public List get(String sql, String[] selectionArgs); public void exec(String sql); public void closeDB();
Session session = SessionFactory.getSession(context);
<?xml version="1.0" encoding="UTF-8"?><library name="shop" version="1"> <table name="user"> <property name="name" type="VARCHAR" length="50" /> <property name="psd" type="VARCHAR" length="30" /> </table></library>
public class User extend Holder { private String name; private String psd; public User(){} public void setName(String name) { this.name = name; } public ...}
public class UserDao { protected Session session; protected Class clazz; public UserDao(){ clazz = User.class; session = SessionFactory.getSession(context); } public User getAll() { try { return session.get("FROM " + clazz.getName(), null); } catch (SQLSyntaxException e) { e.printStackTrace(); } return null; } public boolean save(User user) { try { return session.save(user); } catch (JavaBeanException e) { e.printStackTrace(); } return false; } public ...}