发布于2021-05-29 23:45 阅读(577) 评论(0) 点赞(19) 收藏(1)
在MyBatis的映射文件中,添加操作是通过元素来实现的。例如,向数据库中的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所示。
图1 运行结果
从图1可以看到,已经成功插入了1条数据。为了验证是否真的插入成功,此时查询数据库中的t_customer表,如图2所示。
图2 t_customer表
从图2可以看出,使用MyBatis框架已成功新增了一条id为4的客户信息。
原文链接:https://blog.csdn.net/cz_00001/article/details/117369103
作者:我很伤感
链接:http://www.javaheidong.com/blog/article/207850/2a5597bb7e1d713ec971/
来源:java黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 java黑洞网 All Rights Reserved 版权所有,并保留所有权利。京ICP备18063182号-2
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!