学科分类
目录
SSM框架

更新客户

MyBatis的更新操作在映射文件中是通过配置<update>元素来实现的。如果需要更新用户数据,可以通过如下代码配置来实现。

<!-- 更新客户信息 -->
<update id="updateCustomer" parameterType="com.itheima.po.Customer">
    update t_customer set
    username=#{username},jobs=#{jobs},phone=#{phone}
    where id=#{id}
</update>

与插入数据的配置相比,更新操作配置中的元素与SQL语句都发生了相应变化,但其属性名却没有变。为了验证配置是否正确,下面以上一小节中新插入的数据为例,来进行更新客户测试。

在测试类MybatisTest中,添加测试方法updateCustomerTest(),将id为4的用户职业修改为“programmer”,电话修改为“13311111111”,其代码如下所示。

/**
 * 更新客户
 */
@Test
public void updateCustomerTest() throws Exception{        
    // 1、读取配置文件
    String resource = "mybatis-config.xml";
    InputStream inputStream = Resources.getResourceAsStream(resource);
    // 2、根据配置文件构建SqlSessionFactory
    SqlSessionFactory sqlSessionFactory = 
new SqlSessionFactoryBuilder().build(inputStream);
    // 3、通过SqlSessionFactory创建SqlSession
    SqlSession sqlSession = sqlSessionFactory.openSession();
    // 4、SqlSession执行更新操作
    // 4.1创建Customer对象,对对象中的数据进行模拟更新
    Customer customer = new Customer();
    customer.setId(4);
    customer.setUsername("rose");
    customer.setJobs("programmer");
    customer.setPhone("13311111111");
    // 4.2执行SqlSession的更新方法,返回的是SQL语句影响的行数
    int rows = sqlSession.update("com.itheima.mapper"
            + ".CustomerMapper.updateCustomer", customer);
    // 4.3通过返回结果判断更新操作是否执行成功
    if(rows > 0){
        System.out.println("您成功修改了"+rows+"条数据!");
    }else{
        System.out.println("执行修改操作失败!!!");
    }
    // 4.4提交事务
    sqlSession.commit();
    // 5、关闭SqlSession
    sqlSession.close();
}

与添加客户的方法相比,更新操作的代码增加了id属性值的设置,并调用SqlSession的update()方法对id为1客户的职业和电话进行修改。

使用JUnit4执行updateCustomerTest()方法后,控制台的输出结果如图1所示。

图1 运行结果

此时t_customer表中的数据如图2所示。

图2 t_customer表

从图2可以看出,使用MyBatis框架已经成功更新了id为4的客户信息。

点击此处
隐藏目录