1. 程式人生 > >mybatis第二天——大綱待更新

mybatis第二天——大綱待更新

pri list ont 更新 動態 mybatis like -s 包括

  大綱摘要:

    1、輸入映射和輸出映射

      a) 輸入參數映射

      b) 返回值映射

    2、動態sql

      a) If

      b) Where

      c) Foreach

      d) Sql片段

    3、關聯查詢

      a) 一對一關聯

      b) 一對多關聯

    4、Mybatis整合spring

一、輸入映射和輸出映射

  1.輸入映射

  也就是day01提到的入參

  傳遞簡單類型:見day01,這裏不再贅述

  傳遞POJO包裝類型:

      開發中通過pojo傳遞查詢條件 ,查詢條件是綜合的查詢條件,

      不僅包括用戶查詢條件還包括其它的查詢條件(比如將用戶購買商品信息也作為查詢條件),

      這時可以使用包裝對象傳遞輸入參數。即Pojo類中包含pojo

  創建POJO包裝類QueryVo:

package cn.pojo;

/**
 * view object 視圖層對象,用來做一些查詢等,拓展性較好
 * @author jiangbei01
 *
 */
public class QueryVo {

    private User user;

    public User getUser() {
        return user;
    }

    public void setUser(User user) {
        this.user = user;
    }
    
}

   mapper文件入參設置SQL:

<!-- 測試入參的SQL -->
    <select id="findUserByVo" parameterType="cn.pojo.QueryVo" resultType="cn.pojo.User">
        SELECT * FROM user where username like ‘%${user.username}%‘ AND sex=#{user.sex}
    </select>

  接口中增加查詢方法

public interface UserMapper {

    User findById(Integer id);
    
//返回值是list集合時,mybatis會自動調用selectList()方法 List<User> findByName(String username); void insertUser(User user); List<User> findUserByVo(QueryVo vo); }

  測試函數:

@Test
    public void findUserByVo() throws Exception{
        SqlSession session = factory.openSession();
        //通過getMapper()方法實例化實現類
        UserMapper mapper = session.getMapper(UserMapper.class);
        //創建vo對象
        QueryVo vo = new QueryVo();
        //創建vo的屬性user
        User user = new User();
        user.setUsername("宋江");
        user.setSex("2");
        user.setBirthday(new Date());
        user.setAddress("北京");
        vo.setUser(user);
        List<User> list = mapper.findUserByVo(vo);
        System.out.println(list);
        
    }

mybatis第二天——大綱待更新