一.传统的实现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;
}
}