博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Mybatis(三)返回值四.注解配置
阅读量:5158 次
发布时间:2019-06-13

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

一. Mybatis返回值

   MyBatis中在查询进行select映射的时候,返回类型可以用resultType,也可以用resultMapresultType是直接表示返回类型的,而resultMap则是对外部ResultMap的引用,但是resultTyperesultMap不能同时存在。

 

   在MyBatis进行查询映射时,其实查询出来的每一个属性都是放在一个对应的Map里面的,其中键是属性名,值则是其对应的值。

 

   ①当提供的返回类型属性是resultType时,MyBatis会将Map里面的键值对取出赋给resultType所指定的对象对应的属性。其实MyBatis的每一个查询映射的返回类型都是ResultMap,只是当提供的返回类型属性resultType的时候,MyBatis自动的给对应的值赋给resultType所指定对象的属性。

 

   ②当提供的返回类型是resultMap时,因为Map不能很好表示领域模型,就需要自己再进一步的把它转化为对应的对象,这常常在复杂查询中很有作用(association,Collection),

  

//统计id>?记录数 public int coutUser(Integer id);//统计id>?记录数

 

二. Mybatis注解配置

 

  Mybatis中使用注解,就不需要编写mapper.xml文件,直接在接口代码中使用注解。

 

 

  1、mybatis的全局配置文件要修改,指向接口文件路

 

  2、不用编写mapper.xml文件,写接口,在接口中使用注解

 

  

@Select("select t_id as id,t_username username,t_password as password from t_user")    //@Select("select * from t_user")//不好自动填充javabean中的数据    //@ResultType(User.class)//不写没有关系    public List
selectAll(); @Select("select t_id as id,t_username username,t_password as password from t_user where t_id=#{id}") //@Select("select * from t_user where t_id=#{id}")//不好自动填充javabean中的数据 //@ResultType(User.class)//不写没有关系 public User selectById(int id); @Select("select t_id as id,t_username username,t_password as password from t_user where t_id > #{a} and t_username=#{b}") @ResultType(User.class) public List
selectByNameId(Map
map); @Select("select t_id as id,t_username username,t_password as password from t_user where t_id > #{0} and t_username=#{1}") @ResultType(User.class) public List
selectByNameId1(Integer id,String ame); @Select("select t_id as id,t_username username,t_password as password from t_user where t_id > #{id} and t_username=#{name}") @ResultType(User.class) public List
selectByNameId2(@Param("id")Integer id,@Param("name")String name); @Select("select * from t_user") @Results({@Result(property="id",column="t_id") ,@Result(property="username",column="t_username") ,@Result(property="password",column="t_password") }) public List
selectAllUsers(); @Insert("insert into t_user (t_username,t_password) values (#{username},#{password})") public int insertUser(User user); @Update("update t_user set t_username=#{username},t_password=#{password} where t_id=#{id}") public int updateUser(User user); @Delete("delete from t_user where t_id=#{a}") public int deleteUser(int id);

  3、编写测试类与以前一样,没有区别。

 

转载于:https://www.cnblogs.com/HawkFalcon/p/7987192.html

你可能感兴趣的文章
一些php文件函数
查看>>
有关快速幂取模
查看>>
Linux运维必备工具
查看>>
字符串的查找删除
查看>>
NOI2018垫底记
查看>>
快速切题 poj 1002 487-3279 按规则处理 模拟 难度:0
查看>>
Codeforces Round #277 (Div. 2)
查看>>
【更新】智能手机批量添加联系人
查看>>
NYOJ-128前缀式计算
查看>>
淡定,啊。数据唯一性
查看>>
深入理解 JavaScript 事件循环(一)— event loop
查看>>
Hive(7)-基本查询语句
查看>>
注意java的对象引用
查看>>
C++ 面向对象 类成员函数this指针
查看>>
NSPredicate的使用,超级强大
查看>>
自动分割mp3等音频视频文件的脚本
查看>>
判断字符串是否为空的注意事项
查看>>
布兰诗歌
查看>>
js编码
查看>>
Pycharm Error loading package list:Status: 403错误解决方法
查看>>