`
cakin24
  • 浏览: 1389778 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

[Hibernate单表操作] 对象类型

阅读更多
一 对象类型


 
 
二 将图片写入数据库
1、Students
import java.sql.Blob;
import java.util.Date;
//学生类
public class Students {
        /*
         * JavaBeans的四点原则
         * 1.必须是公有的类
         * 2.提供公有的不带参数的默认的构造方法
         * 3.属性私有
         * 4.属性setter/getter封装
         */
        private int sid; // 学号
        private String sname; // 姓名
        private String gender; // 性别
        private Date birthday; // 出生日期
        private String address; // 地址
        private Blob picture;//照片
        
        public Blob getPicture() {
                return picture;
        }
 
        public void setPicture(Blob picture) {
                this.picture = picture;
        }
 
        public Students() {
        }
 
        public Students(int sid, String sname, String gender, Date birthday,
                        String address) {
                // super();
                this.sid = sid;
                this.sname = sname;
                this.gender = gender;
                this.birthday = birthday;
                this.address = address;
        }
 
        public int getSid() {
                return sid;
        }
 
        public void setSid(int sid) {
                this.sid = sid;
        }
 
        public String getSname() {
                return sname;
        }
 
        public void setSname(String sname) {
                this.sname = sname;
        }
 
        public String getGender() {
                return gender;
        }
 
        public void setGender(String gender) {
                this.gender = gender;
        }
 
        public Date getBirthday() {
                return birthday;
        }
 
        public void setBirthday(Date birthday) {
                this.birthday = birthday;
        }
 
        public String getAddress() {
                return address;
        }
 
        public void setAddress(String address) {
                this.address = address;
        }
 
        @Override
        public String toString() {
                return "Students [sid=" + sid + ", sname=" + sname + ", gender="
                                + gender + ", birthday=" + birthday + ", address=" + address
                                + "]";
        }
 
}
2、hibernate.cfg.xml配置
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
<!-- Generated 2017-9-17 10:33:28 by Hibernate Tools 3.4.0.CR1 -->
<hibernate-mapping>
    <class name="Students" table="STUDENTS">
        <id name="sid" type="int">
            <column name="SID" />
            <generator class="native" />
            <!--  <generator class="assigned" />-->
        </id>
        <property name="sname" type="java.lang.String">
            <column name="SNAME" />
        </property>
        <property name="gender" type="java.lang.String">
            <column name="GENDER" />
        </property>
        <property name="birthday" type="timestamp">
            <column name="BIRTHDAY" />
        </property>
        <property name="address" type="java.lang.String">
            <column name="ADDRESS" />
        </property>
        <property name="picture" type="java.sql.Blob">
            <column name="PICTURE" />
        </property>
    </class>
</hibernate-mapping>
3、测试方法
        @Test
        public void testWriteBlog() throws Exception{
                Students s= new Students(1,"张三丰","男",new Date(),"武当山");
                //先获得照片文件
                File f = new File("E:"+File.separator+"1.png");
                //获得照片文件的输入流
                InputStream input = new FileInputStream(f);
                //创建一个Blob对象
                Blob image = Hibernate.getLobCreator(session).createBlob(input, input.available());
                //设置照片属性
                s.setPicture(image);
            session.save(s);
        }
4、测试结果


 
 
三 将图片从数据库读出
1、测试方法
        @Test
        public void testReadBlog() throws Exception{
                Students s= (Students)session.get(Students.class, 1);
                //获得Blob对象
                Blob image = s.getPicture();
                //获得照片的输入流
                InputStream input = image.getBinaryStream();
                //创建文件
                File f = new File("E:"+File.separator+"2.png");
                //获得输出流
                OutputStream output = new FileOutputStream(f);
                //创建缓冲区
                byte[] buff = new byte[input.available()];
                input.read(buff);
                output.write(buff);
                input.close();
                output.close();
        }
2、测试结果

 



 
  • 大小: 153.6 KB
  • 大小: 29.5 KB
  • 大小: 5.2 KB
1
0
分享到:
评论

相关推荐

    JAVA数据类型与Hibernate的类型映射

    总结来说,理解并掌握Java数据类型与Hibernate的映射关系,是使用Hibernate进行数据库操作的基础。这涉及到对Java基本类型、复杂类型以及自定义对象的映射,还包括对数据库NULL值的处理、对象关系映射以及工具的使用...

    Hibernate 多表连接分页查询示范项目

    Hibernate 是一个流行的 Java ORM(对象关系映射)框架,它允许开发者用面向对象的方式操作数据库,将数据模型与数据库结构解耦,简化了数据库操作。通过 Hibernate,开发者可以避免编写大量的 SQL 代码,提高开发...

    hibernate的表关联操作-hibernate02

    进行表关联操作时,Hibernate允许我们在实体类层面定义这些关系,然后在程序中直接操作对象,而不是SQL语句。这样不仅可以提高开发效率,还使得代码更加面向对象。例如,要添加一个新的订单,我们只需要创建一个`...

    Java数据类型,Hibernate数据类型,标准sql数据类型之间的对应表

    Hibernate使用自己的数据类型映射机制,将Java对象转化为SQL语句,以操作数据库。而SQL(结构化查询语言)是用于管理关系数据库的标准语言,它有自己的数据类型系统,如INT、VARCHAR、DATE等。 当我们在使用...

    hibernate将本地SQL查询结果封装成对象

    要将本地SQL查询的结果封装成对象,我们首先需要定义一个映射文件(.hbm.xml),在这个文件中,我们需要指定查询返回的对象类型以及字段与数据库列的对应关系。例如: ```xml &lt;hibernate-mapping&gt; ...

    Hibernate的级联操作(增,删,该)

    Hibernate是Java领域中一款广泛应用的对象关系映射(ORM)框架,它允许开发者使用面向对象的方式来操作数据库,大大简化了数据库编程。在Hibernate中,级联操作(Cascading Operations)是一种高级特性,它使得对象...

    Hibernate 映射类型与Java 类型对照

    Hibernate简化了Java应用程序与数据库之间的交互,它允许我们将Java对象直接映射到数据库中的表。理解Hibernate映射类型与Java类型的对应关系对于有效地使用Hibernate至关重要。 首先,我们来看一下基本数据类型的...

    hibernate中的对象关系模型

    它使得开发者能够用面向对象的方式来操作数据库,简化了数据库编程的过程。以下是对hibernate中几种对象关系模型的详细解释: 1. **依赖**: 在Java中,依赖关系可以通过类的实例方法参数来体现,如示例中的`...

    Hibernate使用——自定义数据类型

    在Java世界中,Hibernate是一个非常流行的ORM(对象关系映射)框架,它允许开发者将数据库操作与业务逻辑解耦,通过面向对象的方式处理数据。在实际项目开发中,有时我们可能需要对数据库中的某些字段使用自定义的...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part2

     11.1.3 Java大对象类型的Hibernate映射类型  11.1.4 JDK自带的个别Java类的Hibernate映射类型  11.1.5 使用Hibernate内置映射类型  11.2 客户化映射类型  11.2.1 用客户化映射类型取代Hibernate组件  11.2.2 ...

    hibernate多表查询详解

    在Java的持久化框架中,Hibernate是一个广泛使用的ORM(对象关系映射)工具,它允许开发者用面向对象的方式来处理数据库操作。在实际的业务场景中,数据往往不是孤立存在的,而是存在于多个关联的表中。因此,多表...

    简要分析Java的Hibernate框架中的自定义类型

    当我们发现Hibernate默认的数据类型无法满足我们存储数据的特殊要求时,例如需要处理复杂对象或者自定义逻辑时,就可以通过自定义类型进行解决。 自定义类型主要有两种实现方式: 1. 实现`UserType`接口:这是最...

    struts2+hibernate实现登录及增删改操作

    在操作数据时,我们只需操作对象,Hibernate会自动完成与数据库的交互,包括CRUD(创建、读取、更新、删除)操作。 3. **登录功能实现**:在Struts2和Hibernate结合的项目中,登录功能通常涉及用户输入验证、数据库...

    hibernate使用中与各种数据库字段类型对应类型训练

    在Java世界中,Hibernate是一个非常流行的持久化框架,它简化了数据库操作,使得开发者可以更加专注于业务逻辑而不是底层数据访问的细节。本训练主要关注在使用Hibernate时如何处理与各种数据库字段类型的映射,这...

    Hibernate单表操作实例解析

    **Hibernate单表操作实例解析** Hibernate 是一个流行的 Java ORM(对象关系映射)框架,它允许开发者使用面向对象的方式操作数据库。在这个实例中,我们将深入理解如何使用 Hibernate 对单表进行基本的操作,包括...

    struts+hibernate+单表的增删改查

    本文将详细介绍如何利用Struts2和Hibernate实现对单表的增删改查操作。 #### 二、环境搭建 1. **Web.xml配置**: ```xml xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi=...

    Hibernate对BLOB CLOB操作

    总结来说,Hibernate通过配置文件和实体类实现了对BLOB和CLOB类型的支持,允许开发者在Java代码中方便地操作大数据。通过SessionFactory和Session接口,我们可以进行数据的增删改查操作,同时注意数据库的性能优化,...

    Hibernate 多表映射关系配置

    - `cascade` 属性可以控制关联对象的级联操作,例如 `cascade="save-update"` 可以让保存或更新一个实体时,同时保存或更新其关联的对象。 以上就是 Hibernate 中的一对多、多对一和多对多关系的配置和使用方法。...

Global site tag (gtag.js) - Google Analytics