0
点赞
收藏
分享

微信扫一扫

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


系列文章目录

文章目录

  • ​​系列文章目录​​
  • ​​前言​​
  • ​​一、hibernate的动态插入、动态更新​​
  • ​​model的数据类型尽量不要设为int设置成integer​​
  • ​​hibernate的动态插入​​
  • ​​动态更新​​
  • ​​type的使用​​
  • ​​总结​​

前言

前面的主键生成策略改回native

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

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

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

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


实体类的属性的数据类型问题(model的数据类型尽量不要设为int)

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

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

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

hibernate的动态插入

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


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


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

动态更新

跟动态插入同理,动态更新也是一样的

class标签的dynamic-update=“true” 与insert类似

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


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


启用了动态插入后,如果插入的数据跟数据库原来的数据是一模一样的话,是不会执行更新的,因为没有意义

所以动态插入的意思就是,没有必要的就没必要写在sql里面,有必要的再写

type的使用

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


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


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


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

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用来设置数据类型以及长度


举报

相关推荐

0 条评论