mybatis mapper

mybatis









    
    
    
    
    




    INSERT INTO USER (username,birthday,sex,address)VALUES (#{username},#{birthday},#{sex},#{address})




    UPDATE  USER SET username=#{username} WHERE id=#{id}




    
        SELECT LAST_INSERT_ID()
    
    INSERT  INTO USER (username,birthday,sex,address)
    VALUES (#{username},#{birthday},#{sex},#{address})




mapper


    
        
        
        
        
        
    

    

  • namespace 命名空间是对应的mapper的全限定名称。

resultMap bean属性与数据库字段对应关系


    
    
    
    
    

  • 当Java bean 属性与数据库字段不一致时,需要一个对应关系,resultMap表示对应关系。
  • id(唯一) 用于select标签 的resultMap属性值。
  • type java bean 全限定名称。
  • property bean的属性名称。
  • column 数据库字段名称。

普通sql

select

 
  • id 对应mapper 的方法。
  • parameterType 输入参数类型。
  • resultType最小对象粒度 这里返回的数据是List
    对应的resultType 是User。
  • "#{id}" 表示占位符。

update


    UPDATE  USER SET username=#{username} WHERE id=#{id}

返回插入的id

  
    
        SELECT LAST_INSERT_ID()
    
    INSERT  INTO USER (username,birthday,sex,address)
    VALUES (#{username},#{birthday},#{sex},#{address})

聚合操作


  • resultType 这里返回的数据类型是List>
    所以resultYpe对应的最小粒度是map。

分页



@RequestMapping("fenye")
public String fenye(Model model, Integer start) {
    Map parameter = new HashMap<>();
    parameter.put("start",start*5);
    parameter.put("count",5);
    List datas = userService.fenye(parameter);
    System.out.println(datas);
    model.addAttribute("name", datas);
    return "demo";
}

动态sql操作

动态查询

    

动态更新


    update USER
      
          
              username=#{username},
          
          
              address=#{address},
          
      
     WHERE id=#{id}


  • 不用写set 最后“,” 自动删除。

动态删除


    delete from user where id in
    
        ${ids}
    

动态插入


    
        
            id,
        
        
            username,
        
        
            birthday,
        
        
            address,
        
        
            sex,
        
    




    
        
            #{id},
        
        
            #{username},
        
        
            #{birthday},
        
        
            #{address},
        
        
            #{sex},
        
    



    insert into USER() VALUES ()

联表查询

bean
public class User implements Serializable {

    private Integer id;
    private String username="";
    private String birthday;
    private String sex;
    private String address;

    private List
addressList = new ArrayList<>(); public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getBirthday() { return birthday; } public void setBirthday(String birthday) { this.birthday = birthday; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } public List
getAddressList() { return addressList; } public void setAddressList(List
addressList) { this.addressList = addressList; } @Override public String toString() { return "User{" + "id=" + id + ", username='" + username + '\'' + ", birthday='" + birthday + '\'' + ", sex='" + sex + '\'' + ", address='" + address + '\'' + ", addressList=" + addressList + '}'; } }

public class Address {
    private int id;
    private String name;
    private User user;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public User getUser() {
        return user;
    }

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


    @Override
    public String toString() {
        return "Address{" +
                "id=" + id +
                ", name='" + name + '\'' +
                '}';
    }
}    

一对一 一个地址对应一个用户

AddressMapper.xml







    
        
        
    

    
        
        
        
    


    



  • association 联合查询 相当于引入。
  • property 属性 type 指向的bean的属性名称。
  • resultMap 由namespace+resultMap的id组成。
  • 这里的select resultMap选择是address2.

一对多 一个用户对应多个地址







    
        
        
        
        
        
        
    

    


你可能感兴趣的:(mybatis mapper)