对数据库的连接 使用时就创建连接,不使用就立即释放,对数据库进行频繁连接开启和关闭,造成数据库的资源浪费,影响数据库的性能;

解决办法:使用数据库连接池,管理数据库的连接。

2 将sql语句硬编码到java代码中,如果sql语句修改,需要重新编译java代码,不利于系统维护,

解决办法:把sql语句I定义到xml配置文件里;

3 在向statement中设置参数,对站位符位置和设置参数数值,硬编码到java代码中,

4 从result结果集中遍历数据时,存在硬编码,讲获取表的字段名硬编码,不便于维护,

讲结果集 自动映射成java对象

mybatis的架构

是一个持久层的项目,是阿帕奇的顶级项目,

通过 mybatis提供的映射方式,半自动的生成sql,大部分还是需要程序员编写sql

核心:输入映射:可以将statement中的输入参数自动输入到映射 通过ongl表达式,将查询的结果集灵活映射成为java对象(输出映射)

mybatis与hibernate的本质区别和应用场景

hibernate:是一个标准的orm的框架,不需要程序员写sql语句sql自动生成,对sql优化 修改 比较困难的

  应用场景:适用于需求变化不多的,中小型项目,

mybatis:专注的sql本身,sql的优化 修改比较方便;不完全的orm的框架,程序员自己写sql,但是实现了输入 输出映射;

应用场景:适用于需求变化较多的项目,比如 互联网项目

最新文章

  1. sublime text3同时编辑多行
  2. [转]TCP协议中的三次握手和四次挥手(图解)
  3. 关于ASP.NET页面打印技术的总结【转】
  4. Git+Gradle+Eclipse构建项目
  5. 第二十二章 数据访问(In .net4.5) 之 集合
  6. 盘点国内程序员不常用的热门iOS第三方库
  7. JS判断是否是移动设备进行http链接重定向
  8. 关于android:configChanges小结
  9. 网络安全之IP伪造
  10. top batch output
  11. 201521123096《Java程序设计》第十二周学习总结
  12. 15.javaweb XML详解教程
  13. 安卓TV开发(六) 移动智能终端UI之实现类似GridView的焦点控制FocusView框架
  14. 「洛谷3469」「POI2008」BLO-Blockade【Tarjan求割点】
  15. [物理学与PDEs]第1章习题15 媒介中电磁场的电磁动量密度向量与电磁动量流密度张量
  16. Linux环境下虚拟环境virtualenv安装和使用
  17. vue 开发依赖安装
  18. GIt 修改上一次的提交(保持Change-Id不变即可)
  19. Entity framework 增加默认执行时间
  20. ios中布局(推荐一)

热门文章

  1. C++入门经典-例3.19-使用break跳出循环
  2. C++入门经典-例2.12-求逻辑表达式的值
  3. 为Windows编译libobjc2(通过交叉编译的方式)
  4. Android Context介绍
  5. echarts_02
  6. ActiveMQ 初学-1:ActiveMQ 创建连接对象
  7. 从curl命令获取libcurl的用法
  8. java实现二分法查找
  9. Appium测试框架
  10. leetcode 198. House Robber 、 213. House Robber II 、337. House Robber III 、256. Paint House(lintcode 515) 、265. Paint House II(lintcode 516) 、276. Paint Fence(lintcode 514)