博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mybatis08
阅读量:5815 次
发布时间:2019-06-18

本文共 1582 字,大约阅读时间需要 5 分钟。

Mybatis解决jdbc编程的问题1、数据库链接创建、释放频繁造成系统资源浪费从而影响系统性能,如果使用数据库链接池可解决此问题。解决:在SqlMapConfig.xml中配置数据链接池,使用连接池管理数据库链接。以后交给spring管理。2、Sql语句写在代码中造成代码不易维护,实际应用sql变化的可能较大,sql变动需要改变java代码。解决:将Sql语句配置在XXXXmapper.xml文件中与java代码分离。3、向sql语句传参数麻烦,因为sql语句的where条件不一定,可能多也可能少,占位符需要和参数一一对应。解决:Mybatis自动将java对象映射至sql语句,通过statement中的parameterType定义输入参数的类型。4、对结果集解析麻烦,sql变化导致解析代码变化,且解析前需要遍历,如果能将数据库记录封装成pojo对象解析比较方便。解决:Mybatis自动将sql执行结果映射至java对象,通过statement中的resultType定义输出结果的类型。
1.1mybatis与hibernate重要区别 企业开发进行技术选型 ,考虑mybatis与hibernate适用场景。mybatis:入门简单,程序容易上手开发,节省开发成本 。mybatis需要程序员自己编写sql语句,是一个不完全 的ORM框架,对sql修改和优化非常容易实现 。mybatis适合开发需求变更频繁的系统,比如:互联网项目。hibernate:入门门槛高,如果用hibernate写出高性能的程序不容易实现。hibernate不用写sql语句,是一个 ORM框架。hibernate适合需求固定,对象数据模型稳定,中小型项目,比如:企业OA系统。总之,企业在技术选型时根据项目实际情况,以降低成本和提高系统 可维护性为出发点进行技术选型。

 

1.1总结1.1.1SqlMapConfig.xml是mybatis全局配置文件,只有一个,名称不固定的,主要mapper.xml以及数据源(spring之后就没有数据源),mapper.xml中配置 sql语句1.1.2mapper.xmlmapper.xml是以statement为单位进行配置。(把一个sql称为一个statement,把一个sql封装为statement对象),satatement中配置 sql语句、parameterType输入参数类型(完成输入映射)、resultType输出结果类型(完成输出映射)。还提供了parameterMap配置输入参数类型(过期了,不推荐使用了)还提供resultMap配置输出结果类型(完成输出映射),明天重点讲通过resultMap完成复杂数据类型的映射(一对多,多对多映射)1.1.3#{}表示一个占位符,向占位符输入参数,mybatis自动进行java类型和jdbc类型的转换。程序员不需要考虑参数的类型,比如:传入字符串,mybatis最终拼接好的sql就是参数两边加单引号。#{}接收pojo数据,可以使用OGNL解析出pojo的属性值1.1.4${}表示sql的拼接,通过${}接收参数,将参数的内容不加任何修饰拼接在sql中。${}也可以接收pojo数据,可以使用OGNL解析出pojo的属性值缺点:不能防止sql注入。1.1.5selectOne用于查询单条记录,不能用于查询多条记录,否则异常:org.apache.ibatis.exceptions.TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 41.2selectList用于查询多条记录,可以用于查询单条记录的。

 

转载地址:http://gembx.baihongyu.com/

你可能感兴趣的文章
spring feign使用笔记
查看>>
Redis持久化
查看>>
商业市场和消费市场的基本区别
查看>>
c基础(打印出菱形图案)
查看>>
linux 终端乱码
查看>>
国内几大互联网公司提供的云主机云应用简单对比(工作笔记)
查看>>
The "data" URL scheme 二,三 事
查看>>
轻便提示插件tipTip
查看>>
【刷机方法】Moto Nexus 6线刷方法总结
查看>>
[HIVE] 源码解析SQL->MR [Simple-Select]
查看>>
cuda编程知识普及
查看>>
2、bootsrap fileinput 文件上传
查看>>
JavaScript Location对象
查看>>
memcached dead but subsys locked
查看>>
玩积木的时间
查看>>
php比较函数
查看>>
java对象--方法重写
查看>>
yun常用命令介绍
查看>>
Struts2文件上传
查看>>
jdbctemplate oracle date类型操作
查看>>