欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Mybatis(3)-编写dao实现类的方式

程序员文章站 2022-06-14 11:06:05
...

创建项目,同Mybatis(1)环境搭建,并做出更改

1.更改MybatisTest类

因为有了IUserDao的实现类故不需要代理对象了,更改后为

package com.itheima.test;

import com.itheima.dao.IUserDao;
import com.itheima.dao.impl.UserDaoImpl;
import com.itheima.domain.User;
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;
import java.util.List;

//入门案例
public class MybatisTest {
    public static void main(String[] args) throws IOException {
       //1.读取配置文件,连接数据库的信息
        InputStream in= Resources.getResourceAsStream("SqlMapConfig.xml");
       //2.创建SqlSessionFactory工厂,有了工厂可以生产和操作对象
        SqlSessionFactoryBuilder builder=new SqlSessionFactoryBuilder();
        SqlSessionFactory factory=builder.build(in);
       //3.使用工厂创建dao对象
        IUserDao userDao=new UserDaoImpl(factory);
        //4.执行方法
        List<User> users=userDao.findAll();
        for (User user:users){
            System.out.println(user);
        }
        //6.释放资源
        in.close();
    }
}

 

2.在dao包下,创建一个impl包,在impl包下,创建UserDaoImpl类

执行findAll()方法,调用session的selectList()来获取user的list,类中需要有factory来生产SqlSession

package com.itheima.dao.impl;

import com.itheima.dao.IUserDao;
import com.itheima.domain.User;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;

import java.util.List;

public class UserDaoImpl implements IUserDao {
    private SqlSessionFactory factory;//创建对象时,传入factory对象
    public UserDaoImpl(SqlSessionFactory factory){
        this.factory=factory;
    }
    public List<User> findAll() {
        //1.使用工厂创建SqlSession对象
        SqlSession session=factory.openSession();
        //2.使用session执行查询所有的方法即findAll()
        //selectList方法参数是statement,statement是配置信息,namespace+方法名
        // 如IUserDao.xml中的配置信息,来执行select * from user;
        List<User> users=session.selectList("com.itheima.dao.IUserDao.findAll");
        session.close();
        //3.返回查询结果
        return users;
    }
}

执行结果:

Mybatis(3)-编写dao实现类的方式