1.传递参数使用@Param(“参数命名的名字”) 参数类型 参数
第一步:接口里面的定义
具体代码:
public List<Student> selectMultiParam(@Param("myname") String name,@Param("myage") int age);
第二步:
<select id="selectMultiParam" resultType="pojo.Student">
select id ,name,email,age from student where name=#{myname} or age=#{myage}
</select>
2.getMapper的使用
//6.【重要】执行指定的sql语句 sql的映射文件namespace+“.”+id
//String sqlid="dao.StudentDao"+"."+"selectStudents";
StudentDao dao=sqlSession.getMapper(StudentDao.class);
//7.执行语句
// List<Student> studentList=sqlSession.selectList(sqlid);
List<Student> studentList=dao.selectStudents();
3.使用对象传参
第一步:定义一个类
package vo;
public class QueryParam {
private String Param_name;
private Integer Pram_age;
public QueryParam(String param_name, Integer pram_age) {
Param_name = param_name;
Pram_age = pram_age;
}
public QueryParam() {
}
public String getParam_name() {
return Param_name;
}
public void setParam_name(String param_name) {
Param_name = param_name;
}
public Integer getPram_age() {
return Pram_age;
}
public void setPram_age(Integer pram_age) {
Pram_age = pram_age;
}
}
第二步:在接口定义查询的方式是类查询
public List<Student> selectMultiObject(QueryParam param);
第三步:在mapper写查询语句
简化版
第四步:
List studentList=dao.selectMultiObject(param);
这个param就是传入的对象
@Test
public void test_object() throws IOException {
//1.定义mybatis的主配置文件
String config = "mybatis1.xml";
//2.读取这个config表示的文件
InputStream in= Resources.getResourceAsStream(config);
//3.创建SqlSessionFactoryBuilder对象
SqlSessionFactoryBuilder builder =new SqlSessionFactoryBuilder();
//4.创建SqlSessionFactory对象
SqlSessionFactory factory=builder.build(in);
//5.【重要】获取SqlSession对象,从SqlSessionFactory里面取
SqlSession sqlSession=factory.openSession();
//6.【重要】执行指定的sql语句 sql的映射文件namespace+“.”+id
//String sqlid="dao.StudentDao"+"."+"selectStudents";
StudentDao dao=sqlSession.getMapper(StudentDao.class);
//7.执行语句
// List<Student> studentList=sqlSession.selectList(sqlid);
QueryParam param=new QueryParam("张三",28);
List<Student> studentList=dao.selectMultiObject(param);
//8.输出结果
studentList.forEach(stu-> System.out.println(stu));
//9.关闭SqlSession对象
sqlSession.close();
}