Mybatis在转换Result到需要的Java业务对象时做的三件事,如下:
-
解决了数据库列名到Java列名的映射。
-
解决了数据库类型到Java类型的转换工作。
-
在转换过程中具备一定的容错能力。
其实核心就是:
- 数据库中的列名怎么和对象中的字段对应起来。
- 数据库中的列的类型怎么转换到合适的Java类型,不引起转换失败。
今天我们先来看第一点,数据库中的列名怎么和对象中的字段对应起来。首先是日常PO(Persistant Object) CityPO,里面有五个字段。
public class CityPO {
Integer id;
Long cityId;
String cityName;
String cityEnName;
String cityPyName;
本次要查询的数据库中的列名如下所示。
mysql> mysql> desc SU_City;
+--------------+-------------+------+-----+-------------------+-----------------------------+
| Field | Type | Null | Key | Default | Extra |
+--------------+-------------+------+-----+-------------------+-----------------------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| city_id | int(11) | NO | UNI | NULL | |
| city_name | varchar(20) | NO | | | |
| city_en_name | varchar(20) | NO | | | |
| city_py_name | varchar(50) | NO | | | |
| create_time | datetime | NO | | CURRENT_TIMESTAMP | |
| updatetime | d