MyBatis 入門(mén)項(xiàng)目筆記

1.前提準(zhǔn)備(新建一個(gè)maven項(xiàng)目)

依賴(lài)
mybatis包

            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.4.5</version>

jdbc驅(qū)動(dòng)包

            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.30</version>

junit測(cè)試包

            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.11</version>

數(shù)據(jù)源配置
mysql中新建表

CREATE DATABASE test;
CREATE TABLE `userinfo` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(20) NOT NULL,
  `password` varchar(50) NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `username` (`username`)
) ENGINE=InnoDB AUTO_INCREMENT=27 DEFAULT CHARSET=utf8

配置文件mysql.properties

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8
jdbc.username=root
jdbc.password=12345678

2.使用mybatis

mybatis進(jìn)行數(shù)據(jù)庫(kù)操作流程
1)加載mybatis配置文件構(gòu)建sqlSessionFactory
2)通過(guò)sql.openSessionFactory()獲取session
3)加載映射關(guān)系session.getMapper()返回給mapper接口實(shí)例
4)mapper接口實(shí)例調(diào)用方法操作數(shù)據(jù)庫(kù)
分層結(jié)構(gòu)

mybatis.PNG

example
這個(gè)包名其實(shí)不太正確,改為pojo或者domain都比較合適。這個(gè)包下的類(lèi)的屬性對(duì)應(yīng)數(shù)據(jù)表中的屬性,加上構(gòu)造函數(shù)getter,setter,用于創(chuàng)建返回的數(shù)據(jù)庫(kù)查詢(xún)對(duì)象
mapper
這個(gè)包下的是映射配置。UserMaper是一個(gè)接口,里面聲明你需要對(duì)某個(gè)數(shù)據(jù)庫(kù)表的增刪查改方法。UserMapper.xml則是配置接口中方法的實(shí)現(xiàn)。
深入了解:http://www.mybatis.org/mybatis-3/zh/sqlmap-xml.html
service
服務(wù)包,這里用于測(cè)試mybatis
tools
用于加載mybatis配置文件,構(gòu)建sqlSession工廠,返回能使用映射的session
mybatis.cfg.xml
mybatis的配置文件,重要的參數(shù)有properties(引入文件),typeAliases(給實(shí)體類(lèi)別名,支持自動(dòng)掃描),environments(事務(wù)管理,數(shù)據(jù)源),mappers(映射關(guān)系文件)
深入了解:http://www.mybatis.org/mybatis-3/zh/configuration.html

3.注意事項(xiàng)

java編譯時(shí)默認(rèn)忽略掉java文件夾的非java文件,因此,mapper下映射配置表xml文件會(huì)出現(xiàn)無(wú)法找到的情況,因此在pom.xml中包含一下:

    <build>
        <resources>
            <!--編譯java下的xml文件使mybatis配置文件能找到-->
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
            </resource>
        </resources>
    </build>

4.運(yùn)行

在UserService下寫(xiě)好方法,方法上注解@Test,在運(yùn)行該方法,查看數(shù)據(jù)庫(kù)變化即可。

public class UserService {

   //新增用戶(hù)
   @Test
   public void insertUser(){
       SqlSession session = DBTools.getSession();
       UserMapper mapper = session.getMapper(UserMapper.class);
       UserBean user = new UserBean("hegoudai", "12346789");
       try{
           mapper.insertUser(user);
           System.out.println(user.toString());
           session.commit();
       }catch(Exception e){
           e.printStackTrace();
           session.rollback();
       }
   }
}

源碼:https://github.com/hegoudai/Learning-Spring/tree/master/mybatis

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1. 簡(jiǎn)介 1.1 什么是 MyBatis ? MyBatis 是支持定制化 SQL、存儲(chǔ)過(guò)程以及高級(jí)映射的優(yōu)秀的...
    笨鳥(niǎo)慢飛閱讀 6,248評(píng)論 0 4
  • Java數(shù)據(jù)持久化之mybatis 一. mybatis簡(jiǎn)介 1.1 原始的JDBC操作: Java 通過(guò) Jav...
    小Q逛逛閱讀 5,412評(píng)論 0 16
  • 你這輩子一直要做的就是修正好自己的三觀,并時(shí)刻謹(jǐn)記用自己的態(tài)度去影響別人,而不是被旁人左右了自己。今天英語(yǔ)課...
    想哭時(shí)也要笑閱讀 207評(píng)論 0 0
  • 經(jīng)過(guò)一個(gè)冬天的蟄伏,萬(wàn)物即將復(fù)蘇,由冬季的灰色逐漸轉(zhuǎn)變成綠色,大自然就是一個(gè)神奇的魔術(shù)師,她以風(fēng)雨雷電為樂(lè)譜、以燦...
    行走的年輪閱讀 235評(píng)論 0 1
  • 在只聽(tīng)見(jiàn)書(shū)名那會(huì),曾經(jīng)一度以為毛姆的《月亮和六便士》講的是一個(gè)童話(huà)故事。 后來(lái),我失策了,這哪里...
    你好呀我是慧慧閱讀 192評(píng)論 0 0

友情鏈接更多精彩內(nèi)容