为什么来讲下mybatis呢,因为这些年mybatis比较流行,深受中小企业以及技术人员的喜欢。
mybtis特性:
1.mybatis是支持定制化sql,存储过程以及高级映射的优秀持久层框架
2.mybtis避免了几乎所有得jdbc代码和手动设置参数以及获取结果;
3.mybtis可以使用简单得xml或注解用于配置和原始映射,将接口和java得pojo映射成数据库中得记录
4.mybtis是一个半自动得ORM(Object Relation Mapping)框架
mybtis和其他持久层技术对比
JDBC:
1.sql夹杂在java代码中,耦合度搞,导致硬编码内伤
2.维护不易且实际开发需求中sql有变化,频繁修改的情况多见
3.代码冗长,开发效率低
Hibrenate 和JPA
1.操作简单,开发效率高
2.程序中得长度发杂SQL需要绕过框架
3.内部自动生产的sql,不容易做特殊优化
4.基于全映射的全自动框架,大量字段的pojo进行部分映射时比较困难
反射操作太多,导致数据库性能下降
mybtis
轻量级、性能出色
sql和java编码分开,功能边界清晰,java代码专注业务,sql语句专注数据
开发效率稍逊Hibernate但是完全能够接收
mybtis面向接口编程注意点:
1.映射文件的namespace要和mapper接口的全类名保持一致
2.映射文件中sql语句的id要和mapper接口中的方法名一致
这样就可以实现 表–实体类–mapper接口—映射文件 相关联了
resultType和resultMap
resultType:设置默认的映射关系
resultMap:设置自定义的映射关系
mybtis获取参数值的两种方式
${}: 本质是字符串拼接
#{} 本质是占位符赋值
当单个参数传递时,可以通过${} 或#{}以认以的名称获取参数值,但是需要注意${}的单引号问题
当多个参数传递时, 可以使用map集合或者@Param进行数据传递
未完待续