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.表新增字段必须确定添加在哪个字段之后。

浙公网安备 33010602011771号