• <noscript id="e0iig"><kbd id="e0iig"></kbd></noscript>
  • <td id="e0iig"></td>
  • <option id="e0iig"></option>
  • <noscript id="e0iig"><source id="e0iig"></source></noscript>
  • Mybatis-1-項目環境搭建(Maven)

    標簽: Mybatis  mybatis

    一、Mybatis環境搭建

    1. 創建一個maven工程
    2. 導入依賴
      mybatis的依賴
      數據庫連接依賴(這里使用mysql)
      可選:單元測試依賴,日志
      <properties>
          <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
          <maven.compiler.source>1.8</maven.compiler.source>
          <maven.compiler.target>1.8</maven.compiler.target>
          <mybatis.version>3.5.3</mybatis.version>
          <mysql-connector-java.version>8.0.13</mysql-connector-java.version>
          <log4j.version>1.2.17</log4j.version>
          <junit.version>4.11</junit.version>
      </properties>
      
      <dependencies>
          <dependency>
              <groupId>org.mybatis</groupId>
              <artifactId>mybatis</artifactId>
              <version>${mybatis.version}</version>
          </dependency>
          <dependency>
              <groupId>mysql</groupId>
              <artifactId>mysql-connector-java</artifactId>
              <version>${mysql-connector-java.version}</version>
          </dependency>
          <dependency>
              <groupId>log4j</groupId>
              <artifactId>log4j</artifactId>
              <version>${log4j.version}</version>
          </dependency>
          <dependency>
              <groupId>junit</groupId>
              <artifactId>junit</artifactId>
              <version>${junit.version}</version>
          </dependency>
      </dependencies>
      
    3. 新建 數據庫參數文件 db.properties
      定義這幾個最基本的參數
      db.driver=com.mysql.cj.jdbc.Driver
      db.url=jdbc:mysql://localhost:3306/seven?characterEncoding=UTF-8
      db.username=root
      db.password=tiger
      
    4. 新建 一個xml文件,文件名不強制要求。這里使用mybatis.config.xml
      文件內容如下:看注釋
      <?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">
      <!-- 配置mybatis -->
      <configuration>
          <!-- 指定 MyBatis 數據庫配置文件 -->
          <properties resource="db.properties"/>
          <!-- 環境配置 -->
          <!-- 默認使用mysql這個環境 -->
          <environments default="mysql">
              <!-- mysql 數據庫環境 -->
              <environment id="mysql">
                  <!-- 事務管理:JDBC -->
                  <transactionManager type="JDBC"/>
                  <!-- 數據源配置,POOLED是JDBC連接對象的數據源連接池的實現 -->
                  <dataSource type="POOLED">
                      <property name="driver" value="${db.driver}"/>
                      <property name="url" value="${db.url}"/>
                      <property name="username" value="${db.username}"/>
                      <property name="password" value="${db.password}"/>
                  </dataSource>
              </environment>
          </environments>
      
          <!-- mappers告訴了MyBatis去哪里找持久化類的映射文件 注解方式不需要這個 -->
          <mappers>
              <mapper resource="com/seven/mapper/GuestMapper.xml" />
          </mappers>
      </configuration>
      
    5. 新建包和映射文件夾
      在這里插入圖片描述
      注意:
    • 創建resources/com/seven/mapper文件夾時,不要com.seven.mapper這樣創建。因為這樣創建后,只有一個叫com.seven.mapper的文件夾,是一級目錄。
    1. 創建實體類,映射接口類,映射文件
      實體類:Guest.java
      package com.seven.entity;
      
      import java.util.Date;
      
      public class Guest {
          private Integer gid;
          private String gname;
          private String gpwd;
          private Date gbirthday;
      
          @Override
          public String toString() {
              return "Guest{" +
                      "gid=" + gid +
                      ", gname='" + gname + '\'' +
                      ", gpwd='" + gpwd + '\'' +
                      ", gbirthday=" + gbirthday +
                      '}';
          }
      
          public Integer getGid() {
              return gid;
          }
      
          public void setGid(Integer gid) {
              this.gid = gid;
          }
      
          public String getGname() {
              return gname;
          }
      
          public void setGname(String gname) {
              this.gname = gname;
          }
      
          public String getGpwd() {
              return gpwd;
          }
      
          public void setGpwd(String gpwd) {
              this.gpwd = gpwd;
          }
      
          public Date getGbirthday() {
              return gbirthday;
          }
      
          public void setGbirthday(Date gbirthday) {
              this.gbirthday = gbirthday;
          }
      }
      
      映射接口類:GuestMapper.java
      package com.seven.mapper;
      
      import com.seven.entity.Guest;
      
      import java.util.List;
      
      public interface GuestMapper {
          List<Guest> selectGuest();
      }
      
      映射文件:GuestMapper.xml
      <?xml version="1.0" encoding="UTF-8" ?>
      <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
              "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
      <mapper namespace="com.seven.mapper.GuestMapper">
      
          <select id="selectGuest" resultType="com.seven.entity.Guest">
              select * from t_guest
          </select>
      
      </mapper>
      
      創建后的工程結構:
      在這里插入圖片描述
      注意:
      創建實體類:這里實體類中的成員變量名與表的字段名一致。
      創建映射文件:
      namespace配置為映射接口
      在這里插入圖片描述
      sql語句的id必須和映射接口的方法名一致!!
      在這里插入圖片描述
      在這里插入圖片描述
      必須要有返回結果封裝的對象類型
      在這里插入圖片描述
    2. 測試
      測試前先創建log4j的配置文件:log4j.properties
      log4j.rootLogger=info, A1 , R
      log4j.appender.A1=org.apache.log4j.ConsoleAppender
      log4j.appender.A1.layout=org.apache.log4j.PatternLayout
      log4j.appender.A1.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m -(:%L)%n
      
      log4j.appender.R=org.apache.log4j.RollingFileAppender
      log4j.appender.R.File=D:\\log\\testsocket_log.log
      log4j.appender.R.MaxFileSize=100KB
      log4j.appender.R.MaxBackupIndex=1
      log4j.appender.R.layout=org.apache.log4j.PatternLayout
      log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n  
      
      然后編寫測試類:GuestTest.java
      import com.seven.entity.Guest;
      import com.seven.mapper.GuestMapper;
      import org.apache.ibatis.io.Resources;
      import org.apache.ibatis.session.SqlSession;
      import org.apache.ibatis.session.SqlSessionFactory;
      import org.apache.ibatis.session.SqlSessionFactoryBuilder;
      import java.io.IOException;
      import java.io.InputStream;
      import java.util.List;
      
      public class GuestTest {
          public static void main(String[] args) throws IOException {
              // 1.導入mybatis配置文件,拋出異常
              //      使用org.apache.ibatis.io.Resources導入mybatis的xml配置文件
              InputStream resource = Resources.getResourceAsStream("mybatis.config.xml");
              // 2.創建SqlSessionFactory工廠
              //      說明:org.apache.ibatis.session.SqlSessionFactory是一個接口
              //      使用org.apache.ibatis.session.SqlSessionFactoryBuilder來創建SqlSessionFactory工廠
              SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
              SqlSessionFactory factory = builder.build(resource);
              // 3.使用工廠生產SqlSession對象
              SqlSession sqlSession = factory.openSession();
              // 4.通過SqlSesison對象創建mapper接口的代理對象
              GuestMapper guestMapper = sqlSession.getMapper(GuestMapper.class);
              // 5.通過代理對象來調用selectGuest函數,來訪問數據庫
              List<Guest> guests = guestMapper.selectGuest();
              // 6.打印一下結果
              for (Guest guest : guests) {
                  System.out.println(guest);
              }
              // 7.關閉資源
              sqlSession.close();
              resource.close();
          }
      }
      
      運行:
      在這里插入圖片描述

    二、使用注解的方式

    即:在映射接口中使用注解,編寫sql語句。
    好處:在映射文件中,需要配置namespace,resultType等。而如果使用注解的方式,就不需要配置這些。
    壞處:

    步驟

    說明:即使使用注解的方式,仍然需要mybatis的xml配置文件。

    1. 刪除映射文件 GuestMapper.xml
    2. 修改mybatis的配置文件
      在這里插入圖片描述
      <?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">
      <!-- 配置mybatis -->
      <configuration>
          <!-- 指定 MyBatis 數據庫配置文件 -->
          <properties resource="db.properties"/>
          <!-- 環境配置 -->
          <!-- 默認使用mysql這個環境 -->
          <environments default="mysql">
              <!-- mysql 數據庫環境 -->
              <environment id="mysql">
                  <!-- 事務管理:JDBC -->
                  <transactionManager type="JDBC"/>
                  <!-- 數據源配置,POOLED是JDBC連接對象的數據源連接池的實現 -->
                  <dataSource type="POOLED">
                      <property name="driver" value="${db.driver}"/>
                      <property name="url" value="${db.url}"/>
                      <property name="username" value="${db.username}"/>
                      <property name="password" value="${db.password}"/>
                  </dataSource>
              </environment>
          </environments>
      
          <!-- mappers告訴了MyBatis去哪里找持久化類的映射文件 注解方式不需要這個 -->
          <mappers>
              <!-- 使用xml方式開發,指定持久化類的映射文件 -->
      <!--        <mapper resource="com/seven/mapper/GuestMapper.xml" />-->
              <!-- 使用注解方式開發,指定持久化類接口 -->
              <mapper class="com.seven.mapper.GuestMapper"/>
          </mappers>
      
      </configuration>
      
    3. 在映射接口中添加注解
      在這里插入圖片描述
      package com.seven.mapper;
      
      import com.seven.entity.Guest;
      import org.apache.ibatis.annotations.Select;
      
      import java.util.List;
      
      public interface GuestMapper {
          @Select("select * from t_guest")
          List<Guest> selectGuest();
      }
      
      
    4. 運行測試類
      在這之前把log4j的等級改成了debug,可以看到執行的sql語句
      在這里插入圖片描述

    更新時間:2020-1-9
    版權聲明:本文為SevenSongyun原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
    本文鏈接:https://blog.csdn.net/SevenSongyun/article/details/103904748

    智能推薦

    HTML中常用操作關于:頁面跳轉,空格

    1.頁面跳轉 2.空格的代替符...

    freemarker + ItextRender 根據模板生成PDF文件

    1. 制作模板 2. 獲取模板,并將所獲取的數據加載生成html文件 2. 生成PDF文件 其中由兩個地方需要注意,都是關于獲取文件路徑的問題,由于項目部署的時候是打包成jar包形式,所以在開發過程中時直接安照傳統的獲取方法沒有一點文件,但是當打包后部署,總是出錯。于是參考網上文章,先將文件讀出來到項目的臨時目錄下,然后再按正常方式加載該臨時文件; 還有一個問題至今沒有解決,就是關于生成PDF文件...

    電腦空間不夠了?教你一個小秒招快速清理 Docker 占用的磁盤空間!

    Docker 很占用空間,每當我們運行容器、拉取鏡像、部署應用、構建自己的鏡像時,我們的磁盤空間會被大量占用。 如果你也被這個問題所困擾,咱們就一起看一下 Docker 是如何使用磁盤空間的,以及如何回收。 docker 占用的空間可以通過下面的命令查看: TYPE 列出了docker 使用磁盤的 4 種類型: Images:所有鏡像占用的空間,包括拉取下來的鏡像,和本地構建的。 Con...

    requests實現全自動PPT模板

    http://www.1ppt.com/moban/ 可以免費的下載PPT模板,當然如果要人工一個個下,還是挺麻煩的,我們可以利用requests輕松下載 訪問這個主頁,我們可以看到下面的樣式 點每一個PPT模板的圖片,我們可以進入到詳細的信息頁面,翻到下面,我們可以看到對應的下載地址 點擊這個下載的按鈕,我們便可以下載對應的PPT壓縮包 那我們就開始做吧 首先,查看網頁的源代碼,我們可以看到每一...

    猜你喜歡

    Linux C系統編程-線程互斥鎖(四)

    互斥鎖 互斥鎖也是屬于線程之間處理同步互斥方式,有上鎖/解鎖兩種狀態。 互斥鎖函數接口 1)初始化互斥鎖 pthread_mutex_init() man 3 pthread_mutex_init (找不到的情況下首先 sudo apt-get install glibc-doc sudo apt-get install manpages-posix-dev) 動態初始化 int pthread_...

    統計學習方法 - 樸素貝葉斯

    引入問題:一機器在良好狀態生產合格產品幾率是 90%,在故障狀態生產合格產品幾率是 30%,機器良好的概率是 75%。若一日第一件產品是合格品,那么此日機器良好的概率是多少。 貝葉斯模型 生成模型與判別模型 判別模型,即要判斷這個東西到底是哪一類,也就是要求y,那就用給定的x去預測。 生成模型,是要生成一個模型,那就是誰根據什么生成了模型,誰就是類別y,根據的內容就是x 以上述例子,判斷一個生產出...

    styled-components —— React 中的 CSS 最佳實踐

    https://zhuanlan.zhihu.com/p/29344146 Styled-components 是目前 React 樣式方案中最受關注的一種,它既具備了 css-in-js 的模塊化與參數化優點,又完全使用CSS的書寫習慣,不會引起額外的學習成本。本文是 styled-components 作者之一 Max Stoiber 所寫,首先總結了前端組件化樣式中的最佳實踐原則,然后在此基...

    基于TCP/IP的網絡聊天室用Java來實現

    基于TCP/IP的網絡聊天室實現 開發工具:eclipse 開發環境:jdk1.8 發送端 接收端 工具類 運行截圖...

    19.vue中封裝echarts組件

    19.vue中封裝echarts組件 1.效果圖 2.echarts組件 3.使用組件 按照組件格式整理好數據格式 傳入組件 home.vue 4.接口返回數據格式...

    精品国产乱码久久久久久蜜桃不卡