What would be the closest equivalent in Java to a Micro ORM such as Dapper, PetaPoco, Massive or CodingHorror?

來源:互聯網
上載者:User

標籤:parameter   btn   ide   err   hover   visio   spec   nta   commons   

Java Micro ORM equivalent [closed]Ask Question
up vote 51 down vote favorite21

What would be the closest equivalent in Java to a Micro ORM such as Dapper, PetaPoco, Massive or CodingHorror?

java subsonic dapper petapoco massive
shareimprove this question edited Jun 11 ‘12 at 15:24   asked Jun 27 ‘11 at 15:05 Kynth1,8881224
closed as off-topic by Laurel, manetsus, Lambda Ninja, Compass, Edvin Tenovimas Aug 6 ‘16 at 6:57

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions asking us to recommend or find a book, tool, software library, tutorial or other off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it." – Laurel, manetsus, Lambda Ninja, Compass, Edvin Tenovimas
If this question can be reworded to fit the rules in the help center, please edit the question.
 
10  
Ooh, good question – Marc Gravell? Jun 27 ‘11 at 15:11
3  
@Marc: Exactly. There‘re many projects that port out of Java projects. These MicroORMs are ones that could be ported from .net to Java. – Robert Koritnik Jun 28 ‘11 at 16:24
    
@Robert: It would be great to see some of the good .Net work heading the other way too, for sure. – Kynth Sep 6 ‘11 at 16:20
add a comment

6 Answers active oldest votes

up vote 20 down vote accepted

I recommend Spring JDBC templates. While it‘s not a "true" ORM, it‘s a pleasure to use where Hibernate seems to be an overkill.

shareimprove this answer answered Jun 27 ‘11 at 22:49 Arnelism9331918
 
2  
it sounds like a good fit, then ;p Dapper, PetaPoco and Massive are also not "true" ORMs - they instead concentrate on doing an insanely good job of simple data access, which covers a high % of use-cases. – Marc Gravell? Jun 29 ‘11 at 12:15
2  
queryForObject seems a bit clunky, can that not be done with generics in java? eg: Query<Car>("select * from Cars") ? – Sam Saffron Jul 4 ‘11 at 1:33
2  
@sam-saffron Yes! Use SimpleJdbcTemplete - static.springsource.org/spring/docs/2.0.x/reference/… – Arnelism Jul 11 ‘11 at 16:04
add a comment

up vote 23 down vote

sql2o seems like a Dapper alternative - thin wrapper around JDBC

String sql =    "SELECT id, category, duedate " +    "FROM tasks " +    "WHERE category = :category";Sql2o sql2o = new Sql2o(DB_URL, USER, PASS);List<Task> tasks = sql2o.createQuery(sql)    .addParameter("category", "foo")    .executeAndFetch(Task.class);

github - https://github.com/aaberg/sql2o

site - http://www.sql2o.org/

shareimprove this answer answered Aug 9 ‘13 at 7:58 tomaszkubacki1,59011226
 
1  
I would say that sql2o is the easiest and small framework to treat queries like insert, update, delete. I‘ve been using it since 1 year smoothly, however there‘s not any major update since 2015. It is missing a functionality to treat view and joins in one query to avoid round trips to db. – Maximus Decimus Jul 7 ‘17 at 0:52
add a comment

up vote 12 down vote

Here‘s a list of tools that "ease the pain" when interacting with simple JDBC:

  • Spring‘s JdbcTemplate
  • Apache DbUtils
  • JDBI
  • sql2o
  • persism

And here‘s a list of tools that go a bit beyond simple JDBC, i.e. provide some ORM / ActiveRecord facilities

  • jOOQ (This one probably doesn‘t qualify as micro-ORM)
  • JaQu
  • ActiveJDBC (This one is more of an ActiveRecord API, than an ORM)
  • MyBatis (This one focuses on SQL templating, but also has some mapping features)
  • EBean
shareimprove this answer edited Sep 7 ‘13 at 10:25   answered Sep 7 ‘13 at 10:04 Lukas Eder114k63383771
 
    
I‘ve been using sql2o for 1 year without any trouble. However there is no major update since 2015!!!!! I hope this library doesn‘t get obsolete. It is PLAIN AND SIMPLE to use. However I think the creator was requesting ideas to treat VIEWS and/or JOIN queries since so long. I checked quickly this list and Apache DbUtils it is the more closest to sql2o. – Maximus Decimus Jul 7 ‘17 at 0:45
    
@MaximusDecimus: If you‘re such a fan of sql2o, why abandon it instead of contributing? You could even become its new maintainer! – Lukas Eder Jul 7 ‘17 at 8:14
add a comment

up vote 4 down vote

Another interesting light ORM is JDBI. Here is Five minute intro

It has two alternative APIs:

Fluent API

DBI dbi = new DBI(ds);Handle h = dbi.open();String name = h.createQuery("select name from something where id = :id")                    .bind("id", 1)                    .map(StringMapper.FIRST)                    .first();

and SQL Object API where SQL statements are mapped to methods with declarative interfaces like this:

public interface MyDAO{  @SqlUpdate("create table something (id int primary key, name varchar(100))")  void createSomethingTable();}DBI dbi = new DBI(ds);MyDAO dao = dbi.open(MyDAO.class);dao.createSomethingTable();
shareimprove this answer answered Aug 23 ‘13 at 3:13 tomaszkubacki1,59011226
 
    
pro tip: you can mix both approaches using abstract class instead of interface in object api – tomaszkubacki Oct 18 ‘13 at 1:03
    
That SQL Object API looks super cool! – jjnguy Jan 16 ‘14 at 2:23
add a comment

up vote 3 down vote

Also checkout SimpleFlatMapper

It‘s a performant simple ResultSet to Object mapper. It just plug on top of jdbc and gives far better performance than Hibernate Ibatis or even sql2o. It easily integrate JdbcTemplate and provides constructor, setter and field injection.

shareimprove this answer answered Sep 1 ‘14 at 10:34 Anaud Roger311
 
    
May I know what are the disadvantages of SimpleFlatMapper compared to Spring‘s own BeanPropertyRowMapper? – Yudhistira Arya Sep 11 ‘14 at 15:42
add a comment

up vote 2 down vote

This one doesn‘t seem to be mentioned here yet: dalesbred

Similar to sql2o and dapper...

shareimprove this answer answered Aug 11 ‘15 at 5:40 jl.576415
 
    
I should also mention that sql2o seems more active. The API for sql2o seems a bit more natural to me. Dalesbred supports WHERE ... IN queries whereas sql2o does not for now. – jl. Oct 7 ‘15 at 18:15

What would be the closest equivalent in Java to a Micro ORM such as Dapper, PetaPoco, Massive or CodingHorror?

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.