mybatis 原理_图解源码 | MyBatis的Mapper原理
生活随笔
收集整理的這篇文章主要介紹了
mybatis 原理_图解源码 | MyBatis的Mapper原理
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
提到看源碼,很多同學內心的恐懼的,其實這個從人性的角度來說是非常正常的,因為人們對未知的事物,都是非常恐懼的,其次,你內心可能始終覺得,好像不會原理也還是能工作啊,你的潛意識里沒有強烈的欲望.從閱讀源碼的經歷來說,Java三大框架SSM中,Mybatis的源碼是最適合入門的.
簡單使用
這是一個簡單的Mybatis保存對象的例子
1@Test2public?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????
4????<insert?id="add"?parameterType="com.toby.mybatis.domain.User">
5????????INSERT?INTO?USER?(username,password,age)?VALUES?(#{username},#{password},#{age})
6????insert>
7mapper>
引出主題
但是在實際中,我們都不是這樣操作的,我們是通過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}
流程圖
但是我認為,一張流程圖和時序圖就看明白這期間所發生的事
總結
以上是生活随笔為你收集整理的mybatis 原理_图解源码 | MyBatis的Mapper原理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 古时有“四时八节”之说猜猜以下哪个节气是
- 下一篇: 学生证怎么在网上买高铁票