mybatis连表查询

大家好,我是IT修真院成都分院第11期学员,一枚正直善良的java程序员。今天给大家分享一下,任务拓展:maven的module是什么? 

1.背景介绍

什么是mybatis

MyBatis是支持普通 SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。

  MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的POJOs(Plain Ordinary Java Objects,普通的 Java对象)映射成数据库中的记录。

每个MyBatis应用程序主要都是使用SqlSessionFactory实例的,一个SqlSessionFactory实例可以通过SqlSessionFactoryBuilder获得。

SqlSessionFactoryBuilder可以从一个xml配置文件或者一个预定义的配置类的实例获得。

用xml文件构建SqlSessionFactory实例是非常简单的事情。推荐在这个配置中使用类路径资源(classpath resource),

但你可以使用任何Reader实例,包括用文件路径或file://开头的url创建的实例。MyBatis有一个实用类----Resources,它有很多方法,可以方便地从类路径及其它位置加载资源。

2.知识剖析

mybatis的特点

                简单易学:本身就很小且简单。没有任何第三方依赖,最简单安装只要两个jar文件+配置几个sql映射文件易于学习,

易于使用,通过文档和源代码,可以比较完全的掌握它的设计思路和实现。

灵活:mybatis不会对应用程序或者数据库的现有设计强加任何影响。 sql写在xml里,便于统一管理和优化。

通过sql基本上可以实现我们不使用数据访问框架可以实现的所有功能,或许更多。

解除sql与程序代码的耦合:通过提供DAL层,将业务逻辑和数据访问逻辑分离,使系统的设计更清晰,更易维护,更易单元测试。sql和代码的分离,提高了可维护性。

提供映射标签,支持对象与数据库的orm字段关系映射

提供对象关系映射标签,支持对象关系组建维护

提供xml标签,支持编写动态sql。

3.常见问题

连表查询用什么类型接收?

4.解决方案

有两种方式:1.通过自定义resultMap接收;

            2.通过resultType=java.util.HashMap接收

5.编码实战

自定义resulumap配置

拦截器类继承HandlerInterceptorAdapter抽象类

 

mybatis连表查询_第1张图片

返回resultmap类型

 

mybatis连表查询_第2张图片

返回hashmap类型

 

mybatis连表查询_第3张图片

6.扩展思考

自定义resultMap和hashmap的优劣

前者可以在接口中调用返回对象的属性值,后者不行;

后者更加方便,更少配置

参考一:http://blog.csdn.net/catoop/article/details/50501696

8.更多讨论

一。连表查询没有结果

mysql里没有full join

二。hashmap返回值为空会怎样

hashmap什么都不显示

三。resultmap返回值为空会怎样

resultmap返回值为空则会显示null

 

 

 

技能树.IT修真院

“我们相信人人都可以成为一个工程师,现在开始,找个师兄,带你入门,掌控自己学习的节奏,学习的路上不再迷茫”。

这里是技能树.IT修真院,成千上万的师兄在这里找到了自己的学习路线,学习透明化,成长可见化,师兄1对1免费指导。快来与我一起学习吧



 

你可能感兴趣的:(mybatis连表查询)