SSM学习之路——Mybatis第一天_查询入门

一、用xml的方式查询

1.在test下面的java里面创建com.itheima.test.MybatisTest的测试类

在这里插入图片描述

2.resorces目录结构如下

注意此时resources下面有个com.itheima.dao.IUserDao.xml
在这里插入图片描述
在resorces文件夹下的SqlMapConfig.xml里面,指定配置映射的位置
注意此处是用xml,并且如前一天所提到的 IUserDao.xml的目录必须和接口的目录包名一致 分隔为斜线

<!--指定映射配置文件的位置,映射配置文件指的是每个dao独立的配置文件
        如果此处是用注解  则此处应该使用class属性指定被注解的dao全限定类名-->
    <mappers>
        <mapper resource="com/itheima/dao/IUserDao.xml"></mapper>
    </mappers>

=

3.IUserDao.xml里面为对应的接口方法,查询的语句

标签名为select
其中findAll为IUserDao接口中的方法,对应唯一id
并且用resultType来封装这个结果到实体类中 (全限定类名)

<select id="findAll" resultType="com.itheima.domain.User">
        select * from user;
    </select>
4.醉醉重要的来了! 编写MybatisTest测试类!

这里有6个步骤
1.读取配置文件(读取resources文件下的SqlMapConfig.xml文件,该文件中配置的是数据库的连接信息 以及查询语句的xml的位置映射!)

2.创建SqlSessionFactory工厂(这里使用SqlSessionFactoryBuilder来创建Factory实例)因为SqlSessionFactory为一个接口 没有实体类,所以要通过SqlSessionFactoryBuilder这个工厂创建方法 来创建这个工厂!

3.使用工厂创建SqlSession对象(就是从这个工厂 来创造出一个Sql对话)

4.使用SqlSession来创建一个Dao接口的对象(代理模式 实现增强功能)

5.使用代理对象实现对象方法(具体的方法 打印啊 啥的)

6.最后要释放资源

接下来是代码

//读取配置文件
        InputStream in = Resources.getResourceAsStream("SqlMapConfig.xml");
        
        //创建SqlSessionFactory工厂
        SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
        SqlSessionFactory factory = builder.build(in);
        
        //用工厂创建一个SqlSession
        SqlSession session = factory.openSession();
        
        //用SqlSession来创建一个Dao接口的代理
        IUserDao userDao = session.getMapper(IUserDao.class);
        
        //实现功能
        List<User> users = userDao.findAll();
        for(User user : users){
            System.out.println(user); // 因为在User类里面重写了tostring方法 所以这个就直接是相关的信息了
        }

        //最后释放资源  后开先关
        session.close();
        in.close();

执行结果
在这里插入图片描述

二、用注解的方式查询

用注解的时候 就不需要那个IUserDao.xml文件了!因为那个是用xml方式写的执行语句 现在用注解就用不到啦!
因此

1.删除resource下的com.itheima.dao.IUserDao.xml

(或者直接把整个com删掉就行…)

2.改变map方式

进入到SqlMaoConfig.xml中!
在这里插入图片描述
用xml方式为上图 这样!但是现在 我们将resource包下面的com…都删掉后 就没有上图所示的这个路径了!如上图的注释所说 我们要将resource改为class …如下图
在这里插入图片描述

3.在IUserDao接口中动动手脚

关键一步!使用注解!
在IUserDao接口中!

public interface IUserDao {
    @Select("select * from user")
    List<User> findAll();
}

看到这个@select了没 里面就是具体的查询语句了!

MybatisTest文件 并不用动 直接run

在这里插入图片描述
结果是一样的!
至此mybatis查询入门!

发布了23 篇原创文章 · 获赞 0 · 访问量 610

猜你喜欢

转载自blog.csdn.net/SixthMagnitude/article/details/103876438