queryVo作为一个包装类,可以封装多个不同类型的成员变量,将queryVo作为输入参数,可以它的成员变量作为sql的值
1.创建QueryVo类,并将所需作参数的类型封装到QueryVo
public class QueryVo implements Serializable {
private static final long serialVersionUID = 1L;
private Tag tag;
public Tag getTag() {
return tag;
}
public void setTag(Tag tag) {
this.tag = tag;
}
}
2.在TagMapper.xml中加入(values里面填写tag.属性名)
<insert id="saveTagByQueryVo" parameterType="com.xh.mybatis.QueryVo">
INSERT INTO tag (tid,tname) VALUES(#{tag.tid},#{tag.tname})
</insert>
3.测试
/**
* 输入参数为queryvo
*/
@Test
public void test4() {
// 1. 创建SqlSessionFactoryBuilder对象
SqlSessionFactoryBuilder sessionFactoryBuilder = new SqlSessionFactoryBuilder();
// 2. 加载SqlMapConfig.xml配置文件
InputStream is = Resources.getResourceAsStream("SqlMapConfig.xml");
// 3. 创建SqlSessionFactory对象
sqlSessionFactory = sessionFactoryBuilder.build(is);
// 4. 创建SqlSession对象
SqlSession sqlSession = sqlSessionFactory.openSession();
Tag tag = new Tag();
tag.setTid(8l);
tag.setTname("一拳一个嘤嘤嘤");
QueryVo queryVo = new QueryVo();
queryVo.setTag(tag);
int count = sqlSession.insert("saveTagByQueryVo", queryVo);
// 7. 释放资源
sqlSession.close();
}