mybatis入門百分百

  • 2019 年 10 月 11 日
  • 筆記

今天重新返回來看自己的mybatis,總結了一些更好入門的辦法,下面用最簡單的方法帶領大家入門。
此處先引入類包的關係圖片
在這裡插入圖片描述

1.構建一個==普通==maven項目

構建好之後向pom.xml添加一下依賴

          <!--打包方式-->      <packaging>jar</packaging>        <dependencies>          <!--引入mybatis-->          <dependency>              <groupId>org.mybatis</groupId>              <artifactId>mybatis</artifactId>              <version>3.5.2</version>          </dependency>          <!--mysql-->          <dependency>              <groupId>mysql</groupId>              <artifactId>mysql-connector-java</artifactId>              <version>8.0.15</version>          </dependency>            <!--日誌-->          <dependency>              <groupId>log4j</groupId>              <artifactId>log4j</artifactId>              <version>1.2.17</version>          </dependency>          <!--測試-->          <dependency>              <groupId>junit</groupId>              <artifactId>junit</artifactId>              <version>4.12</version>          </dependency>      </dependencies>

2.創建資料庫,並創建好實體類

  /**  *@author xiaoxie  *@date  *@return  mybaits 入門  */  //實體類需要跟表明一致  public class User {      private Integer id;        private String username;        private Date birthday;        private String sex;        private String address;        public Integer getId() {          return id;      }        public void setId(Integer id) {          this.id = id;      }        public String getUsername() {          return username;      }        public void setUsername(String username) {          this.username = username;      }        public Date getBirthday() {          return birthday;      }        public void setBirthday(Date birthday) {          this.birthday = birthday;      }        public String getSex() {          return sex;      }        public void setSex(String sex) {          this.sex = sex;      }        public String getAddress() {          return address;      }        public void setAddress(String address) {          this.address = address;      }        @Override      public String toString() {          return "User{" +                  "id=" + id +                  ", username='" + username + ''' +                  ", birthday=" + birthday +                  ", sex='" + sex + ''' +                  ", address='" + address + ''' +                  '}';      }  }  

==切記實體類與資料庫相互對應==

3.創建一個dao

==這裡我們先弄明白最簡單的查詢==

    /**  *@author xiaoxie  *@date  *@return   * 用戶持久層介面  */  public interface UserDao {    //    查詢所有      @Select(select * from user)      List<User> findAll();    }  

4.在resources文件夾下面建立一個與一個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>      <!--配置環境-->      <environments default="mysql">          <!--配置mysql的環境-->          <environment id="mysql">              <!--配置事務類型-->              <transactionManager type="jdbc"></transactionManager>                <!--配置數據源   連接池-->              <dataSource type="POOLED">                      <!--配置連接資料庫的基本資訊-->                  <property name="driver" value="com.mysql.cj.jdbc.Driver"/>                  <property name="url" value="jdbc:mysql://localhost:3306/test1?serverTimezone=GMT%2B8"/>                  <property name="username" value="root"/>                  <property name="password" value="root"/>              </dataSource>          </environment>      </environments>        <!--映射配置文件地址 映射配置文件是每個dao的配置文件-->      <mappers>          <mapper resource="cn/com/scitc/dao/UserDaoMapper.xml"></mapper>      </mappers>        <!--採用註解的方式  應該使用class屬性指定被註解的dao全限定類名-->      <mappers>          <mapper class="cn.com.scitc.dao.UserDao"></mapper>      </mappers>  </configuration>

這裡講解一一下裡面的關係和作用

1.約束文件–可以直接從網上複製粘貼

<?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">
  1. mybatis主配置文件–相當於最外層的一個容器,所有的事務活動都在裡面
<configuration>  xxxxxx  </configuration>
  1. 配置環境 —相當於啟動的準備
<environments default="mysql">  ......xxxxx  </environments>

4.配置mysql的環境 –配置mysql的類型
==注意== environment 的id必須與environments的 defualt相同

<environment id="mysql">  xxxxx  </environment>

5.配置事務類型 –默認為jdbc

                <transactionManager type="jdbc"></transactionManager>  

6.配置數據源

 <dataSource type="POOLED">  xxxx常用的url  username  passsword即可    </ <dataSource >

7.映射地址

 <!--映射配置文件地址 映射配置文件是每個dao的配置文件-->      <mappers>          <mapper resource="cn/com/scitc/dao/UserDaoMapper.xml"></mapper>      </mappers>        <!--採用註解的方式  應該使用class屬性指定被註解的dao全限定類名-->      <mappers>          <mapper class="cn.com.scitc.dao.UserDao"></mapper>      </mappers>

注意:1.採用xml的格式需要用resources指定映射文件位置

 <mappers>          <mapper resource="cn/com/scitc/dao/UserDaoMapper.xml"></mapper>      </mappers>

2.採用註解的方法則用class指定映射文件位置

 <mappers>          <mapper class="cn.com.scitc.dao.UserDao"></mapper>      </mappers>

4.在resources下面創建與類相同的dao包,並在dao包下面創建映射文件UserDaoMapper.xml

<!DOCTYPE mapper          PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"          "http://mybatis.org/dtd/mybatis-3-mapper.dtd">  <!--namespace dao許可權類名===別名-->  <mapper namespace="cn.com.scitc.dao.UserDao">      <!--配置查詢所有-->      <select id="findAll" resultType="cn.com.scitc.domian.User" >        select * from user      </select>  </mapper>

注意:
1.約束文件–可以直接從網上複製粘貼
2.mapper文件都以mapper進行配置 namespaces是指定我們的dao層中的具體介面,有了它,就能夠識別是哪一個dao被調用。
3.接下來就是寫出語法
xml <select id="findAll" resultType="cn.com.scitc.domian.User" > select * from user </select>
警告:id是介面中定義的方法。
resultType是指定的實體類

測試

    public class MybatisTest {        public static void main(String[] args ){  //        1.讀取配置文件          try {              InputStream in = Resources.getResourceAsStream("mybatis-Config.xml");  //        2.創建SqlSessionFactory工廠              SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();              SqlSessionFactory factory = builder.build(in);  //        3.使用工廠產生SqlSession對象              SqlSession sqlSession = factory.openSession();  //        4.使用SqlSession創建Dao介面代理對象              UserDao userDao = sqlSession.getMapper(UserDao.class);  //        5.使用代理對象執行方法              List<User> users = userDao.findAll();              for (User user : users){                  System.out.println("對象有:"+user);              }  //        6.釋放資源              sqlSession.close();              in.close();          } catch (IOException e) {              e.printStackTrace();          }      }  }      

在這裡插入圖片描述