Mybatis学习笔记13 - 动态sql之set标签
2024-09-07 02:32:40
示例代码:
接口定义:
package com.mybatis.dao; import com.mybatis.bean.Employee; public interface EmployeeMapper {
public void updateEmp(Employee employee);
public void updateEmployee(Employee employee);
} mapper定义:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mybatis.dao.EmployeeMapper">
<update id="updateEmp">
update tbl_employee
<set>
<if test="lastName!=null">
last_name=#{lastName},
</if>
<if test="email!=null">
email=#{email},
</if>
<if test="gender!=null">
gender=#{gender}
</if>
</set>
where id=#{id}
</update> <update id="updateEmployee">
update tbl_employee
<trim prefix="set" suffixOverrides=",">
<if test="lastName!=null">
last_name=#{lastName},
</if>
<if test="email!=null">
email=#{email},
</if>
<if test="gender!=null">
gender=#{gender}
</if>
</trim>
where id=#{id}
</update>
</mapper> 测试代码:
package com.mybatis.demo; import com.mybatis.bean.Employee;
import com.mybatis.dao.EmployeeMapper;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test; import java.io.IOException;
import java.io.InputStream;
import java.util.List; public class MyTest {
public SqlSessionFactory getSqlSessionFactory() throws IOException {
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
return new SqlSessionFactoryBuilder().build(inputStream);
} @Test
public void test() throws IOException {
SqlSessionFactory sqlSessionFactory = getSqlSessionFactory();
SqlSession openSession = sqlSessionFactory.openSession(true);
try {
EmployeeMapper mapper = openSession.getMapper(EmployeeMapper.class);
mapper.updateEmp(new Employee(1, "good", null, null));
mapper.updateEmployee(new Employee(5, "test", null, null));
} finally {
openSession.close();
}
}
}
最新文章
- 利用xtrabackup备份mysql数据库
- PHP常用数组函数介绍
- C# tabconctrol切换事件
- linux Bash
- Unity3D研究院之使用Animation编辑器编辑动画(五十四)
- C++Premer Plus学习(五)&mdash;&mdash;函数探幽
- 【JavsScript】Spine的作者曾经是Backbone的作者
- 十六进制转十进制 - C
- 1230.2——iOS准备(阅读开发者文档时的笔记)
- Android基础知识03—Activity的基本用法
- Maven-设置默认Java编译版本
- flask源码剖析
- mysql delete两种关联删除方式
- Django:视图views(一)
- 兼容IE8的video写法
- 12. ajax、datagrid请求传参实例
- 开启Centos系统的SSH服务
- [2017BUAA软工]结对项目
- pandas将字段中的字符类型转化为时间类型,并设置为索引
- C++中标准输入流cin与Ctrl+Z使用时的问题