记录学习中用到的一些注解
- 持续更新…
@mapper
mapper/dao包——@Mapper将Mapper接口交给Mybatis管理
//@Mapper //省略此处注解去启动类中加
public interface UserMapper extends BaseMapper<User> {}
启动类——@MapperScan代替了Mapper接口
@SpringBootApplication
@MapperScan("com.pj.mapper")//代替了Mapper接口 扫描此包下面的文件,方便快捷
public class SpringbootDemoApplication {
public static void main(String[] args) {
SpringApplication.run(SpringbootDemo2Application.class, args);
}
}
pojo包——
@Data //动态生成get/set/toString/equals等方法
@Accessors(chain = true) //开启链式加载结构 重构了set方法可以连续.
@NoArgsConstructor //无参构造 必须添加
@AllArgsConstructor //全参构造
//@TableName("User")//标识对象与表的映射关系,如表明与对象名一致则可省略不写
@TableName
public class User {
//实体对象的属性类型应该都是包装类型 Integer null int=0
@TableId(type= IdType.AUTO)//主键自增写法
private Integer id;
//@TableField(value = "name") //标识字段的属性 --一致可以不写
private String name;
private Integer age;
private String sex;
/* 链式加载源码
public User setId(Integer id){
this.id = id;
return this;
}*/
}
@PathVariable
@PathVariable是spring3.0的一个新功能:接收请求路径中占位符的值
通过 @PathVariable 可以将 URL 中占位符参数绑定到控制器处理方法的入参中:URL 中的 {xxx} 占位符可以通过@PathVariable(“xxx“) 绑定到操作方法的入参中。
在Web应用中URL通常不是一成不变的,例如微博两个不同用户的个人主页对应两个不同的URL:http://weibo.com/user1,http://weibo.com/user2。我们不能对于每一个用户都编写一个被@RequestMapping注解的方法来处理其请求,也就是说,对于相同模式的URL(例如不同用户的主页,它们仅仅是URL中的某一部分不同,为他们各自的用户名,我们说它们具有相同的模式)
//例
//在默认的情况下,Spring会对@PathVariable注解的变量进行自动赋值,
//当然你也可以指定@PathVariable使用哪一个URL中的变量
@GetMapping("/page/{moduleName}")
//@PathVariable("moduleName") 可省略变量
public String module(@PathVariable String moduleName) {
return moduleName;
}
@Param
@Param注解的作用是给参数命名,参数命名后就能根据名字得到参数值,正确的将参数传入sql语句中
该注解我还需再查阅资料做修改
// mapper/dao接口层 加@Param
void update( @Param("status") Integer status,@Param("ids") Long[] ids);
// xml映射层
<update id="update">
update tb_item set status=#{status} where id in (
<foreach collection="ids" item="id" separator=",">
#{id}
</foreach>
)
</update>