-
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映射类型
查看全部 -
单一主键:是指表当中由某一列来充当它的主键
查看全部
举报