Test类
package com.xxj.test;
import com.xxj.entity.Person;
import com.xxj.mybatis.io.Resources;
import com.xxj.mybatis.sqlsession.SqlSession;
import com.xxj.mybatis.sqlsession.SqlSessionFactory;
import com.xxj.mybatis.sqlsession.SqlSessionFactoryBuilder;
import com.xxj.service.person.PersonService;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
/**
* @author xxj
* Mybatis入门案例
*/
public class MybatisTest {
/**
* 入门案例
* @param args
*/
public static void main(String[] args) throws IOException {
//1.读取配置文件
InputStream in = Resources.getResourceAsStream("MybatisConfig.xml");
//2.创建SqlSessionFactory工厂
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
SqlSessionFactory factory = builder.build(in);
//3.使用工厂创建SqlSession对象
SqlSession session = factory.openSession();
//4.使用SqlSession创建实体接口代理对象
PersonService ps =session.getMapper(PersonService.class);
//5.使用代理对象执行方法
List<Person> list = ps.PersonList();
for(Person p : list){
System.out.println(p.toString());
}
//6.释放资源
session.close();
in.close();
}
}
目录结构图
包和类说明
-
com.xxj.entity 用来存放实体类
- class Person 实体类点击此处查看源码
-
mybatis 存放自定义mybatis
- com.xxj.mybatis.cfg 存放自定义配置对象类
- com.xxj.mybatis.io 存放自定义mybatis中的涉及io流的类
- class Resources 使用类加载器读取配置文件的类点击此处查看源码
- com.xxj.mybatis.sqlsession 存放mybaits中的和数据库交互的核心类
- com.xxj.mybatis.sqlsession.Impl 存放sqlsession中的接口实现类
- com.xxj.mybatis.sqlsession.proxy 存放代理类的实现类
- class MapperProxy InvocationHandler接口的实现类,用于代理对象接口增强点击此处查看源码
- interface SqlSession 它里面可以创建dao也就是实体类接口的代理对象点击此处查看源码
- interface SqlSessionFactory SqlSessionFactory工厂点击此处查看源码
- class SqlSessionFactoryBuilder 用于创建一个SqlSessionFactory对象点击此处查看源码
- com.xxj.mybatis.utils 存放工具类
- com.xxj.service 存放实体类接口
- interface PersonService Person实体类接口点击此处查看源码