0
点赞
收藏
分享

微信扫一扫

Mybatis_day02

花明 2022-12-02 阅读 130


1.本篇总结:

  • 1、输入映射和输出映射
    a) 输入参数映射
    b) 返回值映射
  • 2、动态sql
    a) If
    b) Where
    c) Foreach
    d) Sql片段
  • 3、关联查询
    a) 一对一关联
    b) 一对多关联
  • 4、Mybatis整合spring

2 输入映射和输出映射

Mapper.xml映射文件中定义了操作数据库的sql,每个sql是一个statement,映射文件是mybatis的核心。

  • 2.1 parameterType(输入类型)
  • 2.1.1 传递简单类型

参考第一天内容。

  • 2.1.2 传递pojo对象

Mybatis使用ognl表达式解析对象字段的值,#{}或者${}括号中的值为pojo属性名称。

  • 2.1.3 传递pojo包装对象
    开发中通过pojo传递查询条件 ,查询条件是综合的查询条件,不仅包括用户查询条件还包括其它的查询条件(比如将用户购买商品信息也作为查询条件),这时可以使用包装对象传递输入参数。
    Pojo类中包含pojo。
    需求:根据用户名查询用户信息,查询条件放到QueryVo的user属性中。
  • 2.1.3.1 QueryVo.java

package cn.itheima.pojo;

import java.util.List;

public class QueryVo {

private User user;

// 利用foreach,传递多个用户id
private List<Integer> ids;

public List<Integer> getIds() {
return ids;
}

public void setIds(List<Integer> ids) {
this.ids = ids;
}

public User getUser() {
return user;
}

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

}

  • 2.1.3.2 Sql语句

SELECT * FROM user where username like ‘%刘%’

  • 2.1.3.3 Mapper文件

<select id="findUserByVo" parameterType="cn.itheima.pojo.QueryVo"
resultType="cn.itheima.pojo.User">
select * from user where username like '%${user.username}%'
and sex =#{user.sex}
</select>

  • 2.1.3.4 接口UserMapper.java

public List<User> findUserByVo(QueryVo vo);

  • 2.1.3.5 测试方法

@Test
public void testfindUserByVo() throws Exception {
SqlSession openSession = factory.openSession();
// 通过getMapper来实例化接口
UserMapper mapper = openSession.getMapper(UserMapper.class);

QueryVo vo = new QueryVo();
User user = new User();
user.setUsername("八");
user.setSex("1");
vo.setUser(user);

List<User> list = mapper.findUserByVo(vo);
System.out.println(list);

}


举报

相关推荐

java基础-day48-Mybatis02

Day-02-02

Java Mybatis 02

Mybatis入门02

Mybatis-02

day02

Day02

day10-demo02&exer02

0 条评论