如题所示,最笨的方法都是先单独写条修改语句,然后在写条查询语句,但这样频繁连接数据库未免太浪费资源 基于Mybatis ,能否实现@Update之后,返回值是更改后的目标值,或者像@Insert哪样,再加个@option啥的,把插入后的数据以实体类的形式返回
如果你查看mybatis的源码你就会发现mybatis实现update操作是这样做的 @Override public int update(Statement statement) throws SQLException { PreparedStatement ps = (PreparedStatement) statement; ps.execute(); int rows = ps.getUpdateCount(); Object parameterObject = boundSql.getParameterObject(); KeyGenerator keyGenerator = mappedStatement.getKeyGenerator(); keyGenerator.processAfter(executor, mappedStatement, ps, parameterObject); return rows; } 返回的为int类型的参数,所以如果你想使用<update>这样的标签实现这种功能估计是不可能的, 如果实在想返回参数,可以尝试这这么做: 定义一个方法 List<Object> updateReturn(); xml中编写代码 <select id="updateReturn" resultMap="BaseResultMap" > update table_name set status=1 where a='demo'; select * from table_name limit 10; </select> 但是这种方法不适合维护,还是很不建议这么做
返回的为int类型的参数,所以如果你想使用<update>这样的标签实现这种功能估计是不可能的,
如果实在想返回参数,可以尝试这这么做: