此实列总代用的是string类型
列:比如我们要根据 id 属性获得数据库中的某个字段值。
mapper 接口:
// 根据 id 获得数据库中的 username 字段的值
String getEmpNameById(Long id);
XML映射文件:
<!-- 指定 resultType 返回值类型时 String 类型的, string 在这里是一个别名,代表的是 java.lang.String 对于引用数据类型,都是将大写字母转小写,比如 HashMap 对应的别名是 'hashmap' 基本数据类型考虑到重复的问题,会在其前面加上 '_',比如 byte 对应的别名是 '_byte' 有些时候resultType会检测不到String类型,检测不到就写全包路径 java.lang.String --> <select id="getEmpNameById" resultType="string"> select username from t_employee where id = #{id} </select>
好比如根据某个字段获得数据库中的信息,把查询的结果信息封装成某个 JavaBean 类型的数据。(简而言之平常使用的实体类)
mapper 接口:
// 根据 id 查询信息,并把信息封装成 User 对象
User getUserID(Long id);
<!-- 通过 resultType 指定查询的结果是 user类型的数据 只需要指定 resultType 的类型,MyBatis 会自动将查询的结果映射成 JavaBean 中的属性 --> <select id="getUserID" resultType="user"> select * from user where id = #{id} </select>
MyBatis 还支持将查询的数据封装成Map。
如果查询的结果是一条,我们可以把查询的数据以{表字段名, 对应的值}方式存入到Map中。
mapper 接口:
// 根据 id 查询信息,并把结果信息封装成 Map
Map<String, Object> getUserById(Long id);
SQL 映射文件:
<!-- 注意这里的 resultType 返回值类型是 'map' --> <select id="getUserById" resultType="map"> select * from user where id = #{id} </select>
有时候我们要查询的数据不止一条,比如:页面的模糊查询,直接展示多条表记录,这时候返回的数据可能不止是一条数据,对于多数据的处理可以存放在List集合中。
mapper 接口:
// 假如是全表查询数据,将查询的数据封装成 Employee 类型的集合
List<User> selectAllUser();
SQL 映射文件:
<!-- 注意这里的 resultType 返回值类型是集合内存储数据的类型,不是 'list' --> <select id="selectAllUser" resultType="user"> select * from user </select>