我有带有主键的表,该表由几列组成。有带有特殊Oracle挂钩的批量插入- ignore_row_on_dupkey_index 。该挂钩允许忽略唯一约束异常,重复记录只是被忽略,而非重复记录则可以成功插入。使用简单的jdbc,我可以通过代码轻松返回主键(由几列组成):
try(PreparedStatement st = connectio.preparedStatement("insert /* ignore_row_on_dupkey(Table_name, Constraint) */ into TABLE(c1, c2, c3) values(?,?,?)", new String [] {"c1", "c2"})) {
//Batch insert then get generated keys
}
然后我可以通过遍历返回的键来分析重复项。
我想通过MyBatis实现相同的目标。我发现了 Options 注释,该注释可以通过设置属性 useGeneratedKeys 和 keyColumn 来实现。问题是我的主键很复杂,而 keyColumn 的类型是String。 另外,我也不想使用 SelectKey 注释。
所以我的问题是我可以返回几个列的值,如何返回MyBatis?
谢谢。
答案 0 :(得分:1)
final GoogleSignIn googleSignIn = GoogleSignIn();
bool _isAuth = false;
@override
void initState() {
print(_isAuth);
if (googleSignIn.currentUser != null) {
setState(() {
print(_isAuth);
_isAuth = true;
});
}
super.initS
允许指定多个列。这是the documentation的相关部分(请注意最后一句话):
keyColumn | (仅插入和更新)使用生成的键设置表中的列名称。仅当键列不是表中的第一列时,才在某些数据库(如PostgreSQL)中需要这样做。如果期望生成多个列,则可以是用逗号分隔的列名称列表。
还有mybatis tests的示例:
keyColumn