| Strategy | Ease of Development | Performance | Scalability | Extensibility | Security | Strategy |
|---|---|---|---|---|---|---|
| CMP | relatively simple; preferred over BMP | container dependent | EJB container dependent *a | varies by implementation | EJB provided | CMP |
| BMP | more involved | very efficient w/control over SQL | EJB container dependent *a | varies by implementation | EJB provided | BMP |
| JDO | simple | possibly some performance penalty | developer managed | varies by implementation | developer managed | JDO |
| JPA | the simplest | possibly some performance penalty | EJB container dependent *a | varies by implementation | EJB provided | JPA |
| ORM/DAOs | simple | possibly some performance penalty | developer managed | varies by implementation | developer managed | ORM/DAOs |
| JDBC | most time-consuming and involved | theoretical best performance | developer managed | varies by implementation | developer managed | JDBC |
| iBatis/DAO | somewhere between ORM and JDBC | excellent performance | developer managed | varies by implementation | developer managed | iBatis/DAO |
not covered by SCEA exam
Spring can help level the playing field outside EJB in some of the above developer managed areas by helping with transactioning, scalability and security.