关于java:Mybatis8-Mybatis返回List或者Map以及模糊查询怎么搞

42次阅读

共计 1146 个字符,预计需要花费 3 分钟才能阅读完成。

应用 mybatis 的时候,常常发现一个需要,我怎么晓得本人是不是减少 / 批改 / 删除数据胜利了?

如同执行 sql 之后都没有后果的。其实不是的,增删改的 sql 执行之后都会有一个 int 类型的返回值,示意的意思是这个操作影响的行数。举个例子,如果咱们插入一行胜利的话,影响的就是一行。如果咱们批改一条数据胜利的话,那么咱们也是影响了一行。如果咱们删除一条数据胜利的话,那么返回的就是 1,示意影响了一行,如果没有删除任何的数据,那么返回值就是 0。所以咱们常常应用返回值是否大于 0 来示意是不是批改(减少 / 更新 / 删除都算是一种批改)数据胜利。

比方咱们插入数据的时候:

<insert id="insertStudentCacheId" parameterType="Student">
    insert into student(name,age,score) values(#{name},#{age},#{score})
</insert>

接口定义:

// 减少新学生并返回 id 返回 result
public int insertStudentCacheId(Student student);

接口实现:

    public int  insertStudentCacheId(Student student) {
        int result;
        try {sqlSession = MyBatisUtils.getSqlSession();
            result =sqlSession.insert("insertStudentCacheId", student);
            sqlSession.commit();} finally {if (sqlSession != null) {sqlSession.close();
            }
        }
        return result;
    }

Test 办法:

    @Test
    public void testinsertStudentCacheId(){Student student=new Student("helloworld",17,101);
        int result = dao.insertStudentCacheId(student);
        System.out.println("result:"+result);
    }

后果如下:

这样的形式对于 update 以及删除办法都是无效的,这是因为他们都是属于批改办法,属于读写模式,而 select 形式是属于只读形式。

【作者简介】
秦怀,公众号【 秦怀杂货店 】作者,技术之路不在一时,山高水长,纵使迟缓,驰而不息。这个世界心愿所有都很快,更快,然而我心愿本人能走好每一步,写好每一篇文章,期待和你们一起交换。

此文章仅代表本人(本菜鸟)学习积攒记录,或者学习笔记,如有侵权,请分割作者核实删除。人无完人,文章也一样,文笔稚嫩,在下不才,勿喷,如果有谬误之处,还望指出,感激不尽~

正文完
 0