更新時間:2021-05-25 來源:黑馬程序員 瀏覽量:
在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所示。
圖1 運行結果
從圖1可以看到,已經成功插入了1條數據。為了驗證是否真的插入成功,此時查詢數據庫中的t_customer表,如圖2所示。
圖2 t_customer表
從圖2可以看出,使用MyBatis框架已成功新增了一條id為4的客戶信息。
猜你喜歡: