最简单的开始:
配置文件加载,与SqlSessionFactory的创建。
private static SqlSessionFactory sqlSessionFactory = null;
static {
String resource = "org/taobao/study/ibatis/Configuration.xml";
Reader reader = null;
try {
reader = Resources.getResourceAsReader(resource);
} catch (IOException e) {
e.printStackTrace();
}
sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
}
最简单的调用:
SqlSession session = Util.getSqlSessionFactory().openSession();
User user = null;
try{
user = (User)session.selectOne("org.taobao.study.ibatis.UserMapper.selectOne", id);
}catch(Exception e){
e.printStackTrace();
}finally{
session.close();
}
return user;
开始猜测myBatis3内部代码:
第一步:解析配置文件,以及映射文件。
Resources.getResourceAsReader(resource);
第二步:使用映射逻辑,并实现基本数据调用。
user = (User)session.selectOne("org.taobao.study.ibatis.UserMapper.selectOne", id);
内部应该还有JDBC的封装机制等。
接着跟踪第一部分:
sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
// XMLConfigBuilder -> DefaultSqlSessionFactory
这个解析过程先是XMLConfigBuilder,内部用的是SAX,合理。然后给一个DefaultSqlSessionFactory的默认实现。