博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MyBatis学习笔记(四) 注解
阅读量:6087 次
发布时间:2019-06-20

本文共 6481 字,大约阅读时间需要 21 分钟。

    使用MyBatis注解开发,可以省去类配置文件,简洁方便。但是比较复杂的SQL和动态SQL还是建议书写类配置文件。
注解还是不推荐使用的。只是了解了解!
简单的CRUD可以使用注解。简单写写。
    把之前的例子改成使用注解的。
 
UserMapper.java
 
1 package com.cy.mybatis.mapper;  2   3 import java.util.List;  4 import java.util.Map;  5   6 import org.apache.ibatis.annotations.Delete;  7 import org.apache.ibatis.annotations.Insert;  8 import org.apache.ibatis.annotations.Options;  9 import org.apache.ibatis.annotations.Param; 10 import org.apache.ibatis.annotations.Result; 11 import org.apache.ibatis.annotations.ResultMap; 12 import org.apache.ibatis.annotations.Results; 13 import org.apache.ibatis.annotations.Select; 14 import org.apache.ibatis.annotations.Update; 15  16 import com.cy.mybatis.beans.UserBean; 17  18 public interface UserMapper { 19     // 简单的增删改查可以使用注解 20     // 注解+配置文件 21      22     /** 23      * 新增用戶 24      * @param user 25      * @return 26      * @throws Exception 27      */ 28     @Insert("insert into t_user value (null,user.username,user.password,user.account)") 29     @Options(useGeneratedKeys=true,keyProperty="user.id") 30     public int insertUser(@Param("user")UserBean user) throws Exception; 31      32      33     /** 34      * 修改用戶 35      * @param user 36      * @param id 37      * @return 38      * @throws Exception 39      */ 40     @Update(" update t_user set username=#{u.username},password=#{u.password},account=#{u.account} where id=#{id}") 41     public int updateUser (@Param("u")UserBean user,@Param("id")int id) throws Exception; 42      43      /** 44       * 刪除用戶 45       * @param id 46       * @return 47       * @throws Exception 48       */ 49     @Delete(" delete from t_user where id=#{id}  ") 50     public int deleteUser(int id) throws Exception; 51      52      53     /** 54      * 根据id查询用户信息 55      * @param id 56      * @return 57      * @throws Exception 58      */ 59      60     @Select(" select * from t_user where id=#{id}") 61     @Results({ 62          63         @Result(id=true,property="id",column="id",javaType=Integer.class), 64         @Result(property="username",column="username",javaType=String.class), 65         @Result(property="password",column="password",javaType=String.class), 66         @Result(property="account",column="account",javaType=Double.class) 67     }) 68     public UserBean selectUserById(int id) throws Exception; 69      /** 70       * 查询所有的用户信息 71       * @return 72       * @throws Exception 73       */ 74      75     @Select(" select * from t_user") 76     @ResultMap("userMap") 77     public List
selectAllUser() throws Exception; 78 79 80 /** 81 * 批量增加 82 * @param user 83 * @return 84 * @throws Exception 85 */ 86 public int batchInsertUser(@Param("users")List
user) throws Exception; 87 88 /** 89 * 批量删除 90 * @param list 91 * @return 92 * @throws Exception 93 */ 94 public int batchDeleteUser(@Param("list")List
list) throws Exception; 95 96 97 /** 98 * 分页查询数据 99 * @param parma100 * @return101 * @throws Exception102 */103 public List
pagerUser(Map
parmas) throws Exception;104 105 /**106 * 107 * 分页统计数据108 * @param parma109 * @return110 * @throws Exception111 */112 public int countUser(Map
parmas) throws Exception; 113 114 }

 UserMapper.xml

 

1 
2 3
4
5
6
7
8
9
10
11 12
13 14
15 insert into t_user values 16
17 (null,#{users.username},#{users.password},#{users.account})18
19
20 21 22
23 delete from t_user where id in (24
25 #{id}26
27 )28
29 30
31
32
33 34
37
44 45
51 52

 

 简单的一个一对一的使用注解的。
1 package com.lovo.mybatis.mapper; 2  3 import org.apache.ibatis.annotations.Insert; 4 import org.apache.ibatis.annotations.One; 5 import org.apache.ibatis.annotations.Options; 6 import org.apache.ibatis.annotations.Param; 7 import org.apache.ibatis.annotations.Result; 8 import org.apache.ibatis.annotations.ResultType; 9 import org.apache.ibatis.annotations.Results;10 import org.apache.ibatis.annotations.Select;11 12 import com.lovo.mybatis.beans.HusbandBean;13 import com.lovo.mybatis.beans.WifeBean;14 15 public interface HusbandMapper {16     17     /**18      * 保存丈夫19      * @param husband20      * @return21      */22     @Insert("insert into t_husband values (null,#{h.name})")23     @Options(useGeneratedKeys=true,keyProperty="h.id")24     public int saveHusband(@Param("h")HusbandBean husband);25     26     27     /**28      * 根据ID查询丈夫资料29      * @param id30      * @return31      */32     @Select("select * from t_husband where id=#{id}")33     @ResultType(HusbandBean.class)34     public HusbandBean findHusbandById(int id);35     36     37     38     /**39      * 根据ID查询丈夫与妻子资料40      * @param id41      * @return42      */43     @Select("select * from t_husband where id=#{id}")44     @Results({45         @Result(id=true,property="id",column="id",javaType=Integer.class),46         @Result(property="name",column="name",javaType=String.class),47         @Result(property="wife",column="id",javaType=WifeBean.class,one=@One(select="com.lovo.mybatis.mapper.WifeMapper.findWifeByHusbandId"))48     })49     public HusbandBean findHusbandAndWife(int id);50     51     52 }

 

1 package com.cy.mybatis.mapper; 2  3 import org.apache.ibatis.annotations.ResultType; 4 import org.apache.ibatis.annotations.Select; 5  6 import com.cy.mybatis.beans.WifeBean; 7  8 public interface WifeMapper { 9     10     11     @Select("select * from t_wife where fk_husband_id = #{id}")12     @ResultType(WifeBean.class)13     public WifeBean selectWifeByHusbandId(int id)throws Exception;14 15 }

 注意:使用resultType时,一定要保证,你属性名与字段名相同;如果不相同,就使用resultMap 。

 

转载于:https://www.cnblogs.com/hellokitty1/p/5229060.html

你可能感兴趣的文章
用yum安装mariadb
查看>>
一点IT"边缘化"的人的思考
查看>>
WPF 降低.net framework到4.0
查看>>
搭建一个通用的脚手架
查看>>
开年巨制!千人千面回放技术让你“看到”Flutter用户侧问题
查看>>
开源磁盘加密软件VeraCrypt教程
查看>>
本地vs云:大数据厮杀的最终幸存者会是谁?
查看>>
阿里云公共镜像、自定义镜像、共享镜像和镜像市场的区别 ...
查看>>
shadowtunnel v1.7 发布:新增上级负载均衡支持独立密码
查看>>
Java线程:什么是线程
查看>>
mysql5.7 创建一个超级管理员
查看>>
【框架整合】Maven-SpringMVC3.X+Spring3.X+MyBatis3-日志、JSON解析、表关联查询等均已配置好...
查看>>
要想成为高级Java程序员需要具备哪些知识呢?
查看>>
带着问题去学习--Nginx配置解析(一)
查看>>
onix-文件系统
查看>>
java.io.Serializable浅析
查看>>
我的友情链接
查看>>
多线程之线程池任务管理通用模板
查看>>
CSS3让长单词与URL地址自动换行——word-wrap属性
查看>>
CodeForces 580B Kefa and Company
查看>>