MySQL字段類型與Java實(shí)體類類型對(duì)應(yīng)轉(zhuǎn)換關(guān)系詳解
MySQL字段類型與Java實(shí)體類類型對(duì)應(yīng)轉(zhuǎn)換
MySQL Connector/J( MySQL官方JDBC驅(qū)動(dòng)程序)在處理MySQL數(shù)據(jù)類型和Java數(shù)據(jù)類型之間的轉(zhuǎn)換方面非常靈活。
通常,任何MySQL數(shù)據(jù)類型都可以轉(zhuǎn)換為java.lang.String。
可以將字符串和任何數(shù)字類型轉(zhuǎn)換為任何Java數(shù)字類型,盡管可能會(huì)發(fā)生舍入、溢出或精度損失。
從Connector/J 3.1.0開始,JDBC驅(qū)動(dòng)程序會(huì)發(fā)出警告或引發(fā)JDBC規(guī)范所要求的DataTruncation異常(數(shù)據(jù)截?cái)喈惓#峭ㄟ^(guò)使用jdbcCompliantTruncation屬性并將其設(shè)置為false來(lái)將連接配置為不這樣做。
MySQL和Java類型之間始終保證有效的轉(zhuǎn)換
MySQL類型 | 可轉(zhuǎn)換的Java類型 |
---|---|
char, varchar, blob, text, enum, set | java.lang.String, java.io.InputStream, java.io.Reader, java.sql.Blob, java.sql.Clob |
float, real, double, precision, numeric, decimal, tinyint, smallint, mediumint, integer, bigint | java.lang.String, java.lang.Short, java.lang.Integer, java.lang.Long, java.lang.Double, java.math.BigDecimal |
date, time, datetime, timestamp | java.lang.String, java.sql.Date, java.sql.Timestamp |
注意:
如果選擇的Java數(shù)字?jǐn)?shù)據(jù)類型的精度或容量低于要轉(zhuǎn)換的MySQL數(shù)據(jù)類型,則可能會(huì)發(fā)生舍入、溢出或精度損失。
對(duì)應(yīng)關(guān)系
MySQL類型 | 對(duì)應(yīng)Java類型 | 用途 |
---|---|---|
tinyint | 如果配置屬性 tinyInt1isBit 設(shè)置為 true (默認(rèn))并且存儲(chǔ)大小為1,則為 java.lang.Boolean ,否則是 java.lang.Integer。 | |
smallint | java.lang.Integer(不管它是否是unsigned ) | |
mediumint | java.lang.Integer(不管它是否是unsigned ) | |
int | java.lang.Integer, 如果是 unsigned 則是 java.lang.Long | 整數(shù) |
integer | java.lang.Integer, 如果是 unsigned 則是 java.lang.Long | |
bigint | java.lang.Long, 如果是 unsigned 則是 java.math.BigInteger | |
bit(1) | java.lang.Boolean | |
bit(>1) | byte[] | |
real | Java | |
double | java.lang.Double | |
float | java.lang.Float | |
decimal | java.math.BigDecimal | 金額 |
numeric | Java | |
char | java.lang.String (除非列的字符集是BINARY,否則返回byte[]。) | |
varchar | java.lang.String (除非列的字符集是BINARY,否則返回byte[]。) | |
date | java.sql.Date | 日期 |
time | java.sql.Time | 時(shí)間 HH:MM:SS |
year | 如果 yearIsDateType 配置屬性設(shè)置為 false,則返回的對(duì)象類型為 java.sql.Short。 如果設(shè)置為 true (默認(rèn)),則返回的對(duì)象類型為 java.sql.Date,日期設(shè)置為1月1日0:00點(diǎn)。 | |
timestamp | java.sql.Timestamp | 時(shí)間戳 YYYY-MM-DD HH:MM:SS |
datetime | java.sql.Timestamp | YYYY-MM-DD HH:MM:SS |
tinyblob | byte[] | |
blob | byte[] | |
mediumblob | byte[] | |
longblob | byte[] | |
tinytext | java.lang.String | |
text | java.lang.String | |
mediumtext | java.lang.String | |
longtext | java.lang.String | |
enum | java.lang.String | |
set | java.lang.String | |
binary | byte[] | |
varbinary | byte[] | |
point | 位圖 GIS地理坐標(biāo) | |
linestring | 線圖 | |
polygon | 多邊形 | |
geometry | 幾何圖形 | |
multipoint | 復(fù)合位圖 | |
multilinestring | 復(fù)合線圖 | |
multipolygon | 復(fù)合多邊形 | |
geometrycollection | 幾何集合 |
Java中屬性與字段的關(guān)系
理論
通常來(lái)說(shuō):
- 字段(Field):是類中的變量,用于存儲(chǔ)對(duì)象的狀態(tài)或者類的狀態(tài)。字段可以是任何基本數(shù)據(jù)類型(如 int、double、boolean 等),也可以是對(duì)象類型(如 String、自定義類等)。
- 屬性(Property):是對(duì)字段的抽象和封裝,通常通過(guò) getter 和 setter 方法來(lái)控制對(duì)字段的訪問(wèn)。屬性將字段封裝在類的內(nèi)部,提供了更好的控制和更友好的接口,使得數(shù)據(jù)在類內(nèi)部更安全地被訪問(wèn)和操作。屬性是字段的一種高級(jí)表示,它隱藏了字段的具體實(shí)現(xiàn)細(xì)節(jié),提供了更嚴(yán)格的控制和更靈活的操作。
因此,可以說(shuō)屬性是字段的一種,但并不是所有的字段都是屬性。
在很多情況下,屬性是通過(guò) getter 和 setter 方法來(lái)操作字段的,但也有些情況下,類中的字段可能不會(huì)被封裝成屬性,而直接暴露給外部使用。
在idea中演示
心得:
屬性是字段的一種。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Mysql+Keepalived實(shí)現(xiàn)雙主熱備方式
這篇文章主要介紹了Mysql+Keepalived實(shí)現(xiàn)雙主熱備方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-10-10MySQL中rank() over、dense_rank() over、row_number()&n
本文主要介紹了MySQL中rank() over、dense_rank() over、row_number() over用法介紹,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03MySQL觸發(fā)器之判斷更新操作前后數(shù)據(jù)是否改變
這篇文章主要介紹了MySQL觸發(fā)器之判斷更新操作前后數(shù)據(jù)是否改變方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08jdbc連接mysq之serverTimezone設(shè)定方式
這篇文章主要介紹了jdbc連接mysq之serverTimezone設(shè)定方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01