推荐一个orm框架--jrom,面向对象的可以自动创表超轻量级orm

今天给大家推荐的是一个超轻量级的orm,可以根据java实体自动生成和修改表结构,提供BasicDaoImpl<T,ID>作为抽象父类,通过泛型和反射可提供子类的增删改查和分页功能。通过Filter和Order等面向对象的API进行条件查询和分页,本框架基于Spring配置,可以无缝隙和Spring集成。是想用hibernate或jpa但又不像学习他的繁琐api,想用mybatis但又不想写sql和创建表结构的程序猿的不二选择!!!!

不废话了,源码地址:https://github.com/Mryong/jorm  jar包下载地址:http://download.csdn.net/detail/mr_yong/8127779

本框架由maven构建,下载下来通过pom导入项目,在本地mysql创建一个名为jorm的数据库,可以只跑test包下的单元测试,表就自动好了!!!

好吧,还是写点示例代码吧。。。。。。

首先吧,你歹要创建一个pojo,唉,也就是一个entity,比如:

package org.jerry.jorm.test.entiry;

import org.jerry.jorm.annotation.Entity;
import org.jerry.jorm.annotation.Id;
import org.jerry.jorm.annotation.Table;

/**
 * Created by yong_pliang on 14/10/31.
 */
@Entity
@Table(name = "t_person")
public class Person {
    public enum Gender {
        female, male
    }

    private String id;
    private Gender gender = Gender.female;
    private String name;
    private Integer age;
    private String address;

    @Id
    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public Gender getGender() {
        return gender;
    }

    public void setGender(Gender gender) {
        this.gender = gender;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

}

然后已要创建一个dao吧,作为一个务实派,无不喜欢所有的dao有些一个接口,当然你也可以写,并且框架已经提供了一个BaicDao<T,ID>作为公共接口,你可以继承这个接口啦!

好了,我们来写一个PersonDao

package org.jerry.jorm.test.dao;

import org.jerry.jorm.BasicDaoImpl;
import org.jerry.jorm.test.entiry.Person;
import org.springframework.stereotype.Repository;

/**
 * Created by yong_pliang on 14/10/31.
 */
@Repository
public class PersonDao extends BasicDaoImpl<Person,String> {
}

精呆了有木有!!!!这个dao什么都不用写!!只要 extends BasicDaoImpl<Person,String> ,告诉父类,你这Perosn实体的Dao,Person的ID是String类型!

good,下面来看看我们能做什么了!

package org.jerry.jorm.test;

import org.jerry.jorm.Filter;
import org.jerry.jorm.Order;
import org.jerry.jorm.test.dao.PersonDao;
import org.jerry.jorm.test.entiry.Person;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.transaction.TransactionConfiguration;
import org.springframework.transaction.annotation.Transactional;

import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;

/**
 * Created by yong_pliang on 14/10/31.
 */

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:applicationContext.xml")
@TransactionConfiguration(defaultRollback = false)
@Transactional
public class PersonDaoTester {
    @Resource
    private PersonDao personDao;

    @Test
    public void test1() {
        Person person = new Person();
        person.setId("1");
        person.setGender(Person.Gender.female);
        person.setName("zhangsan");
        person.setAge(12);
        personDao.save(person);
    }

    @Test
    public void test2() {
        Person person = personDao.find("1");
        System.out.println(person);
    }

    @Test
    public void test3() {
        List<Filter> filters = new ArrayList<Filter>();
        filters.add(Filter.eq("name", "zhangsan"));
        List<Person> persons = personDao.findList(filters);
        System.out.println(persons);
    }

    @Test
    public void test4() {
        List<Person> persons = personDao.findList(null, Order.asc("id"));
        System.out.println(persons);
    }

