Mybatis持久层注解开发

99 阅读7分钟

1. 配置增删改查

[Java] _纯文本查看_ _复制代码_

?

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

package`com.wode.mapper;`

import`java.util.List;`

import`java.util.Map;`

import`org.apache.ibatis.annotations.Delete;`

import`org.apache.ibatis.annotations.Insert;`

import`org.apache.ibatis.annotations.Options;`

import`org.apache.ibatis.annotations.Param;`

import`org.apache.ibatis.annotations.Result;`

import`org.apache.ibatis.annotations.ResultMap;`

import`org.apache.ibatis.annotations.Results;`

import`org.apache.ibatis.annotations.Select;`

import`org.apache.ibatis.annotations.Update;`

import`com.wode.pojo.User;`

public`interface`UserMapper {

//使用注解的方式新增用户

@Insert`("insert into users values(null,#{user.userName},#{user.userPwd},#{user.userType})")`

@Options`(keyProperty="user.userId",useGeneratedKeys=true)`

public`intaddUser(@Param("user"`)User user);

//注解的方式修改用户资料---多参数传递第二种方式

@Update`("update users set user_name=#{name} where user_id=#{id}")`

public`intupdateUserNameById(@Param("name")String name,@Param("id")int`id);

//注解的方式删除用户

@Delete`("delete from users where user_id=#{id}")`

public`intdelById(@Param("id")int`id);

@Select`("select * from users")`

/** @Results({

@Result(id=true,property="userId",column="user_id",javaType=Integer.class),

@Result(property="userName",column="user_name",javaType=String.class),

@Result(property="userPwd",column="user_pwd",javaType=String.class),

@Result(property="userType",column="user_type",javaType=Integer.class)

})

*/

@ResultMap`("userMap")`

public`List<User> findAllUser();`

}

2. 常用查询

[Java] _纯文本查看_ _复制代码_

?

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

一对一 :`@One`

package`com.wode.mapper;`

import`java.util.List;`

import`java.util.Map;`

import`org.apache.ibatis.annotations.Delete;`

import`org.apache.ibatis.annotations.Insert;`

import`org.apache.ibatis.annotations.One;`

import`org.apache.ibatis.annotations.Options;`

import`org.apache.ibatis.annotations.Param;`

import`org.apache.ibatis.annotations.Result;`

import`org.apache.ibatis.annotations.ResultMap;`

import`org.apache.ibatis.annotations.Results;`

import`org.apache.ibatis.annotations.Select;`

import`org.apache.ibatis.annotations.Update;`

import`com.wode.pojo.User;`

public`interface`UserMapper {

//使用注解的方式新增用户

@Insert`("insert into users values(null,#{user.userName},#{user.userPwd},#{user.userType})")`

@Options`(keyProperty="user.userId",useGeneratedKeys=true)`

public`intaddUser(@Param("user"`)User user);

//注解的方式修改用户资料---多参数传递第二种方式

@Update`("update users set user_name=#{name} where user_id=#{id}")`

public`intupdateUserNameById(@Param("name")String name,@Param("id")int`id);

//注解的方式删除用户

@Delete`("delete from users where user_id=#{id}")`

public`intdelById(@Param("id")int`id);

@Select`("select * from users")`

/** @Results({

@Result(id=true,property="userId",column="user_id",javaType=Integer.class),

@Result(property="userName",column="user_name",javaType=String.class),

@Result(property="userPwd",column="user_pwd",javaType=String.class),

@Result(property="userType",column="user_type",javaType=Integer.class)

})

*/

@ResultMap`("userMap")`

public`List<User> findAllUser();`

@Select`("select * from users where user_id=#{id}")`

@ResultMap`("userMap")`

public`User findUserById(@Param("id")intid);`

//1:1

@Select`("select * from users where user_id=#{id}")`

@ResultMap`("userMap")`

public`User findUserAndInfo(@Param("id")intid);`

}

[Java] _纯文本查看_ _复制代码_

?

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

package`com.wode.mapper;`

import`java.util.List;`

import`org.apache.ibatis.annotations.One;`

import`org.apache.ibatis.annotations.Param;`

import`org.apache.ibatis.annotations.Result;`

import`org.apache.ibatis.annotations.Results;`

import`org.apache.ibatis.annotations.Select;`

import`com.wode.pojo.UserInfo;`

public`interface`UserInfoMapper {

@Select`("select * from userInfo")`

@Results`({`

@Result`(id=true,column="info_id",property="infoId",javaType=Integer.class),`

@Result`(column="nickName",javaType=String.class,property="nickName"),`

@Result`(column="email",property="email",javaType=String.class)`

})

