日期:2014-05-16  浏览次数:20715 次

JROO JDBC,一个ORM急速开发框架

?

?

  • jroo 1.0版从去年底开源以来,因为一些原因一直没有发布新版本,对不起关注jroo的朋友,这里表示一下歉意。

    jroo 1.0版包含的东西很多,有cms、工作流、页面组件、很多的jquery插件等,有不少网友觉得这个版本的东西有点多、有点乱。

    jroo的新版本,我把它称为jroo 2.0,其实在今年4月份就完成的差不多了。在今后的一些日子里,我会参考这些网友的意见,会以一种合适的方式开源出来。

    如果打个比方,jroo 1.0版类似于strus1,jroo 2.0就类似于strus2.0。

    jroo 1.0 版的jdbc部分没有独立出来,2.0版本把它独立了出来,使它成为一个独立的ORM框架,现在先把它开源出来。

    我把它成为jroo-jdbc orm框架。

    目前这个框架已在多个项目中成功使用,极大的提高了开发效率和维护成本。

    欢迎感兴趣的朋友使用,如果你愿意再给我提提意见和建议,我将非常的欢迎和感谢。

    一、这里不讨论Hibernate、Mybatis这些成熟的ORM框架,只要你抽出5分钟的时间,就能明白jroo-jdbc,并能使用它。

    二、jroo-jdbc的目标是:对于Dao层开发,只要你熟悉SQL语句的编写就足够了。

    三、所需技能:?
    ? ? ? 1)、熟悉SQL语句的编写、?
    ? ? ??2)、熟悉Freemarker的少量语法。

    四、需开发的代码:?
    ? ? ? 1)、一个DAO接口、?
    ? ? ? 2)、一个包含SQL语句的xml文件。

    五、先来看一个简单的例子:

    1)、一个DAO接口:?
    @Dao?
    public interface UserDao {?

    //新增用户?
    @InsertEntity?
    public int save(SysUser user);?

    //更新用户?
    @UpdateEntity?
    public int update(SysUser user);?

    //根据用户Id,删除用户?
    //在UserDao.xml中,有一个id为deleteUserByIds的sql与其对应?
    @Delete?
    public int deleteUserByIds(@Param("ids")String...ids);?

    //根据用户名查询用户?
    //直接在接口方法上写sql语句?
    @Select("select * from sys_user where user_name =:userName")?
    public SysUser findUserByUserName(@Param("userName")String userName);?

    //根据用户Id,查询用户?
    //在UserDao.xml中,有一个id为findUserById的sql与其对应?
    @Select?
    public SysUser findUserById(@Param("id")String id);?

    //根据用户名和密码,查询用户?
    //在UserDao.xml中,有一个id为findUserByLoginNameAndPassword的sql与其对应?
    @Select?
    public SysUser findUserByLoginNameAndPassword(?
    ? ? ? ? @Param("login_name")String loginName,?
    ? ? ? ??@Param("pass_word")String passWord);?

    //按多个条件,分页查询用户?
    //首先在UserDao.xml中查找一个id为findUserPage的sql,?
    //如果找到则使用该sql语句,如果未找到,将去所有其他sql xml文件中查找?
    @Select(id="user.findUsers")?
    public Page<Map<String,Object>> findUserPage(?
    ? ? ? ? Page<Map<String,Object>> page,?
    ? ? ? ?@Param("paramMap ")Map<String,?> paramMap);?

    }