1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package examples.animal.data;
17
18 import java.util.List;
19
20 import org.apache.ibatis.annotations.Arg;
21 import org.apache.ibatis.annotations.Param;
22 import org.apache.ibatis.annotations.Select;
23 import org.apache.ibatis.annotations.SelectProvider;
24 import org.apache.ibatis.session.RowBounds;
25 import org.mybatis.dynamic.sql.select.render.SelectStatementProvider;
26 import org.mybatis.dynamic.sql.util.SqlProviderAdapter;
27 import org.mybatis.dynamic.sql.util.mybatis3.CommonDeleteMapper;
28 import org.mybatis.dynamic.sql.util.mybatis3.CommonInsertMapper;
29 import org.mybatis.dynamic.sql.util.mybatis3.CommonUpdateMapper;
30 import org.mybatis.dynamic.sql.where.render.WhereClauseProvider;
31
32 public interface AnimalDataMapper extends CommonDeleteMapper, CommonInsertMapper<AnimalData>, CommonUpdateMapper {
33
34 @SelectProvider(type=SqlProviderAdapter.class, method="select")
35 @Arg(column = "id", javaType = int.class, id = true)
36 @Arg(column = "animal_name", javaType = String.class)
37 @Arg(column = "brain_weight", javaType = double.class)
38 @Arg(column = "body_weight", javaType = double.class)
39 List<AnimalData> selectMany(SelectStatementProvider selectStatement);
40
41 @SelectProvider(type = SqlProviderAdapter.class, method = "select")
42 @Arg(column = "id", javaType = int.class, id = true)
43 @Arg(column = "animal_name", javaType = String.class)
44 @Arg(column = "brain_weight", javaType = double.class)
45 @Arg(column = "body_weight", javaType = double.class)
46 List<AnimalData> selectManyWithRowBounds(SelectStatementProvider selectStatement, RowBounds rowBounds);
47
48 @SelectProvider(type = SqlProviderAdapter.class, method = "select")
49 @Arg(column = "id", javaType = int.class, id = true)
50 @Arg(column = "animal_name", javaType = String.class)
51 @Arg(column = "brain_weight", javaType = double.class)
52 @Arg(column = "body_weight", javaType = double.class)
53 AnimalData selectOne(SelectStatementProvider selectStatement);
54
55 @Select({
56 "select id, animal_name, brain_weight, body_weight",
57 "from AnimalData",
58 "${whereClause}"
59 })
60 @Arg(column = "id", javaType = int.class, id = true)
61 @Arg(column = "animal_name", javaType = String.class)
62 @Arg(column = "brain_weight", javaType = double.class)
63 @Arg(column = "body_weight", javaType = double.class)
64 List<AnimalData> selectWithWhereClause(WhereClauseProvider whereClause);
65
66 @Select({
67 "select a.id, a.animal_name, a.brain_weight, a.body_weight",
68 "from AnimalData a",
69 "${whereClause}"
70 })
71 @Arg(column = "id", javaType = int.class, id = true)
72 @Arg(column = "animal_name", javaType = String.class)
73 @Arg(column = "brain_weight", javaType = double.class)
74 @Arg(column = "body_weight", javaType = double.class)
75 List<AnimalData> selectWithWhereClauseAndAlias(WhereClauseProvider whereClause);
76
77 @Select({
78 "select id, animal_name, brain_weight, body_weight",
79 "from AnimalData",
80 "${whereClauseProvider.whereClause}",
81 "order by id",
82 "OFFSET #{offset,jdbcType=INTEGER} LIMIT #{limit,jdbcType=INTEGER}"
83 })
84 @Arg(column = "id", javaType = int.class, id = true)
85 @Arg(column = "animal_name", javaType = String.class)
86 @Arg(column = "brain_weight", javaType = double.class)
87 @Arg(column = "body_weight", javaType = double.class)
88 List<AnimalData> selectWithWhereClauseLimitAndOffset(@Param("whereClauseProvider") WhereClauseProvider whereClause,
89 @Param("limit") int limit, @Param("offset") int offset);
90
91 @Select({
92 "select b.id, b.animal_name, b.brain_weight, b.body_weight",
93 "from AnimalData b",
94 "${whereClauseProvider.whereClause}",
95 "order by id",
96 "OFFSET #{offset,jdbcType=INTEGER} LIMIT #{limit,jdbcType=INTEGER}"
97 })
98 @Arg(column = "id", javaType = int.class, id = true)
99 @Arg(column = "animal_name", javaType = String.class)
100 @Arg(column = "brain_weight", javaType = double.class)
101 @Arg(column = "body_weight", javaType = double.class)
102 List<AnimalData> selectWithWhereClauseAliasLimitAndOffset(@Param("whereClauseProvider") WhereClauseProvider whereClause,
103 @Param("limit") int limit, @Param("offset") int offset);
104 }