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();
        }
    }
    
    
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章