发表于: 2016-08-26 16:33:32

3 2184


今天完成的事情:mybatis用mapper代理的方式开发的demo终于跑通了,总结一下mybatis学的这半个多月,Mybatis是一个优秀支持普通SQL查询,存储过程和高级映射的优秀的持久层框架,MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。

我的demo,百度网盘地址:http://pan.baidu.com/s/1jInqfLc

一、首先,mybatis可以解决JDBC固有的一些问题

 ①JDBC在连接数据库的过程中需要频繁的创建和关闭,占用了很多系统资源,使用mybatis数据库连接池可以避免;

 ②SQL语句是硬编码到程序中的,如果要改SQL语句需要改代码,用mybatis可以在xml配置文件中使用占位符来代替具体的参数,后期不需要更改代码;

 ③在prepareStatement中的参数也是硬编码;

 ④遍历查询结果集存在硬编码;

总之,一个是耗费系统资源,另一个是硬编码较多,不利于系统维护,但jdbc也有自己的优点,应根据需求选择最适合的解决方案。

二、 mybatis的整体流程如图

 

 ①由总的配置文件:SqlMapConfig.xml配置环境、连接池、和Mapper.xml等都在此文件中配置,然后创建SqlSessionFactory会话工厂,再调用会话工厂里的openSession方法来开启SqlSession,再对SqlSession进行CRUD操作,

 ②Mapper.xml总主要是namespace以及Sql语句组成

 ③然后是Student里写表的字段,再用getset方法提供设置参数的方法

 ④StudentDao或者StudentMapper里写一些CRUD的方法,如果是原始开发需要些实现类来完成对工厂、会话的创建和使用,最后手动提交和关闭,代理开发需要在StudentMapper.xml文件里的namespace里写全限定名,然后不需要写实现类,可以直接在test类里调用工厂和会话,


 

  主要这一句可以调用sqlSession里的getMapper方法获得StudentMapper.class类来生成代理对象。

想让mybatis自动创建dao接口实现类的代理对象,必须遵循一些规则:

 1mapper.xmlnamespace指定为mapper接口的全限定名;

 此步骤目的:通过mapper.xmlmapper.java进行关联;

 2mapper.xmlstatementid就是mapper.java中方法名;

 3mapper.xmlstatementparameterTypemapper.java中方法输入参数类型一致;

 4mapper.xmlstatementresultTypemapper.java中方法返回值类型一致。

明天计划的事情:学习spring框架

遇到的问题:暂无

收获:对mybatis更熟悉了



返回列表 返回列表
评论

    分享到