Mybatis注解
@SelectProvider是声明在方法基本上的,这个方法定义在Mapper对应的的interface上。
1
public
interface UserMapper {
2 @SelectProvider(type = SqlProvider. class, method = "selectUser")
3 @ResultMap("userMap")
4 public User getUser( long userId);
5 }
上例中是个很简单的Mapper接口,其中定义了一个方法
:getUser
,这个方法根据提供的用户id来查询用户信息,并返回一个User实体bean。
2 @SelectProvider(type = SqlProvider. class, method = "selectUser")
3 @ResultMap("userMap")
4 public User getUser( long userId);
5 }
这是一个很简单很常用的查询场景:根据key来查询记录并将结果封装成实体bean。其中:
@SelectProvider注解用于生成查询用的sql语句,有别于@Select注解,@SelectProvide指定一个Class及其方法,并且通过调用Class上的这个方法来获得sql语句。在我们这个例子中,获取查询sql的方法是SqlProvider.selectUser。
@ResultMap注解用于从查询结果集RecordSet中取数据然后拼装实体bean。
@ResultMap注解用于从查询结果集RecordSet中取数据然后拼装实体bean。
@Entity
@Entity @Table(name = "data_source") public class DataSource implements Serializable { private static final long serialVersionUID = -1912844803103688659L; @Id @Column(name = "id") private String id; @Column(name = "db_name") private String dbName; @Column(name = "db_type") private String dbType;
@Document
@Inherit
@Target
@Role
@Configuration
@Bean
@Component
@Repository
@Service
@Controller
@RestController
@Scope
singleton便是容器默认的scope。Spring容器最初提供了两种bean的scope类型:singleton和 prototype,但发布2.0之后,又引入了另外三种scope类型,即request,session和global session类型。不过这三种类型有所限制,只能在web应用中使用,也就是说,只有在支持web应用的ApplicationContext中使用这 三个scope才是合理的。
@RequestMapping
@Param
@PathVariable
/** * 进入首页 * @param req