特斯拉回應計劃減少體驗店:上海門店為 21 家,沒有計劃減少到 10 家
阿新 • • 發佈:2021-08-03
1、CRUD
1.1namespace
namespace中的包名必須和Dao/mapper介面包名一致
1.2select
選擇,查詢語句
id:就是對應的namespace中的方法名
resultType:Sql語句執行的返回值型別
parameterType:引數型別
編寫介面
User getUserById(int id);
編寫介面對應的Mapper中語句
<select id="getUserById" parameterType="int" resultType="com.aostarit.entity.User"> select * from mybatis.user where id = #{id} </select>
測試:
@Test public void getUserById() { //獲得sqlSession物件 SqlSession sqlsession = MybatisUtil.getSqlsession(); //執行SQL UserMapper mapper = sqlsession.getMapper(UserMapper.class); User user = mapper.getUserById(1); System.out.println(user); //關閉sqlSession sqlsession.close(); }
1.3Insert
<!--物件中的屬性可以直接取出來 -->
<insert id="addUser" parameterType="com.aostarit.entity.User">
insert into mybatis.user (id, name, pwd) values (#{id},#{name},#{pwd})
</insert>
1.4update
<update id="updateUser" parameterType="com.aostarit.entity.User"> update mybatis.user set name = #{name},pwd = #{pwd} where id = #{id} </update>
1.5delete
<delete id="deleteUser" parameterType="int">
delete from mybatis.user where id = #{id}
</delete>
注意點:增刪改查需要提交事務
分許錯誤:
標籤不要匹配錯誤:例如:select標籤中必須寫select語句
resources繫結mapper,需要使用路徑
程式配置檔案必須符合規範!
NullPointException,沒有註冊到資源!
輸出的xml檔案中存在中文亂碼問題
maven資源沒有匯出問題!
mybatis核心配置檔案中mapper對映器路徑不能帶.,需要用/代替
<!--對映器-->
<mappers>
<mapper resource="mapper/UserMapper.xml"/>
</mappers>
2、Map和模糊查詢拓展
2.1假設我們的實體類、或者資料庫中的表、欄位或者引數過多,我們應該考慮使用Map!
<insert id="addUserMap" parameterType="map">
insert into mybatis.user (id, name, pwd) values (#{userId},#{userName},#{userPwd})
</insert>
public void addUser2() {
//獲得sqlSession物件
SqlSession sqlsession = MybatisUtil.getSqlsession();
UserMapper mapper = sqlsession.getMapper(UserMapper.class);
HashMap<String, Object> userMap = new HashMap<String, Object>();
userMap.put("userId",10);
userMap.put("userName","11234");
userMap.put("userPwd","1234343");
int result = mapper.addUserMap(userMap);
if(result>0){
System.out.println("插入成功");
}
//提交事務
sqlsession.commit();
//關閉sqlSession
sqlsession.close();
}
Map傳遞引數,直接在sql中取出物件即可
物件傳遞引數,直接在sql中取物件的屬性即可
只有一個基本型別引數的情況下,可以直接在sql取到!
多個引數用Map,或者註解!
2.2模糊查詢
1、Java程式碼執行的時候,傳遞萬用字元% %
List<User> userLike = mapper.getUserLike("%李%");
2、在sql拼接中使用萬用字元!
<select id="getUserLike" resultType="com.aostarit.entity.User">
select * from mybatis.user where name like "%"#{value}"%"
</select>
本文來自部落格園,作者:IT波少,轉載請註明原文連結:https://www.cnblogs.com/swpu-wxb/p/15114492.html