作者:肥朝
簡單使用
這是一個簡單的Mybatis儲存物件的例子
1@Test
2public void testSave() throws Exception {
3 //建立sessionFactory物件
4 SqlSessionFactory sf = new SqlSessionFactoryBuilder().
5 build(Resources.getResourceAsStream("mybatis-config.xml"));
6 //獲取session物件
7 SqlSession session = sf.openSession();
8 //建立實體物件
9 User user = new User();
10 user.setUsername("toby");
11 user.setPassword("123");
12 user.setAge(23);
13 //儲存資料到資料庫中
14 session.insert("com.toby.mybatis.domain.UserMapper.add", user);
15 //提交事務,這個是必須要的,否則即使sql發了也儲存不到資料庫中
16 session.commit();
17 //關閉資源
18 session.close();
19}
複製程式碼
1<mapper namespace="com.toby.mybatis.domain.UserMapper">
2 <!--#{}在傳入的物件中找對應的屬性值-->
3 <!--parameterType傳入的引數是什麼型別-->
4 <insert id="add" parameterType="com.toby.mybatis.domain.User">
5 INSERT INTO USER (username,password,age) VALUES (#{username},#{password},#{age})
6 </insert>
7</mapper>
複製程式碼
引出主題
但是在實際中,我們都不是這樣操作的,我們是通過Mapper介面,呼叫介面方法,就能實現CRUD操作,那麼關鍵是,這個介面究竟做了什麼事,才是我們關心的.
只要把下面這段程式碼究竟發生了什麼事弄明白,就明白,這個Mapper介面究竟做了什麼事.
1public void testGetObject() throws Exception {
2 SqlSession session = MybatisUtil.openSession();
3
4 UserMapper mapper = session.getMapper(UserMapper.class);
5 User user = mapper.get(5L);
6
7 System.out.println(user);
8 session.close();
9}
複製程式碼
1public interface UserMapper {
2
3 public void add(User user);
4 public User get(Long id);
5}
複製程式碼
流程圖
但是我認為,一張流程圖和時序圖就看明白這期間所發生的事
免費Java資料領取,涵蓋了Java、Redis、MongoDB、MySQL、Zookeeper、Spring Cloud、Dubbo/Kafka、Hadoop、Hbase、Flink等高併發分散式、大資料、機器學習等技術。
傳送門:mp.weixin.qq.com/s/JzddfH-7y…