public`List<UserInfo> findUserInfo();`

//user中外键查询数据

@Select`("select * from userInfo where user_id=#{id}")`

@Results`({`

@Result`(id=true,column="info_id",property="infoId",javaType=Integer.class),`

@Result`(column="nickName",javaType=String.class,property="nickName"),`

@Result`(column="email",property="email",javaType=String.class)`

})

public`UserInfo findByUser(@Param("id")intid);`

//1:1

@Select`("select * from userinfo where info_id=#{info_id}")`

@Results`({`

@Result`(id=true,column="info_id",property="infoId",javaType=Integer.class),`

@Result`(column="nickName",javaType=String.class,property="nickName"),`

@Result`(column="email",property="email",javaType=String.class),`

@Result`(column="user_id",property="user",one=@One(select="com.wode.mapper.UserMapper.findUserById"))`

})

public`UserInfo findInfoAndUser(@Param("info_id")intid);`

}

[Java] _纯文本查看_ _复制代码_

?

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

一对多:`@Many`

public`interface`UserMapper {

//使用注解的方式新增用户

@Insert`("insert into users values(null,#{user.userName},#{user.userPwd},#{user.userType})")`

@Options`(keyProperty="user.userId",useGeneratedKeys=true)`

public`intaddUser(@Param("user"`)User user);

//注解的方式修改用户资料---多参数传递第二种方式

@Update`("update users set user_name=#{name} where user_id=#{id}")`

public`intupdateUserNameById(@Param("name")String name,@Param("id")int`id);

//注解的方式删除用户

@Delete`("delete from users where user_id=#{id}")`

public`intdelById(@Param("id")int`id);

@Select`("select * from users")`

/** @Results({

@Result(id=true,property="userId",column="user_id",javaType=Integer.class),

@Result(property="userName",column="user_name",javaType=String.class),

@Result(property="userPwd",column="user_pwd",javaType=String.class),

@Result(property="userType",column="user_type",javaType=Integer.class)

})

*/

@ResultMap`("userMap")`

public`List<User> findAllUser();`

@Select`("select * from users where user_id=#{id}")`

@ResultMap`("userMap")`

public`User findUserById(@Param("id")intid);`

//一对多查询

@Select`("select * from users where user_id=#{id}")`

@Results`({`

@Result`(id=true,property="userId",column="user_id",javaType=Integer.class),`

@Result`(property="userName",column="user_name",javaType=String.class),`

@Result`(property="userPwd",column="user_pwd",javaType=String.class),`

@Result`(property="userType",column="user_type",javaType=Integer.class),`

@Result`(property="info",column="user_id",many=@Many(select="com.wode.mapper.UserInfoMapper.findByUser"))`

})

public`User findUserAndInfo(@Param("id")intid);`

}

[Java] _纯文本查看_ _复制代码_

?

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

public`interface`UserInfoMapper {

@Select`("select * from userInfo")`

@Results`({`

@Result`(id=true,column="info_id",property="infoId",javaType=Integer.class),`

@Result`(column="nickName",javaType=String.class,property="nickName"),`

@Result`(column="email",property="email",javaType=String.class)`

})

public`List<UserInfo> findUserInfo();`

//user中外键查询数据

@Select`("select * from userInfo where user_id=#{id}")`

@Results`({`

@Result`(id=true,column="info_id",property="infoId",javaType=Integer.class),`

@Result`(column="nickName",javaType=String.class,property="nickName"),`

@Result`(column="email",property="email",javaType=String.class)`

})

public`UserInfo findByUser(@Param("id")intid);`

@Select`("select * from userInfo where info_id=#{infoId}")`

@Results`({`

@Result`(id=true,column="info_id",property="infoId",javaType=Integer.class),`

@Result`(column="nickName",javaType=String.class,property="nickName"),`

@Result`(column="email",property="email",javaType=String.class),`

@Result`(column="user_id",property="user",one=@One(select="com.wode.mapper.UserMapper.findUserById"))`

})

public`UserInfo findInfoAndUser(@Param("infoId")intinfoId);`

}

[Java] _纯文本查看_ _复制代码_

?

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

多对多:`@Many@One`

public`interface`UserMapper {

//使用注解的方式新增用户

@Insert`("insert into users values(null,#{user.userName},#{user.userPwd},#{user.userType})")`

@Options`(keyProperty="user.userId",useGeneratedKeys=true)`

public`intaddUser(@Param("user"`)User user);

