MyBatis的注解,主要是用于
替换映射文件。
映射文件中无非存放在
增删改查的sql映射
标签。所以,
MyBatis注解,就是要替换映射文件中的SQL标签。
MyBatis官方文档中指出,若要真正想发挥MyBatis功能,还是要用映射文件。所以官方并不建议使用MyBatis注解式开发。
注解后 没有分号
查看2个源码:
2、已经没有mapper.xml映射文件
MyBatis官方文档中指出,若要真正想发挥MyBatis功能,还是要用映射文件。所以官方并不建议使用MyBatis注解式开发。
注解后 没有分号
注解首字母大写,因为注解与类、接口是同一级别的。一个注解,后台对应着一个@interface类,并不是接口。
1、Dao接口
public interface IStudentDao {
@Insert(value={"insert into student(name,age,score) values(#{name},#{age},#{score})"})
void insertStudent(Student student);
@Insert(value={"insert into student(name,age,score) values(#{name},#{age},#{score})"})
@SelectKey(statement="select @@identity",resultType=int.class,keyProperty="id",before=false)
void insertStudentCacheId(Student student);
@Delete(value="delete from student where id=#{xxx}")
void deleteById(int id);
@Update("update student set name=#{name},age=#{age},score=#{score} where id=#{id}")
void updateById(Student student);
@Select("select id,name,age,score from student where id=#{xxx}")
Student selectById(int id);
@Select("select id,name,age,score from student where name like '%' #{xxx} '%'")
List<Student> selectByName(String name);
}
@Insert注解
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface Insert {
String[] value();
}
@SelectKey注解
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface SelectKey {
String[] statement();
String keyProperty();
String keyColumn() default "";
boolean before();
Class<?> resultType();
StatementType statementType() default StatementType.PREPARED;
}
2、已经没有mapper.xml映射文件
3、修改mybatis.xml主配置文件
<!-- 配置映射文件 -->
<mappers>
<!-- <mapper resource="com/xinm/mybatis/dao/mapper.xml"/> -->
<package name="com.xinm.mybatis.dao"/>
</mappers>