Java_SSH之Hibernate_002_03:hibernate的动态插入&动态更新&type的使用、model的数据类型尽量不要设为int设置成integer

系列文章目录

前言

前面的主键生成策略改回native
在这里插入图片描述

一、hibernate的动态插入、动态更新

model的数据类型尽量不要设为int设置成integer

在这里插入图片描述
实体类的属性的数据类型问题(model的数据类型尽量不要设为int)
(一)定义实体类时,如果属性的类型定义成int类型,在前台jsp页面数据呈现时,会默认显示为0.而Integer不会显示0.Integer是包装类,包装类符合对象的特征并提供了一些必要的属性和方法。

(二)如果返回字段值为null,int类型会报错,Integer不会报错。因为int类型声明的是变量,而null是对象所以会报错。

(三)int类型的默认值为0,Integer类型的默认值为null

hibernate的动态插入

在这里插入图片描述
在这里插入图片描述
严格来说,这样空的字段不会插入到数据库里面去了

动态更新

跟动态插入同理,动态更新也是一样的
class标签的dynamic-update=“true” 与insert类似
在这里插入图片描述
在这里插入图片描述
启用了动态插入后,如果插入的数据跟数据库原来的数据是一模一样的话,是不会执行更新的,因为没有意义
所以动态插入的意思就是,没有必要的就没必要写在sql里面,有必要的再写

type的使用

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

        Date:
        1.在property中type不写,数据库对应的类型 datetime【年月日时分秒】
        2.type中data,数据库对应的类型 date【只有年月日】
        3.type中time,数据库对应的类型 time【只有时分秒】
        4.type中timestamp,数据库对应的类型 timestamp【时间戳】-感觉不太好用
          如果要用时间戳,建议用long类型

总结

1、
(一)定义实体类时,如果属性的类型定义成int类型,在前台jsp页面数据呈现时,会默认显示为0.而Integer不会显示0.Integer是包装类,包装类符合对象的特征并提供了一些必要的属性和方法。

(二)如果返回字段值为null,int类型会报错,Integer不会报错。因为int类型声明的是变量,而null是对象所以会报错。

(三)int类型的默认值为0,Integer类型的默认值为null
2、
class标签的dynamic-insert=“true” 是否动态生成插入语句,,【如果属性字段为空,就不会有些字段的插入语句】
3、type用来设置数据类型以及长度

猜你喜欢

转载自blog.csdn.net/qq_41753340/article/details/113921686