//注解的方式修改用户资料---多参数传递第二种方式

@Update`("update users set user_name=#{name} where user_id=#{id}")`

public`intupdateUserNameById(@Param("name")String name,@Param("id")int`id);

//注解的方式删除用户

@Delete`("delete from users where user_id=#{id}")`

public`intdelById(@Param("id")int`id);

@Select`("select * from users")`

/** @Results({

@Result(id=true,property="userId",column="user_id",javaType=Integer.class),

@Result(property="userName",column="user_name",javaType=String.class),

@Result(property="userPwd",column="user_pwd",javaType=String.class),

@Result(property="userType",column="user_type",javaType=Integer.class)

})

*/

@ResultMap`("userMap")`

public`List<User> findAllUser();`

@Select`("select * from users where user_id=#{id}")`

@ResultMap`("userMap")`

public`User findUserById(@Param("id")intid);`

//多对多查询

@Select`("select * from users where user_id=#{id}")`

@Results`({`

@Result`(id=true,property="userId",column="user_id",javaType=Integer.class),`

@Result`(property="userName",column="user_name",javaType=String.class),`

@Result`(property="userPwd",column="user_pwd",javaType=String.class),`

@Result`(property="userType",column="user_type",javaType=Integer.class),`

@Result`(property="course",column="user_id",many=@Many(select="com.wode.mapper.CourseMapper.findCourseByUser"))`

})

public`User findUserAndCourse(@Param("id")intid);`

@Select`("select * from users where user_id in (select user_id from user_course where course_id=#{courseId})")`

@Results`({`

@Result`(id=true,property="userId",column="user_id",javaType=Integer.class),`

@Result`(property="userName",column="user_name",javaType=String.class),`

@Result`(property="userPwd",column="user_pwd",javaType=String.class),`

@Result`(property="userType",column="user_type",javaType=Integer.class)`

})

public`User findUserByCourse(@Param("id")intcourseId);`

}

[Java] _纯文本查看_ _复制代码_

?

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

public`interface`UserInfoMapper {

@Select`("select * from userInfo")`

@Results`({`

@Result`(id=true,column="info_id",property="infoId",javaType=Integer.class),`

@Result`(column="nickName",javaType=String.class,property="nickName"),`

@Result`(column="email",property="email",javaType=String.class)`

})

public`List<UserInfo> findUserInfo();`

//user中外键查询数据

@Select`("select * from userInfo where user_id=#{id}")`

@Results`({`

@Result`(id=true,column="info_id",property="infoId",javaType=Integer.class),`

@Result`(column="nickName",javaType=String.class,property="nickName"),`

@Result`(column="email",property="email",javaType=String.class)`

})

public`UserInfo findByUser(@Param("id")intid);`

@Select`("select * from userInfo where info_id=#{infoId}")`

@Results`({`

@Result`(id=true,column="info_id",property="infoId",javaType=Integer.class),`

@Result`(column="nickName",javaType=String.class,property="nickName"),`

@Result`(column="email",property="email",javaType=String.class),`

@Result`(column="user_id",property="user",one=@One(select="com.wode.mapper.UserMapper.findUserById"))`

})

public`UserInfo findInfoAndUser(@Param("infoId")intinfoId);`

}

[Java] _纯文本查看_ _复制代码_

?

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

public`interface`CourseMapper {

@Select`("select * from course where course_id=#{id}")`

@Results`({`

@Result`(id=true,column="course_id",property="courseId",javaType=Integer.class),`

@Result`(column="code",property="code",javaType=String.class),`

@Result`(column="name",property="name",javaType=String.class)`

})

public`Course findCourseById(@Param("id")intid);`

@Select`("select * from course where course_id in (select course_id from user_course where user_id=#{id})")`

@Results`({`

@Result`(id=true,column="course_id",property="courseId",javaType=Integer.class),`

@Result`(column="code",property="code",javaType=String.class),`

@Result`(column="name",property="name",javaType=String.class)`

})

public`Course findCourseByUser(@Param("uId")intid);`

@Select`("select * from course where course_id=#{courseId}")`

@Results`({`

@Result`(id=true,column="course_id",property="courseId",javaType=Integer.class),`

@Result`(column="code",property="code",javaType=String.class),`

@Result`(column="name",property="name",javaType=String.class),`

@Result`(property="users",column="course_id",many=@Many(select="com.wode.mapper.UserMapper.findUserByCourse"))`

})

public`Course findCourseAndUser(@Param("courseId")intcourseId);`

}