1. 程式人生 > 資訊 >特斯拉回應計劃減少體驗店:上海門店為 21 家,沒有計劃減少到 10 家

特斯拉回應計劃減少體驗店:上海門店為 21 家,沒有計劃減少到 10 家

​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