Mybatis從0開始的例子

背景:從0開始,如果有了1,那麼就有了入門的質變,沒有了萬事開頭時的那種難受

來到這家公司已整整半年,作爲初學者剛進公司時面對springmvc+mybatis這樣自己很陌生的技術,是有點緊張的,擔心工作不能順利展開進行,幸好同事都很和氣,我慢慢的在插科打諢中會搬會用了。但這終究不是正途,總會遇見配置問題或者細節上的問題,問同事也不能及時響應,耽誤了自己工作不說,養成了蜻蜓點水,不求甚解的壞習慣。今天鎮定思痛,將mybatis從0開始自己搭建使用,發現平時不得要領的細節,在其官方文檔上都有詳細贅述,就這樣粗略掃完mybatis的官方文檔,終於得到了一些淺淺的踏實與充實感。

步驟:具體源碼傳送門

1. 找到mybatis官方文檔 (這是最科學有效的,但也最被忽視的)
2. 需要mybatis本身jar包和mysql驅動包
3. 書寫mybatis配置文件(名字自取),讀取配置文件生成SqlSessionFactory,創建SqlSession,操作數據庫

注意:

1. 這裏不再列出詳細步驟,因爲無論是官方文檔亦或是博客文章,都表述得很好。
2. 工作中常用到的是,在mybatis配置文件中,可以設置mapUnderscoreToCamelCase(是否開啓自動駝峯命名規則映射);multipleResultSetsEnabled 是否允許單一語句返回多結果集(需要兼容驅動);autoMappingBehavior 指定 MyBatis 應如何自動映射列到字段或屬性等。
3.如果插入一個對象(更新)一個對象數據,如何獲取其插入(更新)後的一些字段的值(比如id): useGeneratedKeys (僅對 insert 和 update 有用)這會令 MyBatis 使用 JDBC 的 getGeneratedKeys 方法來取出由數據庫內部生成的主鍵(比如:像 MySQL 和 SQL Server 這樣的關係數據庫管理系統的自動遞增字段),默認值:false。 keyProperty (僅對 insert 和 update 有用)唯一標記一個屬性,MyBatis 會通過 getGeneratedKeys 的返回值或者通過 insert 語句的 selectKey 子元素設置它的鍵值,默認:unset。如果希望得到多個生成的列,也可以是逗號分隔的屬性名稱列表。
<insert id="insertAuthor" useGeneratedKeys="true"
    keyProperty="id">
  insert into Author (username,password,email,bio)
  values (#{username},#{password},#{email},#{bio})
</insert>
4.resultMap 元素是 MyBatis 中最重要最強大的元素.
<resultMap id="userResultMap" type="User">
  <id property="id" column="user_id" />
  <result property="username" column="user_name"/>
  <result property="password" column="hashed_password"/>
</resultMap>

總結:對mybatis,從一開始陌生,到過程中接觸的懼怕,到最後的明白瞭然,這一個過程完全可以很短,但卻是讓我拖了半年之久。有時走的太遠,就真的忘記當時的起點在哪裏,最初的自我是什麼了。另外自己工作中對spring的AOP的理解還是不清不楚,還有spring-security,memcached和事務管理的配置也不甚明白,以後定會陸續展開從0開始的例子。具體源碼傳送門

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章