mybatis第二天——大綱待更新
阿新 • • 發佈:2017-05-22
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第二天——大綱待更新