說說這類問題一般要和一個東西比較。說說他們的長處和缺點,hibernate就和JDBC比較唄。你就說說JDBC的優缺點。然后說說hibernate的優缺點,最后對照得出hibernate更好。
hibernate:
1、概念:ormapping 對象關系映射
1、操作數據庫的框架
底層是通過jdbc操作數據庫的
2、用面向對象的方式操作數據庫
2、jdbc的缺點
1、代碼太繁瑣了
2、不是面向對象的數據庫操作
3、資源關閉的代碼也非常繁瑣,每次都得打開、關閉
4、沒有做到數據緩存
5、移植性比較差
長處:
由於是最低層的操作。所以效率比較高
3、hibernate
1、代碼比較精簡了
2、是面向對象的數據庫操作
3、僅僅須要關閉一個對象就能夠了session
4、數據緩存 一級緩存 二級緩存 查詢緩存
5、移植性比較好
缺點:
1、程序猿不能控制sql語句的生成
hibernate中有一個hql
2、假設一個項目對sql語句的優化要求特別高。不適合用hibernate
3、假設一張表的數據量特別大。不適合用hibernate
對於查詢數據庫的sql優化問題。這里有一個面試題,給你一個學生student表,叫你用各種方式查詢出指定的學生信息這里有五種方式得出指定學生2,3,4的信息
--方式一 select * from student where id in(2,3,4) --方式二 select * from student where id =2 or id=3 or id=4 --方式三 select * from student where id between 2 and 4 --方式四 select * from student where id>=2 and id<=4 --方式五 select * from student where id=2 union select * from student where id=3 union select * from student where id=4