Idea中創建Mybatis的步驟(模板,防止以後忘記)

  1. 創建一個普通的Maven項目

    • 命名要使用好在哪一個包下面
    • 還有要注意的是Mybatis中的依賴這個一定要注意
    • 下面的代碼放在項目下面的pom.xml中,同時還有別的依賴
       <!-- 導入依賴-->
        <dependencies>
            <!--mysql驅動-->
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>5.1.47</version>
            </dependency>
            <!--mybatis-->
            <dependency>
                <groupId>org.mybatis</groupId>
                <artifactId>mybatis</artifactId>
                <version>3.5.2</version>
            </dependency>
            <!--junit-->
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.12</version>
            </dependency>
        </dependencies>
    
        <!--在build中配置resources,來防止我們資源導出失敗的問題-->
        <build>
            <resources>
                <resource>
                    <directory>src/main/resources</directory>
                    <!-- 這個可以吧resources去了,這樣target中會出現mapper-config.xml-->
                    <excludes>
                        <exclude>**/*.properties</exclude>
                        <exclude>**/*.xml</exclude>
                    </excludes>
                    <filtering>false</filtering>
                </resource>
                <resource>
                    <directory>src/main/java</directory>
                    <includes>
                        <include>**/*.properties</include>
                        <include>**/*.xml</include>
                    </includes>
                    <filtering>false</filtering>
                </resource>
            </resources>
    </build>
    <!--這個是防止報錯的,主要是因爲約定大於配置,那麼可能在target中不會出現xml文件,所以需要以上的配置-->
    
  2. 刪除項目中的src

  3. 創建一個普通的Maven模塊(一般來說這個時候不需要再在這個模塊的pom.xml加入以來了,因爲夫項目中已經有了,但是導入依賴最好)

  4. 這個模塊中有關於java和resources的一些東西

  5. java中含有以下的東西

    • pojo(實體類,主要和數據庫中的表相對應)

      • 這個裏面有屬性和set,get方法
    • dao

      • 接口(UserDao,這就是一個接口之類的東西)

        • 接口裏面寫的一些方法都是之後對數據庫操作的一些方法

          import com.kuang.pojo.User;
          
          import java.util.List;
          
          public interface UserDao {
              //這個方法就是對數據庫操作的方法
              List<User> getListUser();
          }
          
          
      • UserMapper.xml(這個要在resourecs中進行配置,要不然會報錯)

        <?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">
        <!--namespace=綁定一個對應的Dao接口,一般來說就是我們用的com.kuang.dao裏面弄的接口
        這個就是在和上面的接口相對應,一定要注意
        -->
        <mapper namespace="com.kuang.dao.UserDao">
            <!--select查詢語句-->
            <select id="getListUser" resultType="com.kuang.pojo.User">
                /*定義sql*/
                select * from mybatis.user
            </select>
        </mapper>
        
    • MabaisUtils(這個主要是放着關於調用的一些實體類,這個很重要,基本上也不會有太大變化)

      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;
      
      //sqlSessionFactory--->SessionFactory,主要是返回Factory的工廠,這個是個主要的東西,通過工廠進行調用
      public class MyBatisUtils {
          private static SqlSessionFactory sqlSessionFactory;
          static {
              try{
                  //使用mybatis第一步、獲取sqlSessionFactory對象
                  String resource = "mybatis-config.xml";
                  InputStream inputStream = Resources.getResourceAsStream(resource);
                  sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
              }catch(IOException e) {
                  e.printStackTrace();
              }
          }
      
          //既然有了 SqlSessionFactory,顧名思義,我們就可以從中獲得 SqlSession 的實例了。
          // SqlSession 完全包含了面向數據庫執行 SQL 命令所需的所有方法。
          // 你可以通過 SqlSession 實例來直接執行已映射的 SQL 語句。
          public static SqlSession getSqlSession(){
              return sqlSessionFactory.openSession();
          }
      }
      
  6. 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">
    <!--configuration核心配置文件-->
    <configuration>
        <!--environments配置環境組-->
        <!--default默認環境-->
        <environments default="development">
            <!--environment單個環境-->
            <environment id="development">
                <!--transactionManager配置事務管理器-->
                <transactionManager type="JDBC"/>
                <!--配置連接池-->
                <dataSource type="POOLED">
                    <property name="driver" value="com.mysql.jdbc.Driver"/>
                    <property name="url" value="jdbc:mysql://localhost:3306/mybatis?useSSL=true&amp;useUnicode=true&amp;characterEncoding=UTF-8"/>
                    <property name="username" value="root"/>
                    <property name="password" value="123456"/>
                </dataSource>
            </environment>
        </environments>
        
        
        <mappers>
            <mapper resource="com/kuang/dao/UserMapper.xml"/>
        </mappers>
    
    </configuration>
    
      <!-- 一定要注意這個,將Dao層中UserMapper.xml在這個核心配置配置一下,要不然會報錯--> 
    
    	<mappers>
            <mapper resource="com/kuang/dao/UserMapper.xml"/>
        </mappers>
    
  7. 可能會報錯的問題

  8. 測試方面的代碼

    package com.kuang.dao;
    
    import com.kuang.Utils.MybatisUtils;
    import com.kuang.pojo.User;
    import org.apache.ibatis.session.SqlSession;
    import org.junit.Test;
    
    import java.util.List;
    
    public class test {
        @Test
        public void test(){
            //獲取msql工廠
            SqlSession sqlSession = MybatisUtils.getSqlSession();
            //方式一:獲取UserDao這個方法,拿到UserDao這個接口
            UserDao mapper = sqlSession.getMapper(UserDao.class);
            List<User> userList = mapper.getUserList();
            for(User user: userList){
                System.out.println(userList);
            }
            //最後一步,關閉sqlSession
            sqlSession.close();
        }
    }
    
    
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章