mybatis注解开发

mybatis注解开发

主要是下面4个注解
@Select @Insert @Update @Delete

001-@Select

1
2
@Select("select * from user")
List<User> findAll();

002-@Insert

1
2
@Insert("insert into user(username,address,sex,birthday)values(#{username},#{address},#{sex},#{birthday})")
void saveUser(User user);

003-@Update

1
2
@Update("update user set username=#{username},sex=#{sex},birthday=#{birthday},address=#{address} where id=#{id}")
void updateUser(User user);

004-@Delete

1
2
@Delete("delete from user where id=#{id} ")
void deleteUser(Integer userId);

005-查询一条用户

1
2
@Select("select * from user where id=#{id} ")
User findById(Integer userId);

006-模糊查询

1
2
3
//@Select("select * from user where username like #{username} ")
@Select("select * from user where username like '%${value}%' ")
List<User> findUserByName(String username);

007-查询数目

1
2
@Select("select count(*) from user ")
int findTotalUser();

008-解决数据库字段和熟悉不匹配问题

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
@Data
@ToString
public class User1 {
private Integer id1;
private String username1;
private Date birthday1;
private String sex1;
private String address1;
}
@Select("select * from user")
@Results(value={
@Result(id=true,column = "id",property = "id1"),
@Result(column = "username",property = "username1"),
@Result(column = "address",property = "address1"),
@Result(column = "sex",property = "sex1"),
@Result(column = "birthday",property = "birthday1")
})
List<User1> findAll();

009-解决其它方法也能用上面的注解问题

1
2
3
4
5
6
在results后面加上id 然后其它方法也引用这个id
@Results(id="userMap",value={
引用
@Select("select * from user where id=#{id} ")
@ResultMap("userMap")
User1 findById(Integer userId);

010-mybatis注解开发 一对多注解
A一个账户一个用户

1
2
3
4
5
6
7
8
9
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
@Select("select * from account")
@Results(id="accountMap",value = {
@Result(id=true,column = "id",property = "id"),
@Result(column = "uid",property = "uid"),
@Result(column = "money",property = "money"),
@Result(property = "user1",column = "uid",one=@One(select="com.po.pf.repository.UserRepository1.findById",fetchType= FetchType.EAGER))
})
List<Account> findAll();
 
@Select("select * from user where id=#{id} ")
User findById(Integer userId);
 
@Data
public class Account {
private Integer id;
private Integer uid;
private Double money;
//多对一(mybatis中称之为一对一)的映射:一个账户只能属于一个用户
private User1 user1;
 
B一个用户多个账户
@Select("select * from account where uid = #{userId}")
List<Account> findAccountByUid(Integer userId);
 
@Select("select * from user")
@Results(id="userMap",value={
@Result(id=true,column = "id",property = "id1"),
@Result(column = "username",property = "username1"),
@Result(column = "address",property = "address1"),
@Result(column = "sex",property = "sex1"),
@Result(column = "birthday",property = "birthday1"),
@Result(property = "accounts",column = "id",
many = @Many(select = "com.po.pf.repository.AccountRepository1.findAccountByUid",
fetchType = FetchType.LAZY))
})
List<User1> findAll();
 
 
@Data
public class User1 {
private Integer id1;
private String username1;
private Date birthday1;
private String sex1;
private String address1;
//一对多关系映射:一个用户对应多个账户
private List<Account> accounts;

  

 

posted @   __破  阅读(18)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
点击右上角即可分享
微信分享提示