mybatis入门程序:
增删改查:
普通dao开发模式:
三种 接口代理开发模式:
使用接口代理注意事项:
只要使用接口,就必须满足四个条件:
* 1、映射文件namespace必须是接口全类路径名
* 2、映射文件Statement的id必须和接口方法名相同
* 3、接口和映射文件必须在同一个目录,且名称相同
* 4、输入参数类型必须和parameterType参数类型一致
* 5、输出参数ResultType必须和接口方法返回值类型一致*
如果sqlMapConfig.xml中引入外部映射文件使用
<mappers>
<mapper resource="sqlMap/user.xml"/>
</mappers>
则是上面的4个条件,去掉条件3
如果直接写接口,就必须满足上面所有条件。
<mapper class="cn.itcast.dao.IUserDao"/>
<package name="cn.itcast.dao"/>
别名&返回值&类型转换:
properties 引入外部文件
比较(hibernate):
优秀:
简单,易学,更快
dom解析,全部加载到内存之中
mybatis,hibernate,jpa比较
mybatis和hibernate区别:(自己写)
首先,mybatis没有,XX.hbm.xml的配置文件。减轻了负担
使用mybatis接口代理方式开发mapper接口,不用写实现类,输入参数和pojo包装对象,保证了dao的通用性。
mybatis和hibernate
Mybatis和hibernate都是对jdbc封装:
Hibernate优点:
完全面向对象,不需要我们自己写sql语句
数据库迁移,hibernate使用面向对象开发,只需要修改方言
Hibernate缺点:
Hibernate维护关系对我们是透明的,维护关系比较复杂,性能调优也是比较复杂。
Hibernate:把Hql变成sql语句再进行执行。速度变慢
Hibernate:mysql生成sql语句不规范,不易挑错。
Hibernate:由于使用面向对象开发,不能开发复杂业务。
使用与需求变化比较少的项目:CRM,ERP
Mybatis:mybatis简化程序员的工作,把精力放在sql语句上面。适合开发复杂业务。对项目维护,调优比较容易。尤其是需求变化特别快的项目都采用mybatis来开发(互联网项目)
相关代码链接:
https://github.com/lqingfang/mybatis