    @Test
    public void test5() {
        List<Filter> filters = new ArrayList<Filter>();
        filters.add(Filter.eq("name", "zhangsan"));
        long count = personDao.count(filters.toArray(new Filter[]{}));
        System.out.println(count);
    }

}

增删该查神马分页都有啦!!!当然还有许多其他功能,请联系我哦,QQ:76094586

时间: 2024-11-08 05:48:04

推荐一个orm框架--jrom,面向对象的可以自动创表超轻量级orm的相关文章

当form表单中只有一个input时按回车键将会自动将表单提交

添加一个<input type='text' style='display:none'/>不显示输入框,然后回车之后也不会提交.

PetaPoco - 轻量级高性能的ORM框架(支持.NET Core)

我们都知道ORM全称叫做Object Relationship Mapper,也就是可以用object来map我们的db. 而且市面上的orm框架有很多,有重量级的Entity Framework,有轻量级的Dapper.PetaPoco等 假如你喜欢原生的Sql语句.又喜欢ORM的简单.又追求高性能,那么轻量级的ORM框架是你的不二选择. 说到轻量级ORM框架Dapper的名气比较大(因为出自名门?),但我却选择使用PetaPoco,因为: 提供了更易用的API Dapper仅提供了一系列Qu

ORM框架的前世今生

目录 一.ORM简介二.ORM的工作原理三.ORM的优缺点四.常见的ORM框架 一.ORM简介 ORM(Object Relational Mapping)对象关系映射,一般指持久化数据和实体对象的映射 数据存储是绝大多数软件系统都要接触到的技术,具有一定规模的软件产品,为了方便存储和管理数据,便引入了数据库这一工具,但是数据如何从程序写入数据库的呢? 为方便程序员通过代码将数据写入数据库,一般的语言开发的厂商都会为各种数据库适配数据库连接的驱动程序,比如ADO.Net,JDBC等. 但是数据库

[转帖]ORM框架的前世今生

https://www.cnblogs.com/7tiny/p/9551754.html 目录 一.ORM简介二.ORM的工作原理三.ORM的优缺点四.常见的ORM框架 一.ORM简介 ORM(Object Relational Mapping)对象关系映射,一般指持久化数据和实体对象的映射 数据存储是绝大多数软件系统都要接触到的技术,具有一定规模的软件产品,为了方便存储和管理数据,便引入了数据库这一工具,但是数据如何从程序写入数据库的呢? 为方便程序员通过代码将数据写入数据库,一般的语言开发的

基于java注解实现自己的orm框架

ORM即Object Relation Mapping,Object就是对象,Relation就是关系数据库,Mapping映射,就是说Java中的对象和关系数据库中的表存在一种对应关系. 现在常见的ORM框架比如Hibernate和mybatis,都是采用了ORM的方式,基本原则就是类-表(Table).属性-列(Column)这样的对应,所以一个对象就能表示数据表中的一行数据啦. 本文转自http://m.blog.csdn.net/woshisangsang/article/details

Spring源码阅读:Spring如何支持各种ORM框架

为了让开发程序更容易,到现在为止,已经有很多ORM框架了,例如:JPA,JDO,Hibernate,Mybatis(之前版本是IBatis)等等.也正因为已经有这么多优秀的ORM框架,Spring团队并没有自己开发一套ORM框架,而是对这些框架都进行了支持,让这些框架在Spring环境下可以得到完全的应用. 通常,在Spring环境下使用这些ORM框架时,都会通过一个Template来使用.Spring对这些框架的集成是这样的: 例如Hibernate,在使用Hibernate时(没有在Spri

打造android ORM框架opendroid(一)——ORM框架的使用

一.我的看法 我记得曾经有一篇博客是介绍的litepal的使用,在这篇博客中我提到过:本来以为android本身提供的API已经封装的够好了,根本不需要什么ORM框架了,但是在使用了litepal后,我感觉使用ORM框架还是很有必要的,下面是我对ORM和android API的几点看法: 1.做为API级别, android只能广义封装,而不能特定去封装一个API,所以android 对sqlite的封装已经很强大了. 2.作为开发者,我们需要为项目提供足够适配的解决方案,可能ORM框架比API

ORM框架基本认识

(以下内容主要用于自己的生活的记录,不喜勿喷) 从工作到现在也一年多了,可是上周五下班时,老大喊着我,问了我一句:“我周末打算让你帮我找点资料,你知道ORM吗?” 在当时,我直接楞了一下,因为在当时的时候我完全没有对ORM这几个单词的概念理解(虽说以前肯定用过,并且还看过相应的实现代码)! 周末经过查询一些资料,感觉现在他们讨论的主要的ORM框架有以下这些 1.NHibernate 提起NHibernate,相信大家都不陌生,NHibernate来源于非常优秀的基于Java的Hibernate关

ORM框架SQLAlchemy与权限管理系统的数据库设计

SQLAlchemy是Python编程语言下的一款ORM框架,该框架建立在数据库API之上,使用对象关系映射进行数据库操作,即:将对象转换成SQL,然后使用数据API执行SQL并获取执行结果. 执行流程: 1.使用者通过ORM对象提交命令 2.将命令交给SQLAlchemy Core(Schema/Types SQL Expression Language)转换成SQL 3.使用 Engine/ConnectionPooling/Dialect 进行数据库操作 4.匹配使用者事先配置好的egin