Mybatis

什么是 MyBatis ?

       MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以对配置和原生Map使用简单的 XML 或注解,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。

特点:

       与JDBC相近的持久化框架,运行效率高;提供灵活的查询方式,但需要自己写SQL语句;不会自动进行级联操作,需要使用SQL手动进行;需要考虑入参和出参的类型及其对应关系。

基础使用:

导入mybatis和mysql-connector-java依赖。

配置mybatis:

       该配置可在官网上找到,中文版!!很容易上手。

Mybatis_第1张图片

:可有多个子,default指向某一子

:配置数据库连接。

:事务管理器配置。

:配置数据库连接。

:配置JavaBean映射文件所在位置。

JavaBean文件映射配置:


Mybatis_第2张图片
UserDTO的JavaBean
Mybatis_第3张图片


UserDTO的映射文件

:namespace属性值不可少,用于识别不同的数据库操作。

的id属性值,详见下图。


Mybatis_第4张图片
BlogDTO的JavaBean


Mybatis_第5张图片


BlogDTO的映射文件

此例中user与blog是一对一关系、与photo是一对多关系;blog与content、photo为一对多关系;content与photo是一对多关系。此处表示为对应的JavaBean的集合。


Mybatis_第6张图片
ContentDTO的映射文件

由于不需要反向查询,因而注释了该属性。

Mybatis_第7张图片
ContentDTO的映射文件

由于content是一个集合,而photo也是一个集合,类似于多对多,此处的查询方法使用的是联合查询,否则会报错。

此处的注释是另一种实现,该方式将在下面进行介绍。


PhotoDTO的映射配置


Mybatis_第8张图片
PhotoDTO的映射文件

测试类:


Mybatis_第9张图片
测试类代码

首先获取类加载器的输入流从配置文件中读取mybatis配置,然后获取session(获取session时的参数表示采用自动提交事务的方式,不推荐!)。

调用selectOne方法,第一个参数为对应JavaBean的namespace值 + "." +