一、什麼是使用註解開發 使用註解開發就是無需再配置Mapper.xml文件,直接在介面中利用註解實現SQL語句。 二、為什麼要使用註解開發 正如官方文檔所說: 使用註解來映射簡單語句會使代碼顯得更加簡潔。 但對於稍微複雜一點的語句,Java 註解不僅力不從心,還會讓你本就複雜的 SQL 語句更加混亂 ...
一、什麼是使用註解開發
使用註解開發就是無需再配置Mapper.xml文件,直接在介面中利用註解實現SQL語句。
二、為什麼要使用註解開發
正如官方文檔所說:
使用註解來映射簡單語句會使代碼顯得更加簡潔。
但對於稍微複雜一點的語句,Java 註解不僅力不從心,還會讓你本就複雜的 SQL 語句更加混亂不堪。 因此,如果你需要做一些很複雜的操作,最好用 XML 來映射語句。
三、如何使用註解進行開發
1.刪掉原來的UserMapper.xml
2.修改UserMapper介面
package com.jms.dao; import com.jms.pojo.User; import org.apache.ibatis.annotations.Select; import java.util.List; public interface UserMapper { @Select("select * from user") List<User> getUserList(); }
在方法上面的那就是註解。
3.修改核心配置文件mybatis-config.xml中的mapper映射
<mappers> <mapper class="com.jms.dao.UserMapper"/> </mappers>
原來是映射xml文件,現在我們修改為映射介面。
4.junit測試
package com.jms.dao; import com.jms.pojo.User; import com.jms.utils.MyBatisUtil; import org.apache.ibatis.session.SqlSession; import org.junit.Test; import java.util.List; public class UserMapperTest { @Test public void test() { SqlSession sqlSession = MyBatisUtil.getSqlSession(); UserMapper userMapper = sqlSession.getMapper(UserMapper.class); List<User> userList = userMapper.getUserList(); for (User user : userList) { System.out.println(user); } } }
測試結果如下:
測試結果沒有問題。
那麼問題就來了,我們究竟應該在xml文件中去映射呢還是用註解進行映射呢。上面其實已經說得很明白了,簡單的語句用註解映射更加簡潔,而複雜的語句則應該用xml文件進行映射。正如官方文檔的一句話:選擇何種方式來配置映射,以及認為是否應該要統一映射語句定義的形式,完全取決於你和你的團隊。 換句話說,永遠不要拘泥於一種方式,你可以很輕鬆的在基於註解和 XML 的語句映射方式間自由移植和切換。
技術沒有高低好壞之分,有區別的是使用技術的人。
(本文僅作個人學習記錄用,如有紕漏敬請指正)