Mybatis(三)返回值四.注解配置

一. Mybatis返回值

   MyBatis中以询问进行select映射的时候,返回路可以用resultType,也得以据此resultMap,resultType是一直表示回去路的,而resultMap则是本着标ResultMap的援,但是resultType跟resultMap不克而且设有。

 

   在MyBatis进行询问映射时,其实查询出来的诸一个性能都是置身一个应和之Map里面的,其中键是属于性名,值则是那对应之值。

 

   ①当提供的归路属性是resultType时,MyBatis会将Map里面的键值对取出赋给resultType所指定的对象对应的性质。其实MyBatis的各一个询问映射的返路且是ResultMap,只是当提供的归路属性resultType的时刻,MyBatis自动的给相应之值赋给resultType所指定对象的性质。

 

   ②当提供的归路是resultMap时,因为Map不克生好代表领域模型,就待好再进一步的管其转发为相应的目标,这常以错综复杂查询中非常有打算(association,Collection),

  

<resultMap type="com.softjx.model.User" id="UserMap">
  <result column="t_id" property="id"/>
  <result column="t_username" property="username" />
  <result column="t_password" property="password"/>
</resultMap>


 <!-- 查询数据表中的所有记录,并封装User对象集合 -->
<select id="selectAll" resultMap="UserMap">
 select * from t_user
</select>

<!-- 根据id查询数据表中的一条记录,并封装User对象 -->
<select id="selectById"  resultMap="UserMap">
 select * from t_user where t_id=#{id};
</select>

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

//统计id>?记录数

<select id="coutUser" resultType="int">
 select count(*) from t_user where t_id>#{id};
</select>

 

二. Mybatis注解配置

 

  Mybatis中运用注解,就未待编制mapper.xml文件,直接在接口代码中动用注解。

 

 

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

  <mappers>        
         <mapper class="com.softjx.dao.UserMapper"/>         
      </mappers>

 

  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<User> 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<User> selectByNameId(Map<String, Object> 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<User> 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<User> 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<User> 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、编写测试类与原先一样,没有分。

 

网站地图xml地图