Sqlla
一套数据库的 ORM 微型库,提供简单高效的 API 来操作数据库。
Sqlla 拥有极少的API,使用方式简单。让开发者不需要关心数据库操作的具体细节,只需专注SQL和业务逻辑。同时简单的事务模型让开发过程增益很多。
简单使用
- 创建实体类,用 @SqllaEntity 标识
@SqllaEntity
public class UserBean {
private String uid;
private String phone;
private String name;
// 使用 SqllaColumnAlias 标识后的属性使用 alias 的值来对应表中的列
// 没有标识时直接使用属性的名字来对应
@SqllaColumnAlias("gender")
private int sex;
// setter getter here
}
- DAO 接口类
public interface UserDao {
// 用 @Sql 标识
@Sql("select * from t_user where uid = ?")
UserBean getUserById(String uid);
@Sql("select * from t_user desc by lastActiveTS limit ?")
List<UserBean> topUsers(int limit);
@Sql("select (count(*) > 0) from t_user where name = ?")
boolean userExist(String name);
@Sql("insert into t_user (id, uid, name, phone) values (null, ?, ?, ?)")
boolean insertUser(String uid, String name, String phone);
@Sql("delete from t_user where uid = ?")
boolean deleteUserById(String uid);
}
- 创建 Sqlla 实例
Sqlla.ConnectionPool pool = your implimention;
Sqlla sqlla = new Sqlla.Builder().pool(pool).build();
- 数据库操作 CRUD
UserDao dao = sqlla.createApi(UserDao.class);
// 获取结果集中的第一个对象(结果集的第一行)
UserBean bean = dao.getUserById("uid_10000001");
// 查询最新的10个用户
List<UserBean> beanList = dao.topUsers(10);
// 查询用户是否存在:对于updateable sql, 返回值可以是int, boolean(>0 for true), void
boolean exists = dao.userExist("李多情");
// 插入用户到数据库(update count > 0 for true)
boolean inserted = dao.insertUser("uid_10000002", "李明洙", "1324113361*");
// 删除指定用户
boolean deleted = dao.deleteUserById("uid_10000003");
DAO接口不需要任何的实现类,是不是使用非常简单?