我是靠谱客的博主 文静小鸭子,最近开发中收集的这篇文章主要介绍Mybatis--xml与注解配置对比,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。这样来自官网官方解释

通俗一点的解释:

Mybatis 面向对象(底层实现技术:反射和jdbc整合)操作数据库 ,是一个半自动ORM持久层框架 描述了用面向对象的思想操作数据库。为什么称为是半自动尼???是因为Mybatis还需要手动配置SQLy语句;同时Mybatis提供了两种配置SQL语句的方法:XML和注解

Hibernate:java操作对象通过映射文件【对象和sql完全的封装,通过反射完全动态拼装】从而达到对数据库的操作,因为其对对象和sql完全封装,所有Hibernate特别消耗性能

ORM思想(对象关系映射:Object Relational Mapping):

O:对象

R:关系型数据库

M:映射 ,从R(数据库)到O(对象模型)的映射,可通过XML文件映射。

ORM思想正是对对象的操作通过映射文件从而达到对数据库的操作

JDBC VS Mybatis

JDBC 面向过程 jdbc来调用执行SQL语句,SQL语句属于过程化的语句。

Mybatis:java操作对象通过映射文件 【sql,传入参数 ,输出参数用对象形式封装】从而达到对数据库的操作

Mybatis操作数据库的工具会话对象:SqlSession,类似 JDBC生成的Connection对象

XML配置Mybatis的注意事项:

用xml配置XML,我们可以直接通过sqlSession调用SQL的命令

 使用注解配置Mybatis的注意事项:

注解下的Mybatis的sql配置

注解下,通过sqlSession调用sql命令,需要使用动态代理。

 

通过动态代理后,用动态代理生成的对象调用数据库功能

 

常见错误

Caused by: org.xml.sax.SAXParseException; lineNumber: 2; columnNumber: 28; 文档根元素 "mapper" 必须匹配 DOCTYPE 根 "null"。
    at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
    at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(Unknown Source)
    at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(Unknown Source)
    at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(Unknown Source)
    at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(Unknown Source)
    at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.rootElementSpecified(Unknown Source)
    at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.handleStartElement(Unknown Source)
    at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.startElement(Unknown Source)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(Unknown Source)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$ContentDriver.scanRootElementHook(Unknown Source)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(Unknown Source)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(Unknown Source)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
    at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
    at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(Unknown Source)
    at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(Unknown Source)
    at org.apache.ibatis.parsing.XPathParser.createDocument(XPathParser.java:257)
    ... 10 more

此处报错的注意原因:

 

 

最后

以上就是文静小鸭子为你收集整理的Mybatis--xml与注解配置对比的全部内容,希望文章能够帮你解决Mybatis--xml与注解配置对比所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(51)

评论列表共有 0 条评论

立即
投稿
返回
顶部