1. 程式人生 > >hibernate:簡單瞭解hibernate

hibernate:簡單瞭解hibernate

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語言為面向物件的語言。