首页技术文章正文

MyBatis框架怎样添加客户?具体是怎样操作的?

更新时间:2021-05-25 来源:黑马程序员 浏览量:

1577370495235_学IT就到黑马程序员.gif

在MyBatis的映射文件中,添加操作是通过<insert>元素来实现的。例如,向数据库中的t_customer表中插入一条数据可以通过如下配置来实现。

<!-- 添加客户信息 -->
<insert id="addCustomer" parameterType="com.itheima.po.Customer">
    insert into t_customer(username,jobs,phone)
    values(#{username},#{jobs},#{phone})
</insert>
在上述配置代码中,传入的参数是一个Customer类型,该类型的参数对象被传递到语句中时,#{username}会查找参数对象Customer的username属性(#{jobs}和#{phone}也是一样),并将其的属性值传入到SQL语句中。为了验证上述配置是否正确,下面编写一个测试方法来执行添加操作。

在测试类MybatisTest中,添加测试方法addCustomerTest(),其代码如下所示。

/**
 * 添加客户
 */
@Test
public void addCustomerTest() 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.setUsername("rose");
    customer.setJobs("student");
    customer.setPhone("13333533092");
    // 4.2执行SqlSession的插入方法,返回的是SQL语句影响的行数
    int rows = sqlSession.insert("com.itheima.mapper"
                + ".CustomerMapper.addCustomer", customer);
    // 4.3通过返回结果判断插入操作是否执行成功
    if(rows > 0){
        System.out.println("您成功插入了"+rows+"条数据!");
    }else{
        System.out.println("执行插入操作失败!!!");
    }
    // 4.4提交事务
    sqlSession.commit();
    // 5、关闭SqlSession
    sqlSession.close();
}

在上述代码的第4步操作中,首先创建了Customer对象,并向Customer对象中添加了属性值;然后通过SqlSession对象的insert()方法执行插入操作,并通过该操作返回的数据来判断插入操作是否执行成功;最后通过SqlSesseion的commit()方法提交了事务,并通过close()方法关闭了SqlSession。

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

1621925434575_21.jpg

图1 运行结果

从图1可以看到,已经成功插入了1条数据。为了验证是否真的插入成功,此时查询数据库中的t_customer表,如图2所示。

1621925441311_22.jpg

图2 t_customer表

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






猜你喜欢:

MyBatis框架操作数据库有哪些步骤?

Mybatis 执行SQL命令的完整流程

Docker与虚拟机的区别【java培训】

MyBatis框架如何实现数据查询?有几种方法?

黑马程序员Java培训培训

分享到:
在线咨询 我要报名
和我们在线交谈!