????????????????????????????——??Java??????дSQL???????10??????——????????????????????DZone???????????????????????????г???????????£?
????SQL??????Java?????ж???????
??????????SQL???????????????????????
???????embracing SQL??????????? jOOQ??MyBatis????????SQL??????????÷?????г???????? ????????????????????????????????“SLICK’s mailing list”??SLICK??Scala?е????????SQL?????????????????LINQ??????LINQ-to-SQL?????????????????????????SQL?????????
??????????Σ?????????г????????????????????????????????10???????????????Java????????дSQL????????????????
????1??????PreparedStatements
????????????????JDBC???????????????????????????????????????????б??У???????????????????????????????????????PreparedStatements???????????????????
?????????PreparedStatements?????
??????????????PreparedStatements?????
???????????дPreparedStatements?????
???????????????????????????96%??????У???PreparedStatement?????????????á???????????????Щ???????
????????????????inlining bind values???????????????????????????????
?????????????????????????????????SQL????????
?????????????“?????”????????????????????????????????????????????????edge-cases????
???????????PreparedStatements???????????????????????????°??????????и??á?
???????????????????????????adaptive cursor sharing——??????α????Oracle?????????????????????????趨???????SQL??????????
??????????????????????????????????SQL?????????????????????????????м???????????????????м?????????CPU????????SGA??????????ò???????????? ?????á?????????????????????????????????????л??豸???????????????????Щ??????????????????????????????????????????????? ????????????????????????????????????????????????????????????????????????????????????????????????????£?
?????Щ??????????????????????????????????????????????????????????ò??????漰?????????????????????“????”?ж??
????DELETED = 1
????STATUS = 42
????????????????“????”?ж??
????FIRST_NAME LIKE “Jon%”
????AMOUNT > 19.95
?????????????????????????????????????bind-variable peeking???????????????£??????????????е?????????e????????д????JPQL??????SQL?????JPA CriteriaQuery????jOOQ??????ε?API?????????????????????????PreparedStatements????????
?????????????????
??????????????bind-variable peeking???????????????????????????????£???????Oracle???Tanel Poder????
?????α?????StackOverflow??????????????
?????????????
???????????£????????PreparedStatements?????澲?????????????????????SQL???????????????
????2???????????
??????????????????????????????????????????м???????????Java?????????????????????????????????
??????Java???????????:
?????? ????????????DAO??????????????select *????????50???У??????????д??????????????????JDBC??????У??????????????????????????????????·?????JDBC??????????? ??????С???????????????2-3??????????????????????IO??????????
???????????????????????????????????С??……
?????????????м??????????
?????? Щ?????????????Java??????????????????????????????????????????????м???????????д?????SQL?????SQL transformation ??????????????е???????????????????????SQL??????????????????????á????д???????????????????????????????Oracle???????????????????
???????????????????????????????????????????????????
????SELECT *
????FROM  customer_view c
????JOIN  order_view o
????ON  c.cust_id = o.cust_id
??????????????????????????????????????ι????????????????? CUSTOMER_ADDRESS??ORDER_HISTORY??ORDER_SETTLEMENT????????select * ???????????????????????????????????????????????????????????????????????Щ??
????SELECT c.first_name?? c.last_name?? o.amount
????FROM  customer_view c
????JOIN  order_view o
????ON  c.cust_id = o.cust_id
????????????????????????SQL????????????Щ??????????????????????????????IO??????????
?????????????
????????????select *??????????????????????в???????????????????????????????????????????????????
?????????????????????-??????ORMs??????????????Щ???