java 操作数据库时一个属性是DateTime类型的写入数据库时可弄成Varchar么
这样读出再次从数据库读出后可以变为DateTime么,还是说数据库中有专门的DateTime对应的类型...
这样读出再次从数据库读出后可以变为DateTime 么,还是说数据库中有专门的DateTime对应的类型
展开
2个回答
展开全部
通常上来说,数据库和实体类间的字段建立联系,尽量让实体的属性类型与数据字段类型一一对应,比如你使用的是oracle数据库,那么表的主键如果为NUMBER,那么实体对应主键属性java类型就定义为Long或Integer(依字段长度决定),如果数据库表字段为VARCHAR,实体类对应属性就应该是String,如果数据库字段为小数,则定义为Double,属性建议使用包装类型,不用基本类型。至于时间,数据库一般由Date,DateTime,以及timestamp表示,对应于java实体类,一般用Date封装即可,对时间进精度要求高的话,就用TimeStamp封装。
当然,你说的情况是可以的,也就是说,使用java的String类型,理论上可以封装所有的数据库字段类型,你可以把任何数据库的有效字段都封装为String,因为java中的所有数据类型,都有toString()方法,可以以字符串形式展示任何数据类型,还可以通过重写对象的toString()方式达到自定义显示数据的方式,可以说很方便。但是时间类型一旦用字符串表示,你便失去了直接调用时间类型特有的一些有用的方法,比如获取时分秒,比较时间大小等等。而是需要手动再转化为时间对象再进行操作,这无疑又多了一个步骤。因此,除非是比较特殊的情况,比如,单纯的进行数据导出,不做特殊处理,你可以建一个属性全为String的实体类,来封装数据库查询的数据,然后导出为excel或word文件之类的操作。否则,强烈建议使用匹配的数据类型和数据库字段类型建立关联!
希望我的回答能帮到你!
当然,你说的情况是可以的,也就是说,使用java的String类型,理论上可以封装所有的数据库字段类型,你可以把任何数据库的有效字段都封装为String,因为java中的所有数据类型,都有toString()方法,可以以字符串形式展示任何数据类型,还可以通过重写对象的toString()方式达到自定义显示数据的方式,可以说很方便。但是时间类型一旦用字符串表示,你便失去了直接调用时间类型特有的一些有用的方法,比如获取时分秒,比较时间大小等等。而是需要手动再转化为时间对象再进行操作,这无疑又多了一个步骤。因此,除非是比较特殊的情况,比如,单纯的进行数据导出,不做特殊处理,你可以建一个属性全为String的实体类,来封装数据库查询的数据,然后导出为excel或word文件之类的操作。否则,强烈建议使用匹配的数据类型和数据库字段类型建立关联!
希望我的回答能帮到你!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询