delete删除语法
需求:删除某个时间段之后 且金额大于 10元的数据
<delete id="deleteByCreateTimeAndPrice" parameterType="java.util.Map">
delete from video where create_time <![CDATA[ > ]]> #{createTime} and price <![CDATA[ >= ]]> #{price}
</delete>
为什么要转义字符:
由于MyBatis的sql写在XML里面, 有些sql的语法符号和xml里面的冲突
大于等于 <![CDATA[ >= ]]>
小于等于 <![CDATA[ <= ]]>
代码:
VideoMapper.java
public interface VideoMapper {
/**
* 删除
*/
int deleteByCreateTimeAndPrice(Map<String,Object> map);
}
VideoMapper.xml
<delete id="deleteByCreateTimeAndPrice" parameterType="java.util.Map">
delete from video where create_time <![CDATA[ > ]]> #{createTime,jdbcType=TIMESTAMP} and price <![CDATA[ < ]]> #{price,jdbcType=INTEGER}
</delete>
测试代码:
public class SqlSessionDemo {
public static void main(String [] args) throws IOException {
//读取配置文件
String resouce="config/mybatis-config.xml";
InputStream inputStream= Resources.getResourceAsStream(resouce);
//构建Session工厂
SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream);
//获取Session
try(SqlSession sqlSession=sqlSessionFactory.openSession()){
VideoMapper videoMapper=sqlSession.getMapper(VideoMapper.class);
Map<String,Object> map=new HashMap<>();
map.put("createTime","2019-12-24 22:14:00");
map.put("price",8830);
int rows=videoMapper.deleteByCreateTimeAndPrice(map);
System.out.println(rows);
}
}
}
测试截图:
删除前:
删除后:
版权声明:本文为weixin_43432438原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。