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; |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY