Dao层设计

Posted 怪兽快跑

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Dao层设计相关的知识,希望对你有一定的参考价值。

一.关于Dao层 DB 对象的设计。

1.设计DB对象时,请使用包装类。因为从数据库中查出的数据项可能是null,对于int,boolean等简单数据类型,没有办法表示null,会使程序抛出异常。

2.对于mysql要设计是否类型的字段请使用TINYINT类型,对应的java类型为Boolean。

3.CRUD操作方法:获取单个对象请用get作前缀、获取数据列表请用list作前缀、更新请用update作前缀、删除请用delete作前缀。

3.对于mysql 字段类型 到Java类型的映射,请参考如下如所示。

MySQL数据类型 JAVA数据类型 JDBC TYPE 普通变量类型 主键类型
BIGINT Long BIGINT 支持 支持
TINYINT Byte TINYINT 支持 不支持
SMALLINT Short SMALLINT 支持 不支持
MEDIUMINT Integer INTEGER 支持 支持
INTEGER Integer INTEGER 支持 支持
INT Integer INTEGER 支持 支持
FLOAT Float REAL 支持 不支持
DOUBLE Double DOUBLE 支持 不支持
DECIMAL BigDecimal DECIMAL 支持 不支持
NUMERIC BigDecimal DECIMAL 支持 不支持
CHAR String CHAR 支持 不支持
VARCHAR String VARCHAR 支持 不支持
TINYBLOB DataTypeWithBLOBs.byte[] BINARY 不支持 不支持
TINYTEXT String VARCHAR 支持 不支持
BLOB DataTypeWithBLOBs.byte[] BINARY 不支持 不支持
TEXT DataTypeWithBLOBs.String LONGVARCHAR 不支持 不支持
MEDIUMBLOB DataTypeWithBLOBs.byte[] LONGVARBINARY 不支持 不支持
MEDIUMTEXT DataTypeWithBLOBs.String LONGVARCHAR 不支持 不支持
LONGBLOB DataTypeWithBLOBs.byte[] LONGVARBINARY 不支持 不支持
LONGTEXT DataTypeWithBLOBs.String LONGVARCHAR 不支持 不支持
DATE Date DATE 支持 不支持
TIME Date TIME 支持 不支持
YEAR Date DATE 不支持 不支持
DATETIME Date TIMESTAMP 支持 不支持
TIMESTAMP Date TIMESTAMP 支持 不支持

 

 

 

二.mysql 建表规范

1.表主键id 请使用类型 bigint(20)。

2.表示是否 请使用 tinyint。

3.没有详细字段注释、表注释,坚决不给建立、修改表。

4.关于状态的字段,必须注释详细状态值对应的含义。

5.表新增字段必须确定添加在哪个字段之后。

以上是关于Dao层设计的主要内容,如果未能解决你的问题,请参考以下文章

DAO设计模式

Dao层设计

DAO设计模式

DAO 设计模式

OA学习笔记-007-Dao层设计

Springboot三层架构--DAO层Service层Colltroler层--这波我在外太空