Hibernate第一次课(1)
中文轉換:C:\a>native2ascii -encoding gb2312 a.properties b.properties
1 做一個JSP頁面,里面只有用戶名的文本框和提交按鈕。當用戶點擊的時候
? 跳轉到一個Servlet。Servlet里面讀取屬性文件。如果用戶輸入的用戶名和
? 屬性文件中的用戶名匹配上,輸出信息:您被禁止登陸。如果用戶輸入的用戶名
? 和屬性文件中的用戶名不匹配,顯示歡迎XXX登陸信息。
2 做一個數據庫表。里面有userid username password usertype字段。在上一題的
? 基礎上,如果用戶輸入的用戶名和屬性文件中的用戶名不匹配,顯示當前用戶的用戶名,
? 密碼,用戶類型。(使用JNDI訪問數據庫連接池的方式連接數據庫)
3 做一個自定義異常類,繼承自RuntimeException類。在里面實現單參構造方法和帶
? 兩個參數的構造方法。在程序中判斷是否是自定義異常,如果是,拋出自定義的錯誤信息。
自定義異常類:
public class DBAccessException extends RuntimeException {
?protected Throwable throwable;
?public DBAccessException(String message) {
??super(message);
?}
}
調用過程:
?????????????? try {?
???Class.forName(driverClassName);
???con = DriverManager.getConnection(url, user, password);
??} catch (Exception ex) {
???throw new DBAccessException("不能取得數據庫連接!");
??}
??---------------------------------------------------------------------------------------------------------------------------
當要將一個對象存儲在網絡、硬盤、或通過流傳輸的時候,必須對該類實現序列化,否則不能執行以上操作!
你要傳輸或保存對象時,需要將對象轉換成bit流,
讀取對象時,需要重新轉換回來。
這樣,就必需實現序列化接口。
序列化是為了存儲整個對象
什么是序列化?在什么情況下將類序列化?
序列化就是一種用來處理對象流的機制,所謂對象流也就是將對象的內容進行流化。可以對流化后的對象進行讀寫操作,也可將流化后的對象傳輸于網絡之間。序列化是為了解決在對對象流進行讀寫操作時所引發的問題。序列化的實現:將需要被序列化的類實現Serializable接口,該接口沒有需要實現的方法,implements Serializable只是為了標注該對象是可被序列化的,然后使用一個輸出流(如:FileOutputStream)來構造一個ObjectOutputStream(對象流)對象,接著,使用ObjectOutputStream對象的writeObject(Object obj)方法就可以將參數為obj的對象寫出(即保存其狀態),要恢復的話則用輸入流。
序列化:序列化是將對象轉換為容易傳輸的格式的過程。例如,可以序列化一個對象,然后使用 HTTP 通過 Internet 在客戶端和服務器之間傳輸該對象。在另一端,反序列化將從該流重新構造對象。
是對象永久化的一種機制。
確切的說應該是對象的序列化,一般程序在運行時,產生對象,這些對象隨著程序的停止運行而消失,但如果我們想把某些對象(因為是對象,所以有各自不同的特性)保存下來,在程序終止運行后,這些對象仍然存在,可以在程序再次運行時讀取這些對象的值,或者在其他程序中利用這些保存下來的對象。這種情況下就要用到對象的序列化。
對象序列化的最主要的用處就是在傳遞,和保存對象(object)的時候,保證對象的完整性和可傳遞性。譬如通過網絡傳輸,或者把一個對象保存成一個文件的時候,要實現序列化接口 。
------------------------------------------------------------------------------------------------------------------------------Hibernate 通用DAO
package dao;
import po.Users;
import po.HibernateSessionFactory;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.hibernate.Query;
import java.util.;
public class Dao {
?public void add(Users user){
??Session session=HibernateSessionFactory.getSession();
??Transaction tx=session.beginTransaction();
??session.save(user);
??tx.commit();
??session.close();
?}
?public void change(){
??Session session=HibernateSessionFactory.getSession();
??Transaction tx=session.beginTransaction();
??Users user=(Users)session.get(Users.class,new Integer(1));
??user.setPassword(aaaa);
??tx.commit();
??session.close();
?}
?public void delete(){
??Session session=HibernateSessionFactory.getSession();
??Transaction tx=session.beginTransaction();
??Users user=(Users)session.load(Users.class, new Integer(1));
??session.delete(user);
??tx.commit();
??session.close();?
?}
?public List find(){
??Session session=HibernateSessionFactory.getSession();
??Query query=session.createQuery(from Users u where u.usertype=123);
??ArrayList list=(ArrayList)query.list();
??return list;
?}
?public List query(int pageNo,int pageSize){
??Session session=HibernateSessionFactory.getSession();
??String sql=from? Users;
??Query query=session.createQuery(sql);
??int beginnumber=pageSize(pageNo-1);
??query.setFirstResult(beginnumber);
??query.setMaxResults(pageSize);
??List list=query.list();
??return list;
?}
}
總結
以上是生活随笔為你收集整理的Hibernate第一次课(1)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 浦发备用金可以用pos机刷出来吗
- 下一篇: 支付宝花呗额度怎么分享给别人