orm is a perfect anti-pattern
TRANSCRIPT
/20@yegor256 1
what do you think?
/20@yegor256 2
ORM is a perfect anti-pattern
Yegor Bugayenko
/20@yegor256 3
book.setTitle(“Object Thinking”); session.update(book);
Book
Session
MySQL
JDBC
UPDATE bookSET title = “Object Thinking” WHERE id = 555
book.getTitle(); statement.executeUpdate();
this.title
/20@yegor256 4Map attrs = new HashMap(); attrs.put(“title”, “Object Thinking”); book.updateAttributes(attrs);
Book Base
MySQL
JDBC
UPDATE bookSET title = “Object Thinking” WHERE id = 555
statement.executeUpdate();
/20@yegor256 5
it’s offensive
/20@yegor256 6
SQL-speaking objects
/20@yegor256 7
book.rename(“Object Thinking”);
Book
MySQL
JDBC
UPDATE book SET title = “Object Thinking” WHERE id = 555
statement.executeUpdate();
/20@yegor256 8
JDBC, jOOQ, jcabi-jdbc
/20@yegor256 9
public class Book { private final DataSource source; private final int id; Book(DataSource db, int id) { this.source = db; this.id = id; } public void rename(String title) { new JdbcSession(this.source) .sql(“UPDATE book SET title=? WHERE id=?”) .set(title) .set(this.id) .update(); } }
/20@yegor256 10
www.yegor256.com