Java Micro ORM equivalente
subsonic dapper (6)
Aquí hay una lista de herramientas que "alivian el dolor" al interactuar con JDBC simple:
Y aquí hay una lista de herramientas que van un poco más allá del simple JDBC, es decir, proporcionan algunas instalaciones ORM / ActiveRecord
- jOOQ (Este probablemente no califica como micro-ORM)
- JaQu
- ActiveJDBC (Esta es más una API de ActiveRecord, que una ORM)
- MyBatis (Este se centra en la creación de plantillas SQL, pero también tiene algunas características de mapeo)
- EBean
¿Cuál sería el equivalente más cercano en Java a un Micro ORM como Dapper , PetaPoco , Massive o CodingHorror ?
Este no parece ser mencionado aquí todavía: dalesbred
Similar a sql2o y dapper ...
Otro ORM ligero interesante es JDBI . Aquí hay cinco minutos de introducción
Tiene dos API alternativas:
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();
y SQL Object API donde las declaraciones de SQL se asignan a métodos con interfaces declarativas como esta:
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();
Recomiendo las plantillas Spring JDBC . Si bien no es un ORM "verdadero", es un placer usarlo donde Hibernate parece ser un exceso.
También compra SimpleFlatMapper
Es un correlacionador simple ResultSet to Object. Simplemente se conecta a jdbc y ofrece un rendimiento mucho mejor que Hibernate Ibatis o incluso sql2o. Integra fácilmente JdbcTemplate y proporciona el constructor, el setter y la inyección de campo.
sql2o parece una alternativa de Dapper: envoltura delgada alrededor de 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
sitio - http://www.sql2o.org/