上一篇是一个从网上找到的例子,MyBaits果然上手快,这么快就能搭起一个HelloWord,很有成就感啊。
下面一句一句的分析一下。
String resource = "domain/configuration.xml";
第一句代码用路径名和文件名做了一个字符串,没什么好说的。
Reader reader = Resources.getResourceAsReader(resource);
第二句使用一个java.io中的reader字符流,读取了什么,肯定是读取了配置信息吧,通过字面意思也可以推测出来Resources.getResourceAsReader。
那么这时候reader这个对象就就把总配置文件configuration.xml加载到内存中了,接下来想必是要解析这个.xml总配置文件了。
SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(reader);
首先是什么,查看源码,这是一个直接继承自object的类,其中只有4个重载的build方法,
返回值是SqlSessionFactory,接下来的很复杂我看不懂;
整理一下思路,在这一句中new了一个SqlSessionFactoryBuilder对象,这个对象用参数reader,建立了一个SqlSessionFactory对象,那我暂时这样理解,这是一个MyBatis专用的解析总配置文件的类,这个类最终构建了一个SqlSessionFactory对象。
下一句:
SqlSession session = ssf.openSession();
既然是个Factory,那么想必是个工厂类,用工厂方法生成了一个SqlSession,这个SqlSession后面我一直在用,那么好,虽然没搞明白全部,我总算的到可用的对象了。
下面是增删改查了,先不看,回头研究刚才一直在用的configuration.xml总配置文件
configuration够难的,是配置的意思,根标签也是configuration。
先看能看懂的property,有键值对key&value两个字符串,这四个学过JDBC的都知道,
再看其上层标签,<dataSource type="POOLED">
有POOLED和UNPOOLED两种type,UNPOOLED只能有上面的四个子标签,而POOLED可以配置JDBC连接池,详细的配置以后再说。
在看上面的Alias,明显是在给实体类起别名可以理解
<transactionManager type="JDBC" />
是说事务由JDBC控制也可以理解
<environments default="development">
<environment id="development">
环境是开发环境,据说还有测试,发布等等的环境,以后再详说