美文网首页
hibernate单表操作

hibernate单表操作

作者: 曹达兴 | 来源:发表于2017-04-04 23:34 被阅读0次

1.单一主键

assigned 由java应用程序负责生成(手工赋值)

(2)native 由底层数据库自动生成标示符,如果是MySQL就是auto_increment,如果是Oracle就是sequence,等等

assigned注意:如果实体类中设置的主键id是基本类型int的话,则可以不用赋值,系统默认值为0;如是引用类型Integer话,则默认值为null,不赋值系统则报错。
native注意:系统会自动选择该数据库对应的自动增值方式,从1开始。即使手动给他赋值,也不会起作用,但也不会报错。

2.基本类型

3.对象类型

向数据库中存入一个照片的方法

  Students s = new Students(1, "张三丰", "男", new Date(), "武当山");
  //先获得照片文件
  File f = new File("S:"+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);

从数据库中读取一个照片的操作

  Students s = (Students)session.get(Students.class, 1);
  //获得Blob对象
  Blob image = s.getPicture();
  //获得照片的输入流
  InputStream input = image.getBinaryStream();
  //创建输出流
  File f = new File("S:"+File.separator+"demo.png");
  OutputStream output = new FileOutputStream(f);
  //创建缓冲区
  byte[] buff = new byte[input.available()];
  input.read(buff);
  output.write(buff);
  input.close();
  output.close();

4.组键属性

有类如下:

public class Address {
         private String postcode;
         private String phone;
         private String address;}

数据库有一属性为Address,则映射文件中:

<component name="address" class="Address(有时需要加包名)">

<property name="postcode" column="POSTCODE"></property>
<property name="phone" column="PHONE"></property>
 <property name="address" column="ADDRESS"></property>

 </component>

5.单表CRUD操作

增加(Create)、读取查询(Retrieve)、更新(Update)和删除(Delete),增删改查CRUD

save

update

delete

get / load(查询单个记录)

get与load区别:

在不考虑缓存的情况下,get方法会在调用之后立即向数据库发出sql语句,返回持久化对象,

load方法会在调用后返回一个代理对象,

该代理对象只保存了实体对象的id,直到使用对象的非主键属性时才会发出sql语句,

查询数据库中不存在的数据时,get返回null,load抛出异常。

相关文章

  • Hibernate单表操作

    一、单一主键 1、两种主键生成策略 assigned:由java应用程序负责生成(手工赋值) native:又底层...

  • hibernate单表操作

    1.单一主键 assigned由java应用程序负责生成(手工赋值)(2)native 由底层数据库自动生成标示符...

  • Hibernate 菜鸟教程 3 单表操作

    工程截图 配置文件hibernate.cfg.xml 映射文件User.hbm.xml 模型对象User.java...

  • Hibernate—— 单表映射

    单一主键 一、assigned 由java应用程序负责生成(手工赋值) 二、native 由底层数据库自动生成标识...

  • 单表操作

    mapper中的class文件中的方法名字和要对应的xml文件中的id要一致 mapper的xml中可以不指定传入...

  • Python ORM 语句

    单表操作 多表操作(一对多): 多表操作(多对多): -------了不起的双下划线(__)之单表条件查询 ---...

  • 6.hibernate的flush函数

    hibernate的flush和操作方式 操作hibernate不是直接操作数据库,hibernate在其中又加入...

  • Hibernate(1) 入门

    Hibernate概述(5.0.7版本) 是一个标准的ORM框架操作对象就相当于操作表结构通过映射文件把对象和表关...

  • hibernate

    Hibernate概述(5.0.7版本) 是一个标准的ORM框架操作对象就相当于操作表结构通过映射文件把对象和表关...

  • MySQL学习笔记(三)修改操作、查询数据表

    操作数据表中的记录 插入操作 单表更新 单表删除 查询记录 where 条件表达式: 查询结果分组 GROUP B...

网友评论

      本文标题:hibernate单表操作

      本文链接:https://www.haomeiwen.com/subject/bgwzottx.html