-
clob和text對應大文本文件,blob對應大的二進制文件,例如視頻音頻圖片 2.java中的clob對應存儲大文本文件,java中的blob對應存儲大二進制文件 MySQL不支持標準SQL的CLOB類型,在Mysql中,用TEXT,MEDIUMTEXT及LONGTEXT類型來表示長度超過255的長文本數據
@Test public void saveImage() throws Exception{ Student s=new Student(1,"李四","男",new Date(),"北京"); File f=new File("d:"+File.separator+"boy.jpg"); InputStream input=new FileInputStream(f); Blob image=Hibernate.getLobCreator(session).createBlob(input, input.available()); s.setImage(image); session.save(s); } @Test public void readImage() throws Exception{ Student s=(Student) session.get(Student.class, 1); Blob image=s.getImage(); InputStream input=image.getBinaryStream(); File f=new File("d:"+File.separator+"girl.jpg"); OutputStream output=new FileOutputStream(f); byte[] buff=new byte[input.available()]; input.read(buff); output.write(buff); output.close(); input.close(); }
查看全部 -
獲得session對象 (1)openSessionion (2)getCurrentSession 如果使用getCurrentSession需要在hibernate.cfg.xml文件中進行配置: 如果是本地事務(jdbc事務) <property name="hibernate.current_session_context_class">thread</property> 如果是全局事務(jta事務) <property name="hibernate.current_session_context_class">jta</property> openSession 每次使用都是打開一個新的session,使用完需要調用close方法關閉session; getCurrentSession 是獲取當前session對象,連續使用多次時,得到的session都是同一個對象,這就是與openSession的區別之一; 一般在實際開發中,往往使用getCurrentSession多,因為一般是處理同一個事務,所以在一般情況下比較少使用openSession;
查看全部 -
hibernate 大體的執行流程: 1.首先創建一個配置對象叫configuration用于讀取配置文檔hibernate.cfg.xml ? Configuration config=new Configuration().configure(); 2.目的是用于創建sessionFactory對象 ?SessionFactory sessionFactory=config.buildSessionFactory(); 創建sessionFactory對象時就會讀取相應的關系映射文件Students.hbm.xml 3.獲得sessionfactory對象后就可以創建session對象 ?Session session=sessionFactory.openSession(); 類似于jdbc中的Connection對象,獲得一個session對象就相當于獲取到一個數據庫鏈接對象,我們就可以執行session的功能save、delete、update、get等功能 4.在執行session的某個方法是必須要開啟一個事務 Transaction transaction=session.beginTransaction(); 因為方法需要封裝在事務當中,在執行完方法<session.save(s);>后要提交事務<transaction.commit();>,然后關閉session ?<session.close();>。
查看全部 -
不使用事物的方式提交sql語句: Student s = new Student(1, "張三豐", "男", new Date(), "武當山"); session.doWork(new Work() { @Override public void execute(Connection connection) throws SQLException { // TODO Auto-generated method stub connection.setAutoCommit(true);//獲取jdbc的connection,設置為自動提交模式 } }); session.save(s); session.flush();//強制發出sql語句
查看全部 -
課程總結3:
查看全部 -
課程總結2:查看全部
-
課程總結1:Hibernate開發的基本步驟
查看全部 -
get與load的區別2查看全部
-
get與load的區別1
查看全部 -
單表CRUD操作實例
查看全部 -
組件屬性:
查看全部 -
對象類型:
查看全部 -
基本類型2——日期類型
查看全部 -
基本類型1——java映射類型
查看全部 -
單一主鍵:是指表當中由某一列來充當它的主鍵
查看全部
舉報