mybaits 创建dao的两种实现方式

一.传统的实现dao

1.1 工程结构

1.2 创建dao层

1.dao层接口

package com.mybaits.demo.dao;

import com.mybaits.demo.bean.User;

import java.io.IOException;
import java.util.List;

public interface UserMapper {
    List<User> findAll() throws IOException;
}

2.dao的实现层

package com.mybaits.demo.dao.impl;

import com.mybaits.demo.bean.User;
import com.mybaits.demo.dao.UserMapper;
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;

/**
 * @ClassName: UserDaoImpl
 * @Description: TODO
 * @Author: liujianfu
 * @Date: 2021/01/30 21:57:31 
 * @Version: V1.0
 **/
public class UserMapperImpl implements UserMapper {
    @Override
    public List<User> findAll() throws IOException {
        //加载核心配置文件
        InputStream resourcesAsStream= Resources.getResourceAsStream("mybaitsConfig.xml");
        //获得sqlsession 工厂对象
        SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(resourcesAsStream);
        //获得sqlsession对象
        SqlSession sqlSession=sqlSessionFactory.openSession();
        //执行sql
        List<User> userList=sqlSession.selectList("yonghuMapper.findAll");
        //打印资源
        System.out.println("userlist:"+userList);
        //关闭释放资源
        sqlSession.close();
        return userList;
    }
}

1.2 创建service层

1.service的接口

package com.mybaits.demo.service;

import com.mybaits.demo.bean.User;

import java.io.IOException;
import java.util.List;

public interface UserService {
    List<User> findAll() throws IOException;
}

2.service的实现层

package com.mybaits.demo.service.impl;

import com.mybaits.demo.bean.User;
import com.mybaits.demo.dao.UserMapper;
import com.mybaits.demo.dao.impl.UserMapperImpl;
import com.mybaits.demo.service.UserService;

import java.io.IOException;
import java.util.List;

/**
 * @ClassName: UserServiceImpl
 * @Description: TODO
 * @Author: liujianfu
 * @Date: 2021/01/30 22:00:02 
 * @Version: V1.0
 **/
public class UserServiceImpl implements UserService {

    @Override
    public List<User> findAll() throws IOException {
        UserMapper  userMapper=new UserMapperImpl() ;
       List<User> userList= userMapper.findAll();
       System.out.println("");
        return userList;
    }
}

1.3 调用

二.代理方式实现dao

2.1 实现方式概览

2.2  mapper.xml的配置

2.3  dao接口的配置

package com.mybaits.demo.dao;

import com.mybaits.demo.bean.User;

import java.io.IOException;
import java.util.List;

public interface UserMapper {
    List<User> findAll() throws IOException;
}

2.4 service层接口

1.service接口

package com.mybaits.demo.service;

import com.mybaits.demo.bean.User;

import java.io.IOException;
import java.util.List;

public interface UserService2 {
    List<User> findAll() throws IOException;
}

2.services实现层

package com.mybaits.demo.service.impl;

import com.mybaits.demo.bean.User;
import com.mybaits.demo.dao.UserMapper;
import com.mybaits.demo.service.UserService2;
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;

/**
 * @ClassName: UserServiceImpl2
 * @Description: TODO
 * @Author: liujianfu
 * @Date: 2021/01/30 23:56:52 
 * @Version: V1.0
 **/
public class UserServiceImpl2 implements UserService2 {
    @Override
    public List<User> findAll() throws IOException {
        //加载核心配置文件
        InputStream resourcesAsStream= Resources.getResourceAsStream("mybaitsConfig.xml");
        //获得sqlsession 工厂对象
        SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(resourcesAsStream);
        //获得sqlsession对象
        SqlSession sqlSession=sqlSessionFactory.openSession();
        //产生代理对象
       UserMapper userMapper=sqlSession.getMapper(UserMapper.class);
       List<User> userList= userMapper.findAll();
        //打印资源
        System.out.println("userlist:"+userList);
        //关闭释放资源
        sqlSession.close();
        return userList;
    }
}

2.5 调用,查看结果

猜你喜欢

转载自blog.csdn.net/u011066470/article/details/113447598