1、使用对象进行传参
```java
/*标准语法:#{属性名,javatType=类型名 jdbcType=数据类型},后两项可以通过反射来获取,所以可省略。select标签中的id表示此sql语句与DAO接口中叫id值得方法对应(映射),resultType表示sql语句返回结果与java对象的映射。
*/
<select id="selectMultiParam" resultType="com.bjpowernode.domain.Student">
selext id,name,email,age from student where name=#{paramname} or age=#{paramage}
</select>
//通过对象的属性名和#{}来传入要使用的条件
public class QueryParam{
private String paramage;
private Integer paramname;
****省略set(),get(),带参构造器****
}
//DAO对接口的操作方法
public interface StudentDao{
List<Student> selectMultiObject(QueryParam param);
}
//测试类
@test
public class test{
QueryParam para=new QueryParam(20,"张飞");
SqlSession sqlSession=MyBatisUtils.getSqlSession();
StudentDao dao=sqlSession.getMapper(StuedentDao.class);
List<Student> students=dao.selectMultiParam(para);
}
2、使用map进行传参
```java
<select id="selectMultiMap" resultType="com.bjpowernode.domain.Student">
select id,name,email,age from student where name=#{myname} or age=#{myage}
//#{}中的内容为selectMutilMap方法的map参数中的key值,通过key找到对应的条件value
</select>
public interface StudentDao{
List<Student> selectMultiObject(Map<String,Object> map);
}
public class test{
Map<String,Object> data=new HashMap<>();
data.put("myname","张三");
data.put("age",28);
SqlSession sqlSession=MyBatisUtils.getSqlSession();
StudentDao dao=sqlSession.getMapper(Stuedent.class);
List<Student> students=dao.selectMultiObject(data);
System.out.println(students.toString());
3、动态sql语言之if
<select id="selectStudentIf" resultType="com.bjpowernode.domain.Student">
select id,name,email,age from student
where 1=1
//<if:test="使用java对象的属性作为判断料件">
<if test="name != null and name !=''">
name =#{name}
</if>
<if test="age>0">
or age>#{age}
</if>
</select>
4、动态sql之where
<select id="selectStudentIf" resultType="com.bjpowernode.domain.Student">
select id,name,email,age from student
where 1=1
//<if:test="使用java对象的属性作为判断料件">
<where>
<if test="name != null and name !=''">
name =#{name}
</if>
<if test="age>0">
or age>#{age}
</if>
</where>
</select>
5、动态sql之foreach(主要用在sql的in语句中)
<select id="selectForeachOne" resultType="com.bjpowernode.domain.Stuent">
<foreach collection="list" item="muid" open="(" close=")" separator=",">/*collection表示接口中的方法参数的类型,item表示数组的变量,open是循环开始的字符,close是循环结束的字符,separator是分隔符*/
</foreach>