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层设计的主要内容,如果未能解决你的问题,请参考以下文章