t.text 常用Annotation注解1.select语句@Select("select * from tb_user where tb_id=#{tb_id}")通过在Mapper映射接口方法上声明,进行查询,如果需要进行返回结果单独映射,可以通过Results来进行,如下:
常用Annotation注解 1.select语句 @Select("select * from tb_user where tb_id=#{tb_id}") 通过在Mapper映射接口方法上声明,进行查询,如果需要进行返回结果单独映射,可以通过Results来进行,如下: @Results({ @Result(id=true,column="tb_id",property="id"), @Result(column="tb_name",property="name"), @Result(column="tb_sex",property="sex"), @Result(column="tb_age",property="age") }) 在results元素中通过{}包含result元素,在result元素中可以通过id属性指定表中的主键,column指的是数据库表的列名 ,property表示类中的属性名,当涉及到多个查询参数时,可以通过Param来给方法中的参数进行名称定义,从而对应相应 的查询条件中的#{参数},如下: ListfindById(@Param("tb_id") int id); 上述代码中将id参数通过Param重新定义成tb_id,之后在查询语句中将参数改为tb_id即可。 2.Options Options表示在数据库操作时附加的配置,例如插入的时候进行自动增加,将返回主键的参数带入到类的属性中。例如: @Options(useGeneratedKeys=true,keyProperty="id") 其中keyProperty表示将数据生成的主键设置到id属性中。 3.一对一关系的注解,通过one属性来进行。例子: @Result(column="card_id",property="card",one=@One(select="")) 上述代码中假设person与card两张表是一对一关系,在person这个返回类中由于card是来自Card属性的,其中card_id表示 引用card的主键做外键,one属性表示是一个一对一的关系,@One注解的select表示关联要执行的语句。 4.一对多关系的注解,通过many属性来进行。例子: @Result(column="card_id",property="card",many=@many(select="")) 与一对一的区别在于一对多使用many进行,而一对一使用One进行。 5.多对多关系即通过one以及many同时使用,单例使用one,集合使用Many。例子: @Select("select * from clazz") @Results({ @Result(id=true,column="id",property="id"), @Result(column="code",property="code"), @Result(column="id",property="students", many=@Many(select="com.mapper.StudentMapper.selectbyId",fetchType=FetchType.LAZY)) }) List selectClazz(); 上述代码中通过班级查询到学生的信息,在最后一个result中column="id",表示使用id作为参数传入到@Many中的selectbyId 这个方法中作为函数参数。另一个接口StudentMapper如下: public interface StudentMapper { @Select("select * from student where clazz_id=#{id}") @Results({ @Result(id=true,column="id",property="id"), @Result(column="name",property="name"), @Result(column="sex",property="sex"), @Result(column="age",property="age"), }) List selectbyId(int id); } 该接口定义一个方法用来查询学生信息,并通过results来进行数据的绑定。