一、关于返回值
在使用mybatis做持久层时,insert、update、delete,sql语句默认是不返回被操作记录主键的,而是返回被操作记录条数;而记录条数可以直接获取,下面主要是讲解关于获取 insert 是产生的主键。
二、使用 xml 文件配置插入
1、简要阐述:实体类User,在com.dao包下:
public class User implements Serializable{
private String id;
private String name;
...
}
2、xml 的操作文件配置如下:
<!-- useGeneratedKeys="true" 把新增加的主键赋值到自己定义的keyProperty(id)中 -->
<insert id="saveUser" parameterType="com.dao.User" useGeneratedKeys="true" keyProperty="id">
insert into tbl_user ...
</insert>
3、在 service 层中就可以获取到刚新插入记录的 id 值:
//调用自定义的插入方法咯,插入新的一条记录 参数user为实体类对象
userDao.saveUser(user);
//获取新插入记录的id列的值
String id = user.getId();
三、利用注解操作
1、简要阐述:实体类User,在com.dao包下:
public class User implements Serializable{
private String id;
private String name;
...
}
2、Dao 层方法操作如下:
@Insert("INSERT INTO user ('name') VALUES (#{user.name})")
@Options(useGeneratedKeys=true, keyProperty="id")
public void saveUser(User user);
3、在 service 层中就可以获取到刚新插入记录的 id 值:
//调用自定义的插入方法咯,插入新的一条记录 参数user为实体类对象
userDao.saveUser(user);
//获取新插入记录的id列的值
String id = user.getId();
四、补充一下 xml 中转义字符
第一种方法:
扫描二维码关注公众号,回复:
15241486 查看本文章
附:XML转义字符
< | < | 小于号 |
> | > | 大于号 |
& | & | 和 |
' | ’ | 单引号 |
" | " | 双引号 |
第二种方法:
因为这个是xml格式的,所以不允许出现类似">"这样的字符,但是可以使用<![CDATA[ ]]>符号进行说明,此符号不进行解析,判断逻辑写在其内部!
mapper.xml 示例如下:
<if test="startTime != null ">
AND <![CDATA[ record_time >= #{startTime,jdbcType=DATE} ]]>
</if>