1.@Mapper
package com.nowcoder.toutiaob.dao;
import com.nowcoder.toutiaob.model.News;
import com.nowcoder.toutiaob.model.User;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* Created by nowcoder on 2016/7/2.
*/
@Mapper
public interface NewsDAO {
String TABLE_NAME = "news";
String INSERT_FIELDS = " title, link, image, like_count, comment_count, created_date, user_id ";
String SELECT_FIELDS = " id, " + INSERT_FIELDS;
@Insert({"insert into ", TABLE_NAME, "(", INSERT_FIELDS,
") values (#{title},#{link},#{image},#{likeCount},#{commentCount},#{createdDate},#{userId})"})
int addNews(News news);
List<News> selectByUserIdAndOffset(@Param("userId") int userId, @Param("offset") int offset,
@Param("limit") int limit);
}
如上图代码:使用@Mapper注解要定义成一个接口interface
作用:
1.使用@Mapper将NewsDAO接口交给Spring进行管理
2.不用写Mapper映射文件(XML)
3.为这个NewsDAO接口生成一个实现类,让别的类进行引用
如果有多个类的话,可以使用@MapperScan进行注解,一次性注解多个包
@SpringBootApplication
@MapperScan({"com.kfit.demo","com.kfit.user"})
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class, args);
}
}
使用注意事项:
1.接口不可以定义重名方法,即不支持方法重载
2.方法参数有多个的时候,需要使用@Param,单参数方法不需要