Mybatis加载参数多参数
写DAO时要向SQL语句传入多个参数作为条件或数据的时候可通过以下方式
1、传入一个对象使用#或$获取,参数和类中的名字对应这种用于添加较为方便
@Insert("INSERT INTO areas(longitude, latitude, user_idnum) VALUES (#{longitude},#{latitude},#{user_idnum})") public void insertArea(Areas area);
2、如果只是相传一个或两个值作为查询的参数,这就有些麻烦
@Select("SELECT light FROM iot_form.data_unit_sensor where areaid=#{areaid} and day=#{day}")
public double[] findLightByDayAndArea(int areaid,int day);
这么写,运行
org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter 'areaid' not found. Available parameters are [arg1, arg0, param1, param2]
报错,错误原因是它找不到参数这时应该告诉mybatis,使用 @Param注解
@Select("SELECT air_temp FROM iot_form.data_unit_sensor where areaid=#{areaid} and day=#{day}") public double[] findAirTempByDayAndArea(@Param("areaid") int areaid, @Param("day") int day);
运行ok,如果是一个参数,可以不使用注解