#千鋒逆戰(zhàn)# Mybatis注解方式實(shí)現(xiàn)

Mybatis 注解方式

  1. 添加依賴與插件

    • 使用插件解決xml文件不能放入java包下的問(wèn)題

      <!--可以將xml文件建于java包下并且可被映射-->
      <build>
          <resources>
              <resource>
                  <directory>src/main/java</directory>
                  <includes>
                      <include>**/*.xml</include>
                  </includes>
              </resource>
          </resources>
      </build>
      
    • 相關(guān)依賴

      <dependencies>
          <dependency>
              <groupId>mysql</groupId>
              <artifactId>mysql-connector-java</artifactId>
              <version>5.1.44</version>
          </dependency>
          <dependency>
              <groupId>junit</groupId>
              <artifactId>junit</artifactId>
              <version>4.12</version>
          </dependency>
          <dependency>
              <groupId>org.mybatis</groupId>
              <artifactId>mybatis</artifactId>
              <version>3.4.6</version>
          </dependency>
          <!--幫助pojo快速生成getter和setting-->
          <dependency>
              <groupId>org.projectlombok</groupId>
              <artifactId>lombok</artifactId>
              <version>1.18.6</version>
          </dependency>
      
          <dependency>
              <groupId>log4j</groupId>
              <artifactId>log4j</artifactId>
              <version>1.2.17</version>
          </dependency>
      
      </dependencies>
      
  2. 配置Mybatis.xml配置文件

    • 使用properties標(biāo)簽導(dǎo)入db.properties的驅(qū)動(dòng)設(shè)置,設(shè)置environments標(biāo)簽屬性

      # db.properties文件
      driver=com.mysql.jdbc.Driver
      url=jdbc:mysql://localhost:3307/shop_mybatis
      username=root
      password=970809
      
      <environments default="development">
          <environment id="development">
              <transactionManager type="JDBC"/>
              <!--設(shè)置連接池-->
              <dataSource type="POOLED">
                  <property name="driver" value="${driver}"/>
                  <property name="url" value="${url}"/>
                  <property name="username" value="${username}"/>
                  <property name="password" value="${password}"/>
              </dataSource>
          </environment>
      </environments>
      
    • 使用settings標(biāo)簽添加第三方LOG4J日志功能

      <settings>
          <setting name="logImpl" value="LOG4J"/>
      </settings>
      
      # log4j.properties文件,文件名固定不可變
      # 全局日志配置
      # 日志有四個(gè)級(jí)別 :error,warn,info,debug
      log4j.rootLogger=ERROR, stdout
      # MyBatis 日志配置 ,可自行設(shè)置追蹤路徑
      log4j.logger.dao=TRACE
      # 控制臺(tái)輸出
      log4j.appender.stdout=org.apache.log4j.ConsoleAppender
      log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
      log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
      
    • 使用typeAliases標(biāo)簽 加入別名設(shè)置

      <typeAliases>s
          <package name="pojo"/>
      </typeAliases>
      
    • 映射器配置,可掃描dao包下的所有接口,如果有同名的映射配置也可掃描

       <mappers>
              <package name="dao"/>
       </mappers>
      
    • 完整配置

      <?xml version="1.0" encoding="UTF-8" ?>
      <!DOCTYPE configuration
              PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
              "http://mybatis.org/dtd/mybatis-3-config.dtd">
      <configuration>
          <properties resource="db.properties"/>
      
          <!--添加日志功能乎串,STDOUT_LOGGING不需要添加第三方j(luò)ar包-->
          <settings>
              <setting name="logImpl" value="LOG4J"/>
          </settings>
          <typeAliases>
              <package name="pojo"/>
          </typeAliases>
      
          <environments default="development">
              <environment id="development">
                  <transactionManager type="JDBC"/>
                  <!--設(shè)置連接池-->
                  <dataSource type="POOLED">
                      <property name="driver" value="${driver}"/>
                      <property name="url" value="${url}"/>
                      <property name="username" value="${username}"/>
                      <property name="password" value="${password}"/>
                  </dataSource>
              </environment>
          </environments>
      
          
          <mappers>
      <!--        <mapper resource="com/mapper/OrderMapper.xml"/>-->
      <!--        <mapper resource="com/mapper/UserMapper.xml"/>-->
      <!--        <mapper resource="com/mapper/DetailMapper.xml"/>-->
      <!--        <mapper resource="com/mapper/ProductMapper.xml"/>-->
      <!--        <mapper resource="com/mapper/TypeMapper.xml"/>-->
      <!--        <mapper class="dao.IUserDao2"/>-->
              <package name="dao"/>
          </mappers>
      </configuration>
      
  3. dao接口

    • 直接添加注解@Select,@Insert,@Update,@Delete

    • 如果傳入一個(gè)參數(shù),使用#{任意字符}獲取

    • 如果傳入多個(gè)參數(shù),使用#{arg0},#{arg1}獲取

    • 或者直接傳入對(duì)象,使用#{對(duì)應(yīng)的參數(shù)名}獲取

    •  /**
           * 查詢所有的User對(duì)象
           * @return User對(duì)象的列表
           */
          @Select("select *from user")
          List<User> getAllUsers();
        
          /**
           * 新增一個(gè)user對(duì)象
           * @param user
           * @return
           */
          @Insert("insert into users values(#{uid},#{name},#{pass},#{phone})")
         int saveUser(User user);
      
  4. 測(cè)試類(lèi)

    • public class TestUserDao {
      
          private SqlSession session = null;
      
          @Before
          public void setUp() {
              session = SessionUtils.getSession();
          }
      
          @After
          public void tearDown() {
              SessionUtils.closeSession();
          }
      
          @Test
          public void testGetAllUsers() {
              IUserDao mapper = session.getMapper(IUserDao2.class);
      
      
              List<User> users = mapper.getAllUsers();
      
              for (User user : users) {
                  System.out.println(user);
              }
          }
      
          @Test
          public void testSaveUser() {
              IUserDao2 userDao = session.getMapper(IUserDao2.class);
              User u = new User("3", "cpj", "123", "12312312");
              userDao.saveUser(u);
          }
      }
      
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末碎浇,一起剝皮案震驚了整個(gè)濱河市内颗,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌心例,老刑警劉巖见妒,帶你破解...
    沈念sama閱讀 217,084評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異郊供,居然都是意外死亡峡碉,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,623評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)颂碘,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)异赫,“玉大人,你說(shuō)我怎么就攤上這事头岔∷” “怎么了负懦?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,450評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵眠菇,是天一觀的道長(zhǎng)义辕。 經(jīng)常有香客問(wèn)我撑教,道長(zhǎng)仿耽,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,322評(píng)論 1 293
  • 正文 為了忘掉前任始锚,我火速辦了婚禮沫换,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘载城。我一直安慰自己肌似,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,370評(píng)論 6 390
  • 文/花漫 我一把揭開(kāi)白布诉瓦。 她就那樣靜靜地躺著川队,像睡著了一般。 火紅的嫁衣襯著肌膚如雪睬澡。 梳的紋絲不亂的頭發(fā)上固额,一...
    開(kāi)封第一講書(shū)人閱讀 51,274評(píng)論 1 300
  • 那天,我揣著相機(jī)與錄音煞聪,去河邊找鬼斗躏。 笑死,一個(gè)胖子當(dāng)著我的面吹牛昔脯,可吹牛的內(nèi)容都是我干的啄糙。 我是一名探鬼主播,決...
    沈念sama閱讀 40,126評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼栅干,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼迈套!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起碱鳞,我...
    開(kāi)封第一講書(shū)人閱讀 38,980評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤桑李,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后窿给,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體贵白,經(jīng)...
    沈念sama閱讀 45,414評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,599評(píng)論 3 334
  • 正文 我和宋清朗相戀三年崩泡,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了禁荒。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,773評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡角撞,死狀恐怖呛伴,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情谒所,我是刑警寧澤热康,帶...
    沈念sama閱讀 35,470評(píng)論 5 344
  • 正文 年R本政府宣布,位于F島的核電站劣领,受9級(jí)特大地震影響姐军,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,080評(píng)論 3 327
  • 文/蒙蒙 一奕锌、第九天 我趴在偏房一處隱蔽的房頂上張望著觉。 院中可真熱鬧,春花似錦惊暴、人聲如沸饼丘。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,713評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)葬毫。三九已至镇辉,卻和暖如春屡穗,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背忽肛。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,852評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工村砂, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人屹逛。 一個(gè)月前我還...
    沈念sama閱讀 47,865評(píng)論 2 370
  • 正文 我出身青樓础废,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親罕模。 傳聞我的和親對(duì)象是個(gè)殘疾皇子评腺,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,689評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容