2021-03-30

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>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值