hibernate:簡單瞭解hibernate
阿新 • • 發佈:2018-12-09
hibernate屬於持久化技術(jdbc、io),用來操縱資料庫的,原意為讓java物件在資料庫中冬眠,即以Java物件的形式將資料儲存到磁碟。
讓我們來看看jdbc的操作資料方式:
新增,loan(id,.......)140個欄位
--------------------------------------
Class.forName("註冊驅動");//驅動
Connection conn=DriverManager.getConnection(url,username,password);
String sql="insert into loan(creatTime,......140)values(?,?,?.......140);"
PreparedStatement ppst=conn.prepareStatement(sql);
//綁參
ppst.setString(1,new Date());
.......
//140次手動綁參
ppst.executeUpdate();
conn.commit();//提交
//釋放資源
ppst.close();
conn.close();
刪除,loan(id,.......)140個欄位
--------------------------------------
Class.forName("註冊驅動");//驅動
Connection conn=DriverManager.getConnection(url,username,password);
String sql="delete from loan where id=?"
PreparedStatement ppst=conn.prepareStatement(sql);
//綁參
ppst.setInt(1,1);
ppst.executeUpdate();
conn.commit();//提交
//釋放資源
ppst.close();
conn.close();
修改,loan(id,.......)140個欄位
--------------------------------------
Class.forName("註冊驅動");//驅動
Connection conn=DriverManager.getConnection(url,username,password);
String sql="update loan set creatTime=?,......140 where id=?"
PreparedStatement ppst=conn.prepareStatement(sql);
//綁參
ppst.setString(1,new Date());
.....
//140次手動綁參
ppst.executeUpdate();
conn.commit();//提交
//釋放資源
ppst.close();
conn.close();
查詢,loan(id,.......)140個欄位
--------------------------------------
List<Loan> listLoan=new ArrayList<Loan>();
Customer c=null;
Class.forName("註冊驅動");//驅動
Connection conn=DriverManager.getConnection(url,username,password);
String sql="select * from loan ";
PreparedStatement ppst=conn.prepareStatement(sql);
//綁參
ResultSet rs=ppst.executeQuery();
while(rs.next()){
c=new Loan();
c.setId(rs.getgetInt("id"));
//......140個引數都要這麼賦值
list.add(c);
}
conn.commit();//提交
//釋放資源
ppst.close();
conn.close();
return list;
綜上可知,確切說,使用jdbc除了刪除不用繫結很多引數,增,改,查,都要繫結很多引數,是面向字串程式設計,會出現三種因為人為操作的弊端/錯誤: 1 佔位符不匹配 2 欄位找不到 3 資料型別不匹配
但是 hibernate 和jdbc不同的是,不用我們自己關注訪問細節(eg:建立結果集,封裝集合,繫結大量引數,提交,釋放資源,關閉連線。) ,hibernate是面試物件程式設計的(oop:oriented object program),通過hql語言來描述操作資料意向,hql語言為面向物件的語言。