发表于: 2016-07-31 22:05:38
2 2481
今天完成的事情:今天继续把昨天没整理晚的mybatis重新梳理,做好笔记。
1,SqlSession使用方法:
SqlSessionFactoryBuilder:用于创建SqlSessionFactory,将SqlSessionFactoryBuilder当成工具类使用。
SqlSessionFactory:会话工厂,用于创建SqlSession,SqlSessionFactory一旦创建成功,不用每次创建工厂,
建议单例模式使用工厂。如果和spring整合后,由spring来管理SqlSessionFactory,
在spring容器中SqlSessionFactory是一个单例对象。
SqlSession:(重点)是一个面向用户的接口,通过SqlSessionFactory获取SqlSession,每次数据操作都需要创建新的SqlSession,SqlSession 不是线程安全,最佳应用场合是方法体内,在方法中定义一个SqlSession局部变量。
2,使用mybatis开发原始dao :
需要我们自己开发dao接口和dao的实现类。
编写User.xml映射文件:
Dao接口和实现类:
总结问题:
在每一个dao方法中在调用 sqlSession的接口方法时需要对statement的id进行硬编码。
在调用 sqlSession的接口方法时,向statement传入参数,由于sqlSession接口方法参数是object,如果类型设置错误,
在编译阶段没有报错。
3,Mapper动态代理方法
Mapper动态代理方法:我们只需要写dao接口(Mapper),而不需要写dao实现类,由mybatis根据dao接口和映射文件
中statement的定义生成接口实现代理对象。可以调用代理对象方法。通过一些规则让mybatis根据dao接口和映射文件中
statement的定义生成接口实现代理对象
Mapper开发规则:
在mapper.xml中将namespace设置为mapper.java的全限定名
将mapper.java接口的方法名和mapper.xml中statement的id保持一致。
将mapper.java接口的方法输入参数类型和mapper.xml中statement的parameterType保持一致
将mapper.java接口的方法输出 结果类型和mapper.xml中statement的resultType保持一致
明天计划的事情:明天开始学习springMVC,以及和mybatis整合。
遇到的问题:一些基础性的东西写出来编译器会报错,不过最终还是顺利解决了。
收获:了解了一波Mybatis逆向工程。
评论