
mybatis在使用代理dao的方式實作增刪改查時做什么事呢?
只有兩件事: 第一:創建代理物件
第二:在代理物件中呼叫selectList
我們讀取組態檔用到了IO里面的Resources類,讀出來的流也就是我們找到了我們要的這這些資訊,交給了構建者,構建者使用工具類給我們構建了一個工廠物件,工廠里面的openSession()給我們提供了一個session方法,什么時候呼叫selectList查詢所有的方法,創建Dao實作類增強的時候也就是創建代理物件的時候,
第一步 SqlSessionFactoryBuilder接收SqlMaoConfig.xml檔案流,構建出SqlSessionFactory物件 // SqlSessionFactoryBuilder的build()方法里面有一個XMLConfigBuilder物件,他是做什么的呢?他是用來決議XML檔案的一個構建者,通過他的parse()方法決議mybatis組態檔
第二步 SqlSessionFactory讀取SqlMapConfig.xml中連接資料庫和mapper映射資訊,用來生產出真正操作資料庫的SqlSession物件
第三步 SqlSession物件有兩大作用:1、生成介面代理物件 2、定義通用增刪改查方法
第四步 在代理物件中執行目標物件的方法
第五步 封裝結果集
模糊查詢操作:
@Test
public void testFindByName(){
List<User> users = userDao.findByName("%王%");
for(User user : users){
System.out.println(user);
}
}
xml寫法
select *from user where username like #{name}
@Test
public void testFindByName(){
List<User> users = userDao.findByName("王");
for(User user : users){
System.out.println(user);
}
}
xml寫法
select *from user where username like '%${value}%'
獲取用戶的總記錄條數
select count(id) from user;
配置插入操作后,獲取插入資料的id
<insert id="saveUser" parameterType="com.itheima.domain.User">
<selectKey keyProperty="id" keyColumn="id" resultType="int" order="AFTER">
select last_insert_id();
</selectKey>
insert into user(username,address,sex,birthday)values(#{username},#{address},#{sex},#{birthday});
</insert>
keyProperty="id" //id的屬性名稱對應物體類的
keyColumn="id" //id的類名對應表的
resultType="int" //結果集型別
order="AFTER" //什么時候執行獲取id的操作
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/274882.html
標籤:其他
上一篇:Airflow2.0+celery+redis任務調度部署及使用
下一篇:mybatis學習日志(一)
