Mybatis【8】-- Mybatis返回List或者Map以及模糊查询怎么搞?

使用mybatis的时候,常常发现一个需求,我怎么知道本身是否是增长/修改/删除数据成功了?java

好像执行sql以后都没有结果的。其实不是的,增删改的sql执行以后都会有一个int类型的返回值,表示的意思是这个操做影响的行数。举个例子,若是咱们插入一行成功的话,影响的就是一行。若是咱们修改一条数据成功的话,那么咱们也是影响了一行。若是咱们删除一条数据成功的话,那么返回的就是1,表示影响了一行,若是没有删除任何的数据,那么返回值就是0。因此咱们常常使用返回值是否大于0来表示是否是修改(增长/更新/删除都算是一种修改)数据成功。sql

好比咱们插入数据的时候:mybatis

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

接口定义:学习

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

接口实现:spa

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方法:code

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

结果以下:blog

这样的方式对于update以及删除方法都是有效的,这是由于他们都是属于修改方法,属于读写模式,而select方式是属于只读方式。接口

【做者简介】
秦怀,公众号【秦怀杂货店】做者,技术之路不在一时,山高水长,纵使缓慢,驰而不息。这个世界但愿一切都很快,更快,可是我但愿本身能走好每一步,写好每一篇文章,期待和大家一块儿交流。rem

此文章仅表明本身(本菜鸟)学习积累记录,或者学习笔记,若有侵权,请联系做者核实删除。人无完人,文章也同样,文笔稚嫩,在下不才,勿喷,若是有错误之处,还望指出,感激涕零~get

相关文章
相关标签/搜索