Mybatis详细操作
配置中的别名问题
https://mybatis.org/mybatis-3/zh/configuration.html#typeAliases
配置文件中如果有配置type-aliases-package
的包路径,则在设置的resultType
时,如果要设置的对象处于该包下,则可以直接写类名首字母小写的非限定名,或是@Alias("author")
注解指定的值
<select id="findById" resultType="com.jt.pojo.User">
select * from demo_user where id = #{id}
</select>
可以简化成下面这样
<select id="findById" resultType="User">
select * from demo_user where id = #{id}
</select>
数据封装问题
- 使用对象封装
当要传递的参数个数较多时,请考虑使用对象来封装数,如下面的例子中,getUserListByNameAndAge
方法目前其实只需要传name
和age
这两个参数,我们也可以直接使用两个形参来接收,但是使用User
对象传递参数时,后面即使要传递的参数增加了,调用者也不需要修改代码。
List<User> getUserListByNameAndAge(User user);
- 使用
Map<String,Object>
通用性更好一些,可以根据自己的需求对各种自定义名称的参数进行封装
int minAge = 18;
int maxAge = 100;
Map<String,Integer> map = new HashMap<>();
map.put("minAge",minAge);
map.put("maxAge",maxAge);
List<User> userList = userMapper.findUserByAge(map);
System.out.println(userList);