【MyBatis】测试mybatis执行sql语句步骤

测试mybatis执行sql语句步骤

调用mybatis某个对象的方法,执行mapper文件中的sql语句
mybatis核心类: SqlSessionFactory

  1. 定义mybatis主配置文件的位置, 从类路径开始的相对路径——读取主配置文件里面的信息(1.连接数据库:创建、连接对象的必要数据。2.mapper:找到要执行的sql语句)

  2. 读取主配置文件。使用mybatis框架中的Resources

  3. 创建SqlSessionFactory对象, 使用SqlSessionFactoryBuidler
    1)每个基于 MyBatis 的应用都是以一个 SqlSessionFactory的实例 为核心的。
    SqlSessionFactory的实例 可以通过 SqlSessionFactoryBuilder 获得。
    SqlSessionFactoryBuilder 则可以从 XML 配置文件或一个预先配置的 Configuration实例 来构建出 SqlSessionFactory实例
    2)既然有了 SqlSessionFactory,顾名思义,可以从中获得SqlSession 的实例。SqlSession 提供了在数据库执行 SQL 命令所需的所有方法。可以通过 SqlSession 实例来直接执行已映射的 SQL 语句。

  4. 获取SqlSession对象

  5. 指定要执行的sql语句的 id
    sql的id = namespace+"."+ select|update|insert|delete标签的id属性值

  6. 通过SqlSession的方法,执行sql语句

  7. 关闭SqlSession对象

举例:

@Test
public void testSelectStudentById2() throws IOException {
    
    

    //调用mybatis某个对象的方法,执行mapper文件中的sql语句
    //mybatis核心类: SqlSessionFactory

    //1.定义mybatis主配置文件的位置, 从类路径开始的相对路径
    String config = "mybatis.xml";

    //2.读取主配置文件。使用mybatis框架中的Resources类
    InputStream inputStream = Resources.getResourceAsStream(config);

    //3.创建SqlSessionFactory对象, 使用SqlSessionFactoryBuidler类
    // 每个基于 MyBatis 的应用都是以一个 SqlSessionFactory 的实例为核心的。
    // SqlSessionFactory 的实例可以通过 SqlSessionFactoryBuilder 获得。
    // 而 SqlSessionFactoryBuilder 则可以从 XML 配置文件或一个预先配置的 Configuration 实例来
    // 构建出 SqlSessionFactory 实例。
    SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(inputStream);

    //既然有了 SqlSessionFactory,顾名思义,可以从中获得 SqlSession 的实例。
    // SqlSession 提供了在数据库执行 SQL 命令所需的所有方法。
    // 你可以通过 SqlSession 实例来直接执行已映射的 SQL 语句。

    //4.获取SqlSession对象。
    SqlSession session = factory.openSession();

    //5.指定要执行的sql语句的 id
    //  sql的id = namespace+"."+ select|update|insert|delete标签的id属性值
    String sqlId = "com.bjpowernode.dao.StudentDao" + "." + "selectStudentById";

    // 6.通过SqlSession的方法,执行sql语句
    Student student = session.selectOne(sqlId,1002);
    System.out.println("使用mybatis查询一个学生:" + student);

    // 7.关闭SqlSession对象
    session.close();

}

猜你喜欢

转载自blog.csdn.net/m0_58058653/article/details/